使用php样式在P标记之间提取数据

使用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;">

不久前,我编写了一个小php脚本,从MySQL获取信息,并将其放入XML中

<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