我正在使用这个优秀的插件来抓取特定网站的一些内容:http://simplehtmldom.sourceforge.net/manual.htm。
我正试图解决的一个例子。
<section class="details">
<div class="address">
<div class="zip-code-country">
<span>USA</span>
</div>
</div>
<div class="phone">
<a href="tel:+1234567890">(123)456-7890</a>
</div>
<ul>
<li><a href="mailto:test@example.com">Email</a></li>
</ul>
</section>
我的代码的相关部分是这样的:
foreach($html->find('section.details') as $part2) {
$item2['zip'] = $part2->find('div.zip-code-country span', 0)->plaintext; //works perfectly
$item2['phone'] = $part2->find('div.phone a', 0)->plaintext; //works perfectly
$item2['email'] = $part2->find('ul li a[href]', 0)->plaintext; //issue is here
$pieces2[] = $item2;
}
当我尝试获取email
时,它会返回锚文本(即“电子邮件”)。我想要的是返回“test@example.com”。
关于如何使这种语法正确的想法?
答案 0 :(得分:1)
你想要这样做:
$email= $part2->find('ul li a[href]', 0)->href;
$item2['email'] =str_replace('mailto:', '', $email);