我有一个字符串,我想提取之间的值
<p><strong>Polka Longsleeve</strong><br />Twistcone<br />Bust 95<br />Length 60<br />Po Bkk 04-10Nov <br />Closed Po 10 Nov (11AM On time)</p>
我一直在尝试使用strip_tag,但我找不到一个特定的标签,在这种情况下是强标签。那么,最好的解决方案是什么呢?
您可以使用DOM提取标记之间的内容。。。
$doc = DOMDocument::loadHTML('
<p><strong>Polka Longsleeve</strong><br />Twistcone<br />Bust 95<br />
Length 60<br />Po Bkk 04-10Nov <br />Closed Po 10 Nov (11AM On time)</p>
');
$tag = $doc->getElementsByTagName('strong');
echo $tag->item(0)->nodeValue; //=> "Polka Longsleeve"
工作演示
虽然这个问题用regex标记,有经验的人已经回答了。我听说用regex解析HTML不是一个好主意。正如你所知,PHP现在确实支持DOM解析,所以你可以试试
$dom = new DOMDocument;
$dom->loadXML($str);
$str = $dom->getElementsByTagName('strong')->item(0)->nodeValue;
可能有效,但我还没有测试,或者可能是getTextBetweenTags
。
$pos=strpos($str,'<strong>');
$end=strpos($str,'</strong>');
echo substr($str,$pos+8,$end);