Предположим, мой URL-адрес mysite.com / myuri . В мире существует множество способов узнать, существует ли на моем сайте локальный uri myuri mysite.com.
- Самый простой и быстрый способ:
$uri_exists = file_exists($_SERVER['DOCUMENT_ROOT']."/myuri")
.
- Следующий метод:
$headers = @get_headers("http://mysite.com/myuri");
$uri_exists = ($headers[0] == "HTTP/1.1 404 Not Found");
- Другой (немного более быстрый, чем предыдущий) метод:
$curl = curl_init('http://mysite.com/myuri');
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$info = curl_getinfo($curl);
$uri_exists = ($info['http_code'] == 200);
curl_close($curl);
Это были методы, которые я знаю. Первый метод точно проверяет, существует ли файл, а не существует ли URI. Если используется mod_rewrite
, этот метод очень неточен.
Следующие два метода точны (даже когда используется mod_rewrite
), но медленны, поскольку они выполняют удаленные запросы GET на свой сайт. Они также неэффективны, потому что просто для того, чтобы узнать, существует ли URI, скрипты на mysite.com будут выполняться без необходимости. Более того, они будут вызывать ненужный трафик на сервер MySQL.
Возвращаясь к тому, что я пытаюсь спросить, я хочу, чтобы PHP-скрипты на mysite.com проверяли, существует ли URL mysite.com / myuri , используя метод, более эффективный и точный, чем выше трех методов.
Спасибо
Мир ...