我有几千行包含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()
会给你右边的字符。