使用正则表达式从数据库更改img src?

时间:2013-07-17 06:47:32

标签: php mysql regex replace

我有数据库列内容,例如:

<table border="0" cellspacing="1" cellpadding="1" width="200" align="center">
<tbody>
    <tr>
        <td>
            <a href="http://example.cz/cz/katalog/some_product/">
               <img src="http://example.cz/article/3584/photo/some_product.jpg" />
            </a>
        </td>

        <td>
            <a href="http://example.cz/cz/katalog/some_product2/">
               <img src="http://example.cz/article/3584/photo/some_product2.jpg" />
            </a>
        </td>
   ...

如果我创建一个mysql查询来获取此内容,我需要将图像源和href标记更改为另一个网站(路径相同),例如:

<table border="0" cellspacing="1" cellpadding="1" width="200" align="center">
<tbody>
    <tr>
        <td>
            <a href="http://anotherWebsite.cz/cz/katalog/some_product/">
               <img src="http://anotherWebsite.cz/article/3584/photo/some_product.jpg" />
            </a>
        </td>

        <td>
            <a href="http://anotherWebsite.cz/cz/katalog/some_product2/">
               <img src="http://anotherWebsite.cz/article/3584/photo/some_product2.jpg" />
            </a>
        </td>
   ...

我试过功能:

    str_replace('example', 'anotherWebsite', $content);

但没有结果。有没有其他方法来取代它?例如正则表达式?如果正则表达式可以告诉我怎么样?因为我对正则表达式不好。非常感谢。

2 个答案:

答案 0 :(得分:2)

在常用术语上运行str_replace可能会产生意想不到的结果。你可以通过说

来更具体
$content = str_replace(array('href="http://example.cz/','src="http://example.cz/'), 
                       array('href="http://anotherWebsite.cz/','src="http://anotherWebsite.cz/'), 
                       $content);

这样它只会替换属于href attrbute的src的值。

您可能还需要为“vs”添加规则。

答案 1 :(得分:1)

str_replace应该有效。您确定已将新值分配给变量吗?

$content = str_replace('example', 'anotherWebsite', $content);