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>

Web ページにエコーすると、完全な html が表示されますが、この HTML 全体から最初の span タグ値のみを Web ページに表示したいのですが、どうすればよいですか?

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

2番目のコンテンツが必要な場合は、次の<span>ようにします。

echo $matches[1][1];

<span>より多くのタグがある場合などです。

于 2012-10-22T08:15:18.930 に答える
0

DomDocumentの使用を検討する必要があります。HTML を簡単に解析できるようになります。

于 2012-10-22T08:09:25.343 に答える