2017-06-21 36 views
2

我有这样一个变量:如何解析一些html标签内容,并用“|”等特殊字符分隔它们?

$content = ' 
<i class="fa fa-hashtag" aria-hidden="true"> 
    <a href="http://example.com/tag/digital_marketing">digital marketing</a> 
</i> 
<i class="fa fa-hashtag" aria-hidden="true"> 
    <a href="http://example.com/tag/seo">seo</a> 
</i> 
<i class="fa fa-hashtag" aria-hidden="true"> 
    <a href="http://example.com/tag/internet_marketing">internet marketing</a> 
</i>'; 

如何提取标签的内容是这样的: 数字营销|搜索引擎优化|网络营销

谢谢。

回答

2

您试图访问的所有内容都存在于a标记中,该标记只是i的子标记。在这里我使用DOMDocument来达到预期的效果。

Try this code snippet here

<?php 

ini_set('display_errors', 1); 
$string=<<<HTML 
<i class="fa fa-hashtag" aria-hidden="true"> 
    <a href="http://example.com/tag/digital_marketing">digital marketing</a> 
</i> 
<i class="fa fa-hashtag" aria-hidden="true"> 
    <a href="http://example.com/tag/seo">seo</a> 
</i> 
<i class="fa fa-hashtag" aria-hidden="true"> 
    <a href="http://example.com/tag/internet_marketing">internet marketing</a> 
</i> 
HTML; 
$domDocument = new DOMDocument(); 
$domDocument->loadHTML($string); 

$domXPath = new DOMXPath($domDocument); 
$results = $domXPath->query("//i/a"); 
foreach($results as $result) 
{ 
    $data[]= $result->textContent; 
} 
echo implode("|",$data); 
+1

非常感谢你。 –

+0

当我使用xpath更精确的像:// div [@ id ='tags']/a没有成功。你有什么想法Sahil? –

+0

@MohammadJ你可以分享HTML吗?你的'XPath'看起来很好''''''''然后再试一次。 –