php中检查某个链接是否存在的两个方法

php中检查某个链接是否存在的两个方法






在PHP中,检查某个链接是否存在,有两个方法,一个是使用curl,另外一个是
获得HTTP的header的响应码,如果是200的则是OK,如果是404的话就找不到了,例子如下:

1) 使用get_headers:
  1. <?php

  2. $url = "http://www.abc.com/demo.jpg";
  3. $headers = @get_headers($url);
  4. if($headers[0] == 'HTTP/1.1 404 Not Found')
  5. {
  6.   echo "URL not Exists";
  7. }
  8. else
  9. {
  10.   echo "URL Exists";
  11. }
  12. ?>
复制代码
get_headers中有第2个参数,是true的话,结果将会是个关联数组

2) 使用CURL
  1. <?php
  2. $url = "http://www.domain.com/demo.jpg";
  3. $curl = curl_init($url);
  4. curl_setopt($curl, CURLOPT_NOBODY, true);
  5. $result = curl_exec($curl);
  6. if ($result !== false)
  7. {
  8.   $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);  
  9.   if ($statusCode == 200)
  10.   {
  11.   echo "URL Exists"
  12.   }

  13. }
  14. else
  15. {
  16.   echo "URL not Exists";
  17. }
  18. ?>
复制代码
CURLOPT_NOBODY指定了只是建立连接,而不取整个报文的内容

作者: 听老歌   发布时间: 2011-05-17

好办法,以前光想着用curl了,没想到php还内置了这样的方法

作者: amazergling   发布时间: 2011-05-17

学习了,还不知道有这么一个函数

作者: 大呀   发布时间: 2011-05-17