我想创建一个函数,它接受一个URL参数和一个转到该url的用户名参数,输入用户名,如果页面显示用户名不存在(错误),它将返回false,否则它将返回false返回true。所以我尝试了,我做了一些像这样的事情,但它没有用。
function ($url, $username) {
$main = file_get_contents($url.$username);
if (@$main) { return false; }
else { return true; }
}
因此,如果您对如何使这个想法真正起作用有任何想法,请帮助我
答案 0 :(得分:2)
$site = 'https://twitter.com/';
$username = 'SteveMartinToGo';
$url = $site.$username;
function urlExists($url=NULL) {
if($url == NULL) return false;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpcode >= 200 && $httpcode < 400){
return true;
} else {
return false;
}
}
if(urlExists($url)) {
echo 'url exists';
} else {
echo 'url does not exist';
}
问题在于某些网站(如Facebook)将返回200而不是404,因此即使不是,网址也会显示为现有网址。另外,我从其他地方获得了这个功能(不记得在哪里),所以我不想对这个代码赞不绝口。希望它有所帮助...
编辑:更新因为fred-ii的鹰眼和建议。 :)
答案 1 :(得分:0)
拥有网址的实际结构非常重要。如果URL中没有特殊字符可以屏蔽,您可以进行打印并查看源代码(HTML)。