在<strong>标记</strong>中提取值

时间:2014-11-10 04:17:13

标签: php regex

我有一个字符串,我想提取

之间的值
<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,但我找不到特定的标签,在这种情况下是强大的。那么什么是最好的解决方案?

3 个答案:

答案 0 :(得分:2)

您可以使用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"

Working Demo

答案 1 :(得分:1)

虽然问题标有正则表达式,但有经验的人已经回答了问题。我听说使用正则表达式解析HTML并不是一个好主意。如你所知,PHP现在支持DOM解析,所以你可以试试,

$dom = new DOMDocument;
$dom->loadXML($str);
$str = $dom->getElementsByTagName('strong')->item(0)->nodeValue;

可能有用,我还没有测试,或者getTextBetweenTags

答案 2 :(得分:0)

  $pos=strpos($str,'<strong>'); 
  $end=strpos($str,'</strong>');
  echo substr($str,$pos+8,$end);