Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как проверить удалённый файл на существование?

14K
01 января 2008 года
Progr\.
72 / / 15.10.2007
То есть страничку на другом сайте. Как это можно сделать посредством php? Желательно поподробнее, очень важный вопрос.

P.S.: С Новым Годом Всех! :))
P.P.S.: Поиск юзал, гугл не рулит :(
274
01 января 2008 года
Lone Wolf
1.3K / / 26.11.2006
1. Юзай поиск, раза три тема на форуме проскакивала.
2. Попытай счастья в районе функций fopen() get_file_contents() и им подобным.
251
01 января 2008 года
SkyMаn
1.7K / / 31.07.2007
Цитата: Progr\.

P.S.: С Новым Годом Всех! :))
P.P.S.: Поиск юзал, гугл не рулит :(


И тебя с НГ.
плохо юзал, гугл рулит.

14K
01 января 2008 года
Progr\.
72 / / 15.10.2007
Lone Wolf, SkyM@n, простите, и вправду гугл рулит :) Нашёл на нем как :)

Я делаю это так:
 
Код:
function getFE($site){
if (@fopen($site, "r")) {
$res = 1; // существует
}
else {
$res = 0; // не существует; 404
}
    return $res;
}


Но fopen, вроде, тормознутая процедура, нельзя ли какой-нибудь более быстрой процедурой это сделать?

file_get_contents не быстрее её? Помогите пожалуйста, а то скорость ОЧЕНЬ значима в скрипте, который я сейчас пишу.
274
01 января 2008 года
Lone Wolf
1.3K / / 26.11.2006
Начет скорости не скажу, но скажу следуйщее. Если будеш юзать это на каком-то хостинге, не на своем сервере, то это может не работать. Открытие файлов с удаленных серверов часто запрещенно.
14K
01 января 2008 года
Progr\.
72 / / 15.10.2007
Lone Wolf, да не, с этим проблем нет - у меня на своем хостинге всё включено, уже проверил. Тут со скоростью проблема, а то по моим подсчётам мне придётся выполнять этот скрипт в течении 5 часов, чтоб сделать то, что хочу... Вот и думаю, как бы побыстреее.
300
03 января 2008 года
ReDrum
689 / / 20.04.2000
Отправить HEAD запрос, и посмотреть на возвращаемые заголовки.
14K
03 января 2008 года
Progr\.
72 / / 15.10.2007
Уважаемый ReDrum, растолкуйте, пожалуйста, как это сделать. Способ самы быстрый будет (сам понимаю), но вообще не представляю как это сделать.
Пожалуйста, помогите. Очень важен этот скрипт.
27K
03 января 2008 года
taj
39 / / 11.11.2007
Цитата: Progr\.
Уважаемый ReDrum, растолкуйте, пожалуйста, как это сделать. Способ самы быстрый будет (сам понимаю), но вообще не представляю как это сделать.
Пожалуйста, помогите. Очень важен этот скрипт.

посмотри в сторону CURL - всё уже написано :)

14K
03 января 2008 года
Progr\.
72 / / 15.10.2007
taj, спасибо большое! Нашёл таки :)
Код:
// инициализация сеанса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.yandex.ru/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);


Выводит:
Цитата:

HTTP/1.1 200 OK
Date: Thu, 03 Jan 2008 14:12:25 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29 mod_deflate/1.0.21 rus/PL30.19
Set-Cookie: yandexuid=2137121159669545; path=/; domain=.yandex.ru; expires=Friday, 31-Dec-10 23:59:59 GMT
Last-Modified: Thu Jan 3 14:12:25 2008 GMT
Cache-Control: max-age=300, private, proxy-revalidate
Expires: Thu Jan 3 14:17:25 2008 GMT
Content-Length: 26129
Connection: close
Content-Type: text/html; charset=windows-1251



Но вот как теперь забрать 1ю строку? Не писать же в файл, да не считывать с него потом?.. Помогите, пожалуйста.

27K
03 января 2008 года
taj
39 / / 11.11.2007
Ну тут просто - регулярку напиши, или explode можно попробывать прикрутить.
14K
03 января 2008 года
Progr\.
72 / / 15.10.2007
taj, с регуляркой то не проблема, но вот взять результат работы курла?

переприсваиванием не получается :(

Объясните, пожалуйста, как выташашить первую строку?
16K
03 января 2008 года
WorM
33 / / 11.06.2006
 
Код:
...

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$data = curl_exec($ch);
curl_close ($ch);

$content = explode("\n",$data);

echo $content[0];
14K
03 января 2008 года
Progr\.
72 / / 15.10.2007
ух! нашёл! :)
Код:
function getHttpResponseCode($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();
$response = curl_exec($ch);
preg_match('/HTTP\/.* ([0-9]+) .*/', $response, $status);
curl_close($ch);
return $status[1];
}


только она некорректно работает, если домен не существует. Ладно, там можно отловить через curl_errno, потом проifить. Но какие ошибки из этих могут выйти, если я буду вызывать curl_errno?
14K
03 января 2008 года
Progr\.
72 / / 15.10.2007
Блииин... Заголовки можно вывести через get_headers :))))))
а мы тут придумываем :)

А она быстрее курла?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог