我有几千行包含HTML数据

<p>non useful data</p>
<p>useful data</p>

我要删除第一个p标记
<p >non empty</p >

只更新行
<p>useful data</p>

我试过了
$request = mysql_query("select * from content limit 50") or die('Error :'.$request.' '.mysql_error());
while($r=mysql_fetch_array($request)) {
    $id = $r[id];
    $text = $r[text];
    preg_match('@<p>.*?</p>(.*)@', $text, $matches);
    $srcfinal = $matches[1];
    $srcrestant =$matches[0];
    echo"$srcfinal<br />";
  }

我可以正确提取不可用的数据($srcfinal),但找不到任何东西来打印所需的数据(然后用它更新行)。
请使用轻量级代码吗?

最佳答案

听起来您希望在PHP中检索行,然后用空字符串替换第一个<p>...</p>标记。这样就可以了(\R*还会删除段落后面的任何换行符):

$replaced = preg_replace('%^<p>.*?</p>\R*%', '', $yourstring);

我也会考虑直接在数据库中使用UPDATE... SET...
LOCATE()将找到您的第一个</p>
RIGHT()会给你右边的字符。

10-08 17:49