【问题标题】:Simple CURL url exists won't work简单的 CURL url 存在不起作用
【发布时间】:2012-03-07 10:33:45
【问题描述】:

我有 2 个用 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 "Found@";  
} 
else 
{  
    echo "Not found";  
}  

?>

以上这些都不起作用?为什么???昨天工作还不错,为什么PHP有时无法解释?

我有来自 php.ini 的 curl 扩展...我在 3 个不同的服务器上尝试过...

我做错了什么?谢谢。

【问题讨论】:

  • 什么不起作用?错误信息?
  • 什么都没有,只是不会返回 1 或 0 ...相信我,或者返回就好像 google.com 不存在一样
  • 在任何情况下,您的脚本都不会返回 1 或 0!请谷歌“js调试”。试试var_dump(curl_exec($ch));。另请参阅下面关于回声布尔值的编辑。
  • var_dump(curl_exec($ch)) 的第二个代码返回 bool(false) ...天哪,这太令人沮丧了,昨天工作得很好,我从来没有碰过电脑,我安装了深度冻结...

标签: php http curl


【解决方案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

【讨论】:

  • 第二个代码呢?无论我放什么链接,它每次都返回“未找到”
  • 这就是我调试的意思! echo $httpcode; => '302',google httpcode 302 => 重定向,google curl 跟随重定向 => stackoverflow.com/questions/3519939/make-curl-follow-redirects
  • 是的,你是对的,它返回了 302,谢谢,我放了一些 trim() 来解决这个问题......哦...... php 有时可能很难,关于那个跟随重定向,你放了一条线,女巫我不需要,但是谢谢
猜你喜欢
  • 1970-01-01
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多