Простой URL-адрес CURL не будет работать - PullRequest
0 голосов
/ 07 марта 2012

У меня есть 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 нельзя объяснить несколько раз?

У меня есть расширение curl из php.ini ... Я пробовал на 3 разных серверах ...

Что я делаю не так? Спасибо.

1 Ответ

1 голос
/ 07 марта 2012
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...