Javascript 不包含';看起来不像链接

Javascript 不包含';看起来不像链接,javascript,php,hyperlink,web-crawler,permalinks,Javascript,Php,Hyperlink,Web Crawler,Permalinks,我有一些代码可以获取一个页面的所有链接,但有些代码获取的链接看起来不像链接。例如,索引0-4得到了名为“javascript:void(0)”的链接,而索引5得到了一个只有“/”的空白链接。我该如何解决这个问题?谢谢 $content = file_get_contents("http://bestspace.co"); //get content of page $links = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>

我有一些代码可以获取一个页面的所有链接,但有些代码获取的链接看起来不像链接。例如,索引0-4得到了名为“javascript:void(0)”的链接,而索引5得到了一个只有“/”的空白链接。我该如何解决这个问题?谢谢

$content = file_get_contents("http://bestspace.co"); //get content of page

$links = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>"; //set regular expression to get links
preg_match_all("/$links/siU", $content, $matches); //get all links on page and store in array $matches[2]

print_r($matches[2]);

使用
array\u filter
删除所有Javascript链接

$links = array_filter($matches[2], function($x) {
    return substr($x, 0, 11) != 'javascript:';
});

什么是你的
链接
?这些是
href
s的值。您可以修改regex,使
href
的值以
/
http
开头。第十个值是我唯一考虑的一个链接。你希望它只返回完全合格的URL吗?请澄清你所说的“链接”是什么意思@Jesselveton我想说6-10都是链接。
/
是一个非常有效的href…将带你进入网站的根目录。除了
javascript:void()
之外的所有内容都是有效的web路径使用
array\u filter
删除任何以
javascript:
开头的条目。您的意思是!==。你忘了带钥匙了!
$links = array_filter($matches[2], function($x) {
    return substr($x, 0, 11) != 'javascript:';
});