我有一个html页面的这一部分:
<td>
<div class='medals gold'>
</div>
</td>
要提取并打印到视频div属性,我使用了这个PHP代码:
$div = $result->getElementByTagName('div');
echo $div->getAttribute('class') . " ";
通过这种方式,我得到了字符串medals gold
。
我真的只能提取子串gold
吗?
这将是完美的。
答案 0 :(得分:1)
您可以使用explode函数将字符串medals gold
拆分为两个字符串array('medals', 'gold')
的数组:
$div = $result->getElementByTagName('div');
$parts = explode(' ', $div->getAttribute('class'));
echo $parts[1];
答案 1 :(得分:1)
您可以使用preg_split并将空格分割为其他人建议的
/* it should be `getElementsByTagName`*/
$div=$result->getElementsByTagName('div')->item(0);
list( $junk, $keep )=preg_split('@\s@',$div->getAttribute('class') );
echo $keep;
/* or */
$divs=$result->getElementsByTagName('div');
foreach( $divs as $div ){
list( $junk, $keep )=preg_split('@\s@', $div->getAttribute('class') );
echo $keep;
}
答案 2 :(得分:0)
由于{5.3}中的split
函数已被弃用,并且在PHP 7.0中也被删除了,因此我建议您使用explode
。
另外
explode()
速度要快得多,因为它不会基于正则表达式进行拆分,因此字符串不必由正则表达式解析器进行分析preg_split()
更快,并使用PCRE正则表达式进行正则表达式拆分所以,这将是更好的选择:
$div = $result->getElementByTagName('div');
$parts = explode(' ', $div->getAttribute('class'));
echo $parts[1];
您将获得包含2个字符串的数组。 //array('medals', 'gold')