【问题标题】:file_get_contents() GET request not showing up on my webserver logfile_get_contents() GET 请求未显示在我的网络服务器日志中
【发布时间】:2010-12-12 02:24:27
【问题描述】:

我有一个简单的 php 脚本,可以使用 file_get_contents() ping 我的一些域,但是我检查了我的日志,它们没有记录任何获取请求。

我有

$result = file_get_contents($url);
echo $url. ' pinged ok\n';

每个域的 $url 只是http://mydomain.com/ 形式的简单字符串,echo 验证了这一点。我自己提出的手动请求正在显示。

为什么我的日志中不会显示获取请求?

实际上,当我将 $result 发送到浏览器时,我已经注册成功。我猜这意味着网络服务器只记录浏览器请求?有没有办法在php中模仿这样的?

好的,试过 curl php:

// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, "getcorporate.co.nr");

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);   

虽然效果相同 - 日志中没有记录命中。到目前为止,它仅在我将脚本中的 http 响应反馈给浏览器时才注册。显然,这仅适用于单个请求,而不适用于我的脚本的目的。

如果出现其他问题,我可以查看哪些调试输出?

编辑:天啊!有关我的错误想法的解释,请参阅下面接受的答案。

【问题讨论】:

    标签: php http file-get-contents


    【解决方案1】:

    使用 curl 代替?

    【讨论】:

      【解决方案2】:

      这很奇怪。也许有一些缓存正在进行中?您是否尝试过动态更改 URL(例如 $url = $url."?timestamp=".time())?

      【讨论】:

      • 没有定义没有。尝试了时间戳以确保。
      【解决方案3】:

      如果请求确实在发出,它会在日志中。

      您的示例代码可能会静默失败。

      如果你这样做会发生什么:

      <?PHP
      if ($result = file_get_contents($url)){
          echo "Success"; 
      }else{
          echo "Epic Fail!";
      }
      

      如果失败,您需要打开一些错误报告或日志记录并尝试找出原因。

      注意:如果您处于安全模式,或者有fopen url wrappers disabled,file_get_contents() 将不会抓取远程页面。这是事情失败的最可能原因(假设 $url 的内容没有错字)。

      【讨论】:

      • 我对单个 file_get_contents($url) 请求进行了回显,虽然显然将请求的全部内容返回到我的浏览器,但它也记录在服务器上。所以对 file_get_contents() 的调用是有效的
      • 你说如果你的脚本回应浏览器的响应,你会在远程服务器日志中得到一些东西吗?如果你 100% 确定这是对的,那么我不知道。如果你做一个非常简单的例子,一个只执行 file_get_contents($url) 的脚本,那不会创建一个日志条目吗?当你把它改成“echo file_get_contents($url);”日志条目开始显示?
      • 球。我的请求转到一个包含框架的 html 文件。这是我正在检查其日志的框架页面之一。所以我猜一个简单的http请求显然不会像浏览器那样自动追踪所有包含的帧。我确信这是失败者类型徽章之一的候选人。
      • 完全正确。但是日志中应该有一个条目,用于包含您的框架的页面的 GET。我猜您正在寻找其他页面的日志条目。
      • 毫无疑问它有,但它在我无法控制的另一个域上。再次感谢您将我推向正确的方向
      猜你喜欢
      • 2019-12-15
      • 2018-11-29
      • 2019-12-10
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 2015-06-08
      相关资源
      最近更新 更多