【问题标题】:Checking link from a host with php使用 php 检查来自主机的链接
【发布时间】:2011-12-19 00:28:12
【问题描述】:

我有一些链接,一些在 rapidshare 上,一些在其他上传主机上。 如何检查链接上的文件是否仍然有效?

我尝试使用 curl 和 file_get_contents。 在某些主机上 curl 正在工作,而在其他 file_get_contents 上正在工作,但大多数主机不会返回页面源代码,因此我无法搜索字符串“已删除”或类似的内容。

有什么办法吗?

已编辑:这是新代码,仍然无法正常工作:

function curl_download($Url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
   curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch,CURLOPT_SSLVERSION,3);
   curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;

【问题讨论】:

  • 你的代码是什么?他们返回什么?

标签: php curl


【解决方案1】:
函数访问($url){ $agent = "Mozilla/4.0 (兼容; MSIE 5.01; Windows NT 5.0)"; $ch=curl_init(); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch,CURLOPT_VERBOSE,false); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch,CURLOPT_SSLVERSION,3); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE); $page=curl_exec($ch); //回显 curl_error($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if($httpcode>=200 && $httpcode

【讨论】:

  • 它会完成这项工作,但它看起来有点过头了。 CURL 绝对是答案
  • 感谢您的评论。然而,它仍然行不通。它不获取某些主机的源代码,或者它只是获取一些源代码。我必须获取整个来源才能搜索“已删除”这个词左右..
  • @user 诀窍是查看 HTTP 响应代码。如果文件消失了,主机应该以 404 代码或类似代码响应。无需查看实际页面内容。这些网站是否真的如此行事是另一个问题。
  • 好的,但是如果文件被删除它不会响应404,这就是我阅读整个源代码的原因。但是,没有成功,我编辑并编写了我的代码,它没有显示某些站点的完整源代码。有什么解决办法吗?
猜你喜欢
  • 2014-03-26
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 2020-03-23
  • 2019-04-23
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
相关资源
最近更新 更多