preg_replace td在表中

时间:2014-05-31 11:54:33

标签: php html mysql preg-replace


我在MYSQL中存储了HTML表。
我需要修改一些td的值。

例如:

<tr>...<td class="(different classes)" name="myNameA">20</td>...</tr>
<tr>...<td class="(different classes)" name="myNameB">10</td>...</tr>

我需要:

<tr>...<td class="(different classes)" name="myNameA">(20 * 0,60)</td>...</tr>
<tr>...<td class="(different classes)" name="myNameB">(10 * 0,60)</td>...</tr>

非常感谢。

1 个答案:

答案 0 :(得分:0)

这是你需要的:)

$re = '/(<tr>(?:.*?)<td (?:.*?) name="myNameA">)(.*?)(<\/td>(?:.*?)<\/tr>)/'; 
$str = '<tr>...<td class="(different classes)" name="myNameA">20</td>...</tr>\n<tr>...<td class="(different classes)" name="myNameB">10</td>...</tr>'; 

preg_replace_callback(
        $re,
        function ($matches) {
            echo htmlspecialchars(strtolower($matches[1]).'('.strtolower($matches[2]).' * 0,60)'.strtolower($matches[3]));
        },
        $str
    );

<强> 输出

<tr>...<td class="(different classes)" name="mynamea">(20 * 0,60)</td>...</tr>

用于匹配myNameB,将myNameA更改为myNameB,并将其显示为html而不是文本从代码中移除htmlspecialchars()函数