假设我的 URL 是mysite.com/myuri。全世界都知道有很多方法可以知道我的站点mysite.com上是否存在本地 uri myuri 。
- 最简单、最快的方法是:
$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 服务器造成不必要的流量。
谈到我要问的问题,我希望 mysite.com 上的 PHP 脚本使用比上述三种方法更有效和准确的方法检查 URL mysite.com/myuri是否存在。
谢谢
和平...