我打算从任何给定的网址获取菜单元素(链接)。这意味着代码应该过滤网站上存在的所有其他链接的菜单链接(将用于在特定网站内导航的链接)。
我一直计划使用 simplehtmldom ,因为之前我用它来解析内容。
问题:
我的问题:
href="http://domain.com/link"
或是本地href="/link"
domain.com/EN
或en.doamin.com
?它们与真实的菜单导航链接非常相似。我希望你明白这一点。
最佳, 马尔蒂阿赫
答案 0 :(得分:0)
此正则表达式测试给定字符串是否为url:
^(http[s]?://|ftp://)?(www\.)?[a-zA-Z0-9-\.]+\.(com|org|net|mil|edu|ca|co.uk|com.au|gov|br)$
你可以实现一些preg_match测试......希望它有所帮助
REF:
http://php.net/manual/en/function.preg-match.php
[编辑]
变量$ thePath应该为您带来当前网站的网址:
$theProtocol = (strpos(strtolower($_SERVER['SERVER_PROTOCOL']), 'https') === false) ? 'http' : 'https';
$thePath = $theProtocol.'://'.$_SERVER['SERVER_NAME'];
因此,您可以将匹配的字符串与变量内容进行比较,然后确定您是否正在操作内部链接。
这应该有用:
function str_starts_with($haystack, $needle, $caseSensitive = true){
if($caseSensitive)
return strpos($haystack, $needle) === 0;
else
return stripos($haystack, $needle) === 0;
}