提取<;strong>;标签


extract value inside <strong> tag

我有一个字符串,我想提取之间的值

<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);