我的项目需要一个免费用户将URL放到他们网站上的项目网站上,以获得SEO和项目网站的反向链接。所以我想检查是否
<a href='http://examplesite.com'>example site</a>
存在于由注册用户给出的URL指定的页面上。 我将不得不多次使用此检查,因此需要一个资源较少的解决方案。
答案 0 :(得分:0)
我认为curl 比使用其他PHP函数获取远程资源需要更多资源(如果有的话) - 它们都使用相同的基本原则。
但如果curl不可用,file_get_contents
是一个可行的选择。您可以使用新的stream contexts来模仿卷曲的大部分功能,例如发送适当的user-agent
标题等。
答案 1 :(得分:0)
明智的代码资源没有任何问题。
// Initializes a new session and return a cURL handle
$handle = curl_init($url);
// Sets an option on the given cURL session handle
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
// Execute the given cURL session
$response = curl_exec($handle);
// Gets information about the last transfer.
// CURLINFO_HTTP_CODE - Last received HTTP code
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
// your code here
} else {
// your code here
}
curl_close($handle);
答案 2 :(得分:0)
谢谢大家。这个功能做了我想要的:
function checkurl($url, $urltocheckfor){
$input = @file_get_contents($url);
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
$matches = array();
if(preg_match_all("/$regexp/siU", $input, $matches)) {
if(in_array($urltocheckfor))
return true;
else
return false;
}
}