0

可能重复:
PHP:从 HTML 字符串中去除特定标签?
如何用 PHP 解析和处理 HTML?

我的 mysql 数据库上有一个描述列,其中包含一些 html。像这样:

<p><img src="http://www.somesite.co/uploads/Optimized-basil_rajapaksa.jpg" alt="" width="250" height="183" /></p>
<p><span style="font-size: medium; color: #0000ff;">neis,a" iri&uacute; we&yuml;rka leojhs</span></p>
<p><span style="font-size: medium; color: #333333;">&uacute;Yaj&uacute;oHd, wdpd&frac34;hjrekaf.a jD;a;Sh wr.,h i&iuml;nkaOfhka idl&Eacute;Pd ls&Iacute;u ioyd wd&frac34;:sl ixj&frac34;Ok wud;H neis,a rdcmlaI uy;d iy &uacute;Yaj&uacute;oHd, wdpd&frac34;hjrekaf.a i&ntilde;;s i&iuml;f&iuml;,kh w;r fyg ^6&amp; &Egrave;k ;j;a idl&Eacute;Pdjla meje;a&ugrave;ug ;SrKh &ugrave; ;sfnkjd'&uacute;Yaj&uacute;oHd, wdpd&frac34;hjrekaf.a i&ntilde;;s i&iuml;f&iuml;</span><br /><span style="font-size: medium; color: #333333;">wod&lt; idl&Eacute;Pdjg wud;H neis,a rdcmlaI uy;df.ka ks&lt; jYfhka werhqula ,enqK nj o Tyq i|yka l</span></p>

当我在我的网页上回显它时,它会显示完整的 html,但我只想在我的网页上显示整个 html 中的第一个 span 标签值,它是如何完成的?

4

2 回答 2

1

假设您将 HTML 代码放入$html变量中:

$html = <<<'CODE'
<p><img src="http://www.somesite.co/uploads/Optimized-basil_rajapaksa.jpg" alt="" width="250" height="183" /></p>
<p><span style="font-size: medium; color: #0000ff;">neis,a" iri&uacute; we&yuml;rka leojhs</span></p>
<p><span style="font-size: medium; color: #333333;">&uacute;Yaj&uacute;oHd, wdpd&frac34;hjrekaf.a jD;a;Sh wr.,h i&iuml;nkaOfhka idl&Eacute;Pd ls&Iacute;u ioyd wd&frac34;:sl ixj&frac34;Ok wud;H neis,a rdcmlaI uy;d iy &uacute;Yaj&uacute;oHd, wdpd&frac34;hjrekaf.a i&ntilde;;s i&iuml;f&iuml;,kh w;r fyg ^6&amp; &Egrave;k ;j;a idl&Eacute;Pdjla meje;a&ugrave;ug ;SrKh &ugrave; ;sfnkjd'&uacute;Yaj&uacute;oHd, wdpd&frac34;hjrekaf.a i&ntilde;;s i&iuml;f&iuml;</span><br /><span style="font-size: medium; color: #333333;">wod&lt; idl&Eacute;Pdjg wud;H neis,a rdcmlaI uy;df.ka ks&lt; jYfhka werhqula ,enqK nj o Tyq i|yka l</span></p>
CODE;

你可以这样做:

preg_match_all('/\<span[^\>]*\>([^\<]*)\<\/span\>/', $html, $matches);
echo $matches[1][0]; // Shows: neis,a" iri&uacute; we&yuml;rka leojhs

如果您想要第二个的内容,<span>只需执行以下操作:

echo $matches[1][1];

如果你有更多<span>标签,依此类推。

于 2012-10-22T08:15:18.930 回答
0

您应该考虑使用DomDocument。它将允许您轻松解析 HTML。

于 2012-10-22T08:09:25.343 回答