繁体   English   中英

使用simplehtmldom尝试查找带有out和id或class的URL

[英]Using simplehtmldom trying to find a URL with out and id or class

第一次在这里张贴海报,做了大约几个小时的搜索和尝试,但被卡住了……所以请放轻松我:)

带有包含此内容的页面...

<li onclick="javascript:trackClick(14423, 'web'); document.location='http://www.mywebsite.com';"> <img class="listing-control" src="img/url-profile-listings.png" alt="Get Directions" width="51" height="51" style="padding:4px;"> <span id="web14423">Visit Website</span> </li>

我试图在li标签的document.location中获取URL http://www.mywebsite.com

唯一唯一且不变的事情是span标记中的“访问网站”文本。 有什么方法可以找到它并从onclick事件转到document.location属性的父li标签吗?

任何帮助将不胜感激!!!

谢谢,

MrMo。

当然,将其加载到SimpleHTMLDOM对象中,然后将其定位为<li>标记即可。 定位onclick=""属性以获取其中的值。

免责声明:无论如何我都不是正则表达式专家。

$html_string = <<<EOT
<li onclick="javascript:trackClick(14423, 'web'); document.location='http://www.mywebsite.com';">
    <img class="listing-control" src="img/url-profile-listings.png" alt="Get Directions" width="51" height="51" style="padding:4px;">
    <span id="web14423">Visit Website</span>
</li>
EOT;

$html = str_get_html($html_string);

// after loading the html with either str_get_html or file_get_html
foreach($html->find('li') as $list) {
    $script = $list->onclick;
    preg_match('/document.location\s*=\s*\'(.*?)\';/', $script, $match);
    if(!empty($match)) {
        $url = $match[1];
        echo $url;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM