Головна сторінка | Українська національна ідея. Українократія | КУТКИ СПОЖИВАЧА для всіх міст з літературою |  ІНФОРМАЦІЙНІ СТЕНДИ, щити, дошки | Уголки потребителя для всех городов с литературой | Информационные стенды, щиты, доски | Перекидні системи Перекидные системы | Штендеры, Штендери | Буклетницы Буклетниці | Коментар Податкового кодексу України Комментарий Налогового кодекса Украины| НОВИНИ | RSS | Реклама | Контакт | Журнали з охорони праці та інші | Календар бухгалтера Календарь бухгалтера | Інструкції з охорони праці |Оперативна поліграфія, тиражування |  Фотоприколы | Термінологічний словник | Книги, словник, реферати з історії, ЗНО з історії України

Скачати Книгу маразмів України одним файлом

ГЛАВА M. МАРАЗМИ КОМП'ЮТЕРІВ, ІНТЕРНЕТУ, WINDOWS XP, VISTA, WINDOWS 7, НЕДОЛІКИ, ГЛЮКИ, НЕДОСТАТКИ, ПРОБЛЕМИ, БАГИ, МІНУСИ

Функции проверки файла на удаленном сервере по URL в PHP не существует

Есть функция file_exists ( string filename ). Возвращает TRUE, если файл или каталог с именем, указанным в параметре filename, существует; возвращает FALSE в обратном случае.Но она работает с локальными файлами.

Есть вариант открывать файл на чтение и в случие ошибки констатировать факт, что файла не существует:
PLAIN TEXTPHP:
<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";
// пробуем открыть файл для чтения
if (@fopen($url, "r")) {
echo "Файл существует";
else {
echo "Файл не найден";
}
>

Однако такой прием занимает достаточно много времени.

Есть вариант еще лучше - использовать функцию get_headers():
она делает запрос к файлу и получает все заголовки с ответом примерно в таком массиве

Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html
)

Как мы видим, в нулевом элементе есть код ответа. 200 означает, что файл существует, и мы спокойно можем получить к нему доступ.
Вот код, который проверит существование файла.

PLAIN TEXTPHP:
<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";
$Headers = @get_headers($url);
// проверяем ли ответ от сервера с кодом 200 - ОК
if(preg_match("|200|", $Headers[0])) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>


Не используйте функцию preg_match(), если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() либо strstr(), поскольку они выполнят эту задачу гораздо быстрее.

PLAIN TEXTPHP:
<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";
$Headers = @get_headers($url);
// проверяем ли ответ от сервера с кодом 200 - ОК
if(strpos($Headers[0], "200")) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>


К сожалению, этот код работает медленно. Попробуем ускорить его.

PLAIN TEXTPHP:
$url = "http://www.marazm.org.ua/a.txt";
// инициализация сеанса curl
$ch = curl_init($url);
// будет возвращаться http-заголовок
curl_setopt($ch, CURLOPT_HEADER, 1);
// вся получаемая Вами страница будет сохраняться в переменной
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
// таймаут соединения
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
// таймаут ожидания
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// загрузка страницы
$Headers= curl_exec($ch);
// проверяем ли ответ от сервера с кодом 200 - ОК
if(strpos($Headers, "200")) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
curl_close($ch);
?>


Скорость значительно возросла. Но проблема еще в том, что таким способом не проверишь наличие PHP-файла на удаленном сервере. Почему-то...

Виталий МОСЕЙЧУК
13.09.2011


Постійна адреса статті в Інтернеті: http://www.marazm.org.ua/windows/50_70.html


Попередня статтяНаступна стаття

[an error occurred while processing this directive]

Головна сторінка | Українська національна ідея. Українократія | КУТКИ СПОЖИВАЧА для всіх міст з літературою |  ІНФОРМАЦІЙНІ СТЕНДИ, щити, дошки | Уголки потребителя для всех городов с литературой | Информационные стенды, щиты, доски | Перекидні системи Перекидные системы | Штендеры, Штендери | Буклетницы Буклетниці | Коментар Податкового кодексу, Митного Комментарий Налогового кодекса, Таможенного| НОВИНИ | RSS | Реклама | Контакт | Журнали з охорони праці та інші | Календар бухгалтера Календарь бухгалтера | Інструкції з охорони праці |Оперативна поліграфія, тиражування |  Фотоприколы | Термінологічний словник | Книги, словник, реферати з історії, ЗНО з історії України

Скачати Книгу маразмів України одним файлом

(C) Copyrіght by V.Moseіchuk, 1999-2023. All rіghts reserved. Тел. (067) 673-51-59, (099) 565-62-62, (093) 918-70-99.
Пропозиції та зауваження надсилайте на
Електронним та друкованим ЗМІ дозволяється  цитування матеріалів Книги маразмів України за умови посилання на Книгу маразмів України та сайт www.marazm.org.ua Обов'язкове посилання наступного змісту: "За матеріалами Книги маразмів України (www.marazm.org.ua)…". з використанням в Інтернеті гіперпосилання (hyperlink) на Книгу маразмів України  (www.marazm.org.ua). Іншим організаціям та приватним особам використання матеріалів для публічних цілей дозволяється за умови окремого дозволу автора з дотриманням вищезгаданих посилань.

Розсилка новин
[an error occurred while processing this directive]
Підтримка проекту:
U634971969297
Z404288205014
E208021446192

Новини
маразмiв


Нова українська національна ідея. Новая украинская национальная идея
 
Кутки споживача для всіх міст із законодавством та книгою скарг. Кутки покупця. Уголки потребителя для всех городов с законодательством и книгой жалоб. Уголки покупателя





Украинские 100x100




Газета "Правовий тиждень"