$url = ‘http://www.baidu.com';
$ch = curl_init();
$timeout = 10;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
if(false == $contents)
{
echo ‘Curl error: ‘ . curl_error($ch);
}
else
{
….
}
用这个函数怎么让域名过去的网站返回假?Service Unavailable 这种提示的
用这个函数怎么让域名过期的网站返回假?Service Unavailable 这种提示的
具体加在什么地方?
我的方法是这样的 你说的代码加在哪里合适?
那我对正常网页的判断也要返回值啊 我是想在我的方法中加入你说的那段代码 然后来实现对域名过期的域名也返回假
追答我给你那个如果能打开就返回 true, 否则 返回false,ip2 和 ip3你自己替换为另外两个ip就行了。功能上和你原来的函数没什么差异。
对于你这种简单的判断网页是否能打开用fopen函数就行,用不到curl。curl主要是用来处理比较复杂的交互操作的。
Warning: fopen(http://www.zbbangnong.com) [function.fopen]: failed to open stream: HTTP wrapper does not support writeable connections in
追答把fopen($url, 'r+')变成fopen($url, 'r')就行了。太久不用这个了,呵呵。我测试了能连上
追问Parse error: syntax error, unexpected T_RETURN in D:\wamp\www\webmanage5\include\function.php on line 63
并且这个不准确 过期的域名 和 根本打不开的域名都是显示能打开
...63行是什么?
我说的是 把fopen($url, 'r+')变成fopen($url, 'r')就行了,修改后这一行应该是
return fopen($url, 'r') !== false;
你不会把这一行整个给改成 fopen($url, 'r')了吧?
额 这个函数判断过期的域名会直接报错 Warning: fopen(http://www.lznjxy.com) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 502 Bad Gateway in
追答还是那行,改成 return @fopen($url, 'r') !== false;
@是用来压制错误信息的 (推荐仅用于你确定该错误不影响程序运行的情况下,不要滥用哦,比如$conn = @mysql_connect(....);这个虽然不报错了,可是后面的程序就没法儿运行了,而对于你目前这种测试操作就没有这个问题)
return @fopen($url, 'r') !== false; 可以把这句改成if() return false;吗?
追答可以,不过在内核中多一次if多一次入栈出栈的操作。
if (false === @fopen($url, 'r')) return false;
return true;
谢了
追答不客气