使用php样式在P标记之间提取数据
不久前,我编写了一个小php脚本,从MySQL获取信息,并将其放入XML中使用php样式在P标记之间提取数据,php,mysql,Php,Mysql,不久前,我编写了一个小php脚本,从MySQL获取信息,并将其放入XML中 <p> the item description ...etc.</p> 欢迎提出任何建议,我希望对所有样式都这样做,而不仅仅是对这个特定样式,因为管理员可以更改大小或字体等,这将删除开始标记(以及其中的任何属性)和结束标记: $stro = '<p style="font-family: Tahoma; font-size: 13px; line-height: 19.5px;">
<p>
the item description ...etc.</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;
它不是完全可靠的,因为如果任何段落属性的值中有一个
,它就会失败,但在这种情况下,它可能就足够了。使用正则表达式解析HTML不是一个好主意。它不仅不精确,而且不再是XML,甚至不再是xhtml了——所以你不能可靠地使用DOM解析器()嗨,我想差不多了,问题是我的字符串实际上是一行中的两个这样的块,就像““上面的脚本首先使用您的提示成功删除。尽管我通过一些调整使其工作正常,但这正是我想要的,谢谢!!!!
<p style="font-family: Tahoma; font-size: 13px; line-height: 19.5px;">
item description...etc</p>
//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 "
$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