2012-03-07 88 views
0

我已經寫在PHP簡單的捲曲網址存在將無法正常工作

<?php 
error_reporting(1); 

function url_exists($url) 
{ 
    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_HEADER, TRUE); 
    curl_setopt($ch, CURLOPT_NOBODY, TRUE); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    $status = array(); 
    preg_match('/HTTP\/.* ([0-9]+) .*/', curl_exec($ch) , $status); 
    return ($status[1] == 200); 
} 

echo "EX:".url_exists("http://www.google.com"); 

?> 

<?php 
error_reporting(1); 

$ch = curl_init("www.yahoo.com"); 
curl_setopt($ch, CURLOPT_TIMEOUT, 2); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$data = curl_exec($ch); 
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 
if($httpcode>=200 && $httpcode<300) 
{ 
    echo "[email protected]"; 
} 
else 
{ 
    echo "Not found"; 
} 

?> 

無本以上的作品2碼?爲什麼???昨天工作很好,爲什麼PHP不能解釋一些時間?

我從php.ini中...我想在3級不同的服務器curl擴展...

什麼,我做錯了什麼?謝謝。

+0

什麼不起作用?錯誤信息? – PiTheNumber 2012-03-07 10:41:11

+0

只是nothning,只是不會返回1或0 ...相信我,或者返回就好像google.com不存在 – Master345 2012-03-07 10:56:14

+0

無論如何你的腳本都不會返回1或0!請谷歌「js調試」。嘗試'var_dump(curl_exec($ ch));'。另請參閱下面的關於echo布爾值的編輯。 – PiTheNumber 2012-03-07 11:00:39

回答

1
echo "EX:".url_exists("http://www.google.com"); 

將始終回顯EX:,因爲url_exists返回布爾值。試試:

echo "EX:" . (url_exists("http://www.google.com") ? 'true' : 'false'); 

也許這樣的工作?

$ch = curl_init("http://www.example.com/favicon.ico"); 
curl_setopt($ch, CURLOPT_NOBODY, true); 
curl_exec($ch); 
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
// $retcode > 400 -> not found, $retcode = 200, found. 
curl_close($ch); 

來源https://stackoverflow.com/a/982045/956397

+0

什麼第二個代碼?它每次都會返回「not found」,不管我放在那裏的鏈接是什麼 – Master345 2012-03-07 11:11:00

+0

這就是我的調試意思! 'echo $ httpcode;'=>'302',google httpcode 302 => redirect,google curl follow redirect => http://stackoverflow.com/questions/3519939/make-curl-follow-redirects – PiTheNumber 2012-03-07 11:15:58

+0

yes you are right,它返回302,謝謝,我把一些修剪(),解決了問題...哦... ... PHP可以有時很難,並且跟隨重定向,你把一條線,女巫我不需要,但謝謝 – Master345 2012-03-07 12:25:47