0

我想创建一个函数,它接受一个 URL 参数和一个转到该 URL 的用户名参数,输入用户名,如果页面显示用户名不存在(错误),它将返回 false,否则返回 true。所以我尝试了,我做了一些类似这样的事情,但它没有奏效。

function ($url, $username) {
    $main = file_get_contents($url.$username);
    if (@$main) { return false; }
    else { return true; }
} 

因此,如果您对如何使这个想法真正起作用有任何想法,请帮助我

4

2 回答 2

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,因此 URL 将显示为存在,即使它不存在。另外,我从其他地方得到了这个功能(虽然不记得在哪里),所以我不想因为那个代码而受到赞扬。希望能帮助到你...

编辑:由于 fred-ii 的鹰眼和建议而更新。:)

于 2013-09-06T23:56:51.590 回答
0

拥有 url 的实际结构很重要。如果 URL 中没有特殊字符可以被屏蔽,您可以打印并查看源代码 (HTML)。

于 2013-09-07T00:05:47.547 回答