我想在<b>
标签中获取数据,例如:
<b>
<sup>1</sup>A, a
</b>
<b> ab </b>
<b><sup>2</sup>A</b>
我想从上面的标记中获取A,a
,ab
和A
。
但有时在数据行中没有<sup>
标记,如下所示:
<b>ab</b>
但我想获得数据ab
我尝试关注<b>
代码:
foreach($html->find('b') as $word) {
$words = $word->innertext;
echo $words.'<br>';}
但是当有<sup>
标记时,内部<sup>
标记中的文字也会打印出来。如何在<sup>
标记内获取数据?谢谢
答案 0 :(得分:0)
您可以使用clone()方法获取父元素内的文本,即<b></b>
并忽略<sup></sup>
或其中的任何其他元素。
$('b')
.clone() //clone the element
.children() //select all childrens
.remove() //remove all the children
.end() //return to the matched element
.text(); //get the text
答案 1 :(得分:0)
尝试:
<?php
$html = "<b>
<sup>1</sup>A, a
</b>
<b> ab </b>
<b><sup>2</sup>A</b>";
//remove all html tags without <sup>
$html = strip_tags($html,"<sup>");
//remove <sup> tag with its content
$html = preg_replace('#\<sup>[{\w},\s\d"]+\</sup>#', "", $html);
//remove \t, \n and \r (tabs, newline etc)
$html = str_replace(array("\t","\n","\r"),"",$html);
//also you can remove space from string
$html = str_replace(" ","",$html);
echo $html;
?>