前段时间我已经编写了一个小的PHP脚本来从MySQL获取信息并将其放入XML中。现在,MySQL中的项目描述一直到现在,直到
<p>
the item description ...etc.</p>
到目前为止一直很好,我使用了以下内容:
preg_match('#<p>(.*?)</p>#s',$stro, $disp);
并且按预期工作正常。
现在管理员已经在数据库中添加了新项目
<p style="font-family: Tahoma; font-size: 13px; line-height: 19.5px;">
item description...etc</p>
现在我上面的“技巧”不起作用
现在我尝试了(在Stackoverflow上找到了这个)
//first line should strip the "style" part to only
$kulaka = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $stro);
// and here we should remove the p tag
preg_match('#<p>(.*?)</p>#s',$kulaka, $disp);
它“几乎”有效,但它给了我
"style=font-family: Tahoma; font-size: 13px; line-height: 19.5px;> item
desctiption "
欢迎提出任何建议,我希望通常所有样式都可以为这个特定的样式设置,因为管理员可以更改大小或字体等
答案 0 :(得分:0)
这将删除<p>
起始标记(及其中的任何属性)以及结束标记:
$stro = '<p style="font-family: Tahoma; font-size: 13px; line-height: 19.5px;">'
. 'item description...etc</p>';
preg_match('#^<p.*?>(.*)</p>$#is', $stro, $disp);
echo $disp[1] . PHP_EOL;
输出:
item description...etc
它不是完全可靠的,因为如果在其值中存在>
的任何段落属性,它将会失败,但在这种情况下它可能就足够了。