проверка url на существование php

PHP, Проверьте, существует ли URL-адрес и файл?

Я создаю плагин для WordPress, который требует наличия двух файлов для нормальной работы.

Первый файл определяется как путь к файловой системе, а второй – как URL.

Скажем, первый файл:

Обратите внимание, что оба файла не являются одним и тем же файлом в файловой системе. У файла required_file.php есть другой контент, чем required_url_file.php, и они действуют абсолютно различающиеся

Любая идея о том, как проверить существование обоих файлов?

Вы можете проверить оба:

Основываясь на примере кода Maor H., вот функция, которую я использую в своих плагинах:

Я сделал этот метод в вспомогательном классе, однако, поставив его в вашу тему, файл functions.php должен сделать его общедоступным везде. Однако вы всегда должны писать в классах и создавать их. Это намного лучше для изоляции ваших функций плагина и темы.

С помощью этого можно просто использовать:

if (webItemExists (‘http://myurl.com/thing.png))

Что касается проверки URL-адреса, ни один из этих ответов не рассматривает правильный способ WordPress для выполнения этой задачи.

Вот статья, которую я написал о Как проверить, существует ли внешний URL с API-интерфейсом WordPress. Проверьте это и выясните, как это работает.

Чтобы проверить, существует ли файл, используйте метод file_exists.

Начиная с PHP 5.0.0, эта функция также может использоваться с некоторым URL-адресом оберток. Обратитесь к Поддерживаемые протоколы и обертки, чтобы определить, какие обертки поддерживают семейство функций stat().

Использовать функцию file_exists()

получит результаты как True или false.

Кажется, это работает для меня:

Проверка наличия файла:

Проверка правильности URL:

Примечания:

В идеале вы не должны пытаться предсказать файловую систему. Хотя методы, такие как file_exists, очень полезны, на них не следует полагаться, и вместо этого вы должны пытаться писать в файлы, читать их и т.д., А затем улавливать и обрабатывать любые исключения или ошибки, которые происходят.

Источник

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

Бывают случаи, когда вам необходимо проверить, существует ли указанный файл или нет, например, для того чтобы в последующем совершить с файлом какие-то действия.

Я тоже при разработке модуля столкнулся с этим вопросом. И нашел два варианта решения поставленной задачи.

Проверка существования файла по URL-ссылке

В PHP существует функция «fopen», с помощью которой можно открыть указанный URL.

Что мы делаем? Пытаемся открыть файл, и если нам это удается, значит, файл существует, а противном же случае – файла нет.

А что, если мы имеем не один файл, а несколько, так сказать, массив ссылок? Эта задача как раз и стояла изначально передо мной. И решение уже такой задачи следующее:

В этом случае мы получаем список только тех файлов, которые существуют.

Проверка существования локального файла

Под словом «локальный» подразумевается, что скрипт и файлы для проверки находятся на одном сервере. Если у вас довольно большой массив ссылок – этот вариант самый лучший для решения задачи, так как мы делаем не запрос на сторонний сервер, а сканирование указанных директорий.

В этом способе используется функция «file_exists», и по аналогии с предыдущим вариантом просто заменяется часть скрипта:

И то же самое для массива ссылок:

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

Кстати говоря, делая один из заказов, именно этим способом мне удалось просканировать порядка 135 000 файлов всего за пару секунд.

Источник

Проверка ссылок средствами PHP

проверка url на существование php. Смотреть фото проверка url на существование php. Смотреть картинку проверка url на существование php. Картинка про проверка url на существование php. Фото проверка url на существование php

Проверка внешних ссылок на доступность средствами PHP – это самый простой способ уберечь страницы сайта от битых исходящих ссылок. Один из распространенных источников появления не рабочих URL’ов является форма добавления комментариев к записям. Именно в комментариях, чаще всего встречаются ссылки ведущие в никуда. А такие ссылки, как известно, подрывают доверие к сайту со стороны поисковых систем.

Проверить доступность сайта с помощью PHP очень легко. Для этого в PHP 5 есть уже готовая функция, которая замечательно справляется с этой задачей.
get_headers() – возвращает массив заголовков, которые сервер отправляет при запросе.

Вот как это выглядит на конкретном примере:

Проверка URL: http://google.ru

Результат работы данного PHP скрипта выведет список всех заголовков ответа сервера по которым можно судить о доступности сайта.

Не буду описывать каждый заголовок, а остановлюсь на одном:
HTTP/1.1 200 OK(для протокола 1.1) или HTTP/1.0 200 OK(для протокола 1.0) если в массиве присутствует один из этих параметров, то можно с уверенностью сказать, что ссылка рабочая и ведет на конкретную страницу веб ресурса.

Ну а поскольку, мы живем в Российской Федерации, и домены национальной зоны встречаются всё чаще и чаще, то PHP скрипт проверки ссылок на сайте, необходимо усовершенствовать. Для этого нам потребуется Punycode – конвертация.

На сайте www.phpclasses.org скачиваем файл «idna_convert.class.php» и подключаем к нашему PHP скрипту по проверке ссылок на доступность.

Теперь после проверки на наличие символов кириллицы в проверяемом URL выполняем Punycode-преобразование.

Готовый PHP скрипт для проверки URL:

Проверить данный PHP скрипт в действии можно в нижеприведенной форме.

Источник

Проверка файла на наличие / существование

Порой мы отображаем на сайтах контент с других ресурсов: картинки или фавиконы. Некоторе браузеры просто оставят пустое место (Firefox), другие же отобразят уродский прямоугольник, явно указывая, что чего-то не хватает (IE). Как же можно средствами PHP проверить существование файла.

Есть функция file_exists(), но она хороша только для файлов в пределах нашей файловой системы, а с удаленным сервером не пройдет.

Есть вариант открывать файл на чтение и в случие ошибки констатировать факт, что файла не существует:

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

Есть вариант еще лучше — использовать функцию 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 значит, что файл существует, и мы спокойно можем получить к нему доступ.
Вот код, который проверит существование файла.

Теперь сравним по времени два метода с существующей favicon и с несуществующей:
при несуществующем файле второй метод (get_headers) выигрывает на две сотые секунды.
при существующем файле оба метода показали примерно одинаковое время.

Источник

PHP Формы — Проверка имени, E-mail и URL

В данной статье, мы рассмотрим возможности PHP проверить, корректно ли в форме указан адрес электронной почты (email), имя пользователя и URL-адрес.

Проверка валидности имени на PHP

Но что если нужно, чтобы имя было ТОЛЬКО на латинице или ТОЛЬКО на кирилице и ограничить длину до 30 символов? Например, для полных имён типа «Максим Максимов-Суханов» или «Maxim Maximov-Sukhanov», естественно только на одном из языков регулярное выражение примет следующий вид (бонусом можно писать украинские имена):

или более строгий вариант выражения без прочих символов и в котором первая буква строки должна быть в верхнем регистре, а все остальные в нижнем:

Примечание: Не забывайте про букву «Ё», которая не входит в диапазон «А-Я» и её нужно указывать отдельно!

Проверка правильности email на PHP

Как известно email состоит из двух основных частей — username@hostname. Локальная часть email-адреса — это то, что перед знаком «@»(ASCII-код 64), а часть после знака — это домен получателя. Локальная часть может иметь длину до 64 символов, а имя домена может содержать не более 253 символов.

Реализуем проверку email разложив её на сосотавляющие, алгоритм которых следует предписаниям стандарта RFC 2822:

Данная регулярка удобна тем, что шаблоны для разных частей формата email-адреса объявляются отдельно. Валидацию пройдут email не только с буквенными именами почтового домена, но и почтовым сервером, представленным в виде ip адреса.

Главный минус этой регулярного выражения в том, что его нужно постоянно корректировать в соответствие изменениям в названиях email-адресов. Например, домены с русскими именами в зоне «.рф» регулярка выше уже не пропустит.

Рекомендуем использовать именно этот способ проверки email-адреса, так как сегодня и в будущем вы будете уверены, что она работает как нужно. Разработчики языка PHP сами внесут нужные корректировки в новых версиях.

Проверка URL-адреса в PHP

Проверка имени, email и URL-адреса в PHP

Объединим все рассмотренные выше все проверки полей ввода в одной форме и напишем следующий код:

Пример

Вы можете попытаться ввести корректные и некорректные данные в представленной выше форме и посмотреть работу, написанного в этом уроке, сценария PHP.

В следующем уроке мы выведем введенные пользователем данные на экран.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *