PHP отваряне на уеб страница

ivzb

Registered
Как трябва да е най-опростената проверка дали съществува някоя страница т.е. дали се отваря или дава 404 или някой друга грешка? Не искам да взима нищо от нея, а само да види дали се отваря :)
 
file_exists не може да отваря страници на други сървари :D Както и да е, ше го правя с fopen(path, r). Ако някой знае по-добър и бърз начин нека сподели :D
 
ivzb каза:
file_exists не може да отваря страници на други сървари :D Както и да е, ше го правя с fopen(path, r). Ако някой знае по-добър и бърз начин нека сподели :D

От версия php 5.0.0 може да ги отваря.
Сложи в началото на файла

ini_set('allow_url_fopen', true);
 
Ако имаш cURL на сървъра, а вероятно го имаш, няма нужда да разрешаваш отварянето на отдалечени файлове.

Код:
<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.bbc.co.uk/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// grab URL and pass it to the browser
$result = curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

echo "<pre>";
print_r($result);
echo "</pre>";

резултата е:
Код:
HTTP/1.1 200 OK
Date: Sat, 03 Sep 2011 09:02:25 GMT
Server: Apache
Set-Cookie: BBC-UID=940e86419e6d4231dd25bbf8e0f051136c7c2f58c050b08cd249d38f89028c3f0; expires=Wed, 02-Sep-15 09:02:25 GMT; path=/; domain=bbc.co.uk;
Vary: X-Ip-is-advertise-combined
Etag: "1315040543"
X-Lb-Nocache: true
Cache-Control: max-age=60, private
Age: 2
Content-Length: 135506
Content-Type: text/html

Твоята работа е да провериш дали в началото имаш код 200 OK
 
Аз в момента използвам тая функция и си работи, но много бавно. За това питам дали има друг варянт и само да проверява дали страницата се отваря или не :D

PHP:
function check_link($link) {
    $open_file = fopen($link, 'r');
    if ($open_file) {
        return 1;
    } else {
        return 0;
    }
    fclose($open_file);
}

Едит: @exec, сега ще пробвам и така :)
 

Back
Горе