【问题标题】:PHP File_put_contents not workingPHP File_put_contents 不起作用
【发布时间】:2012-08-26 01:19:21
【问题描述】:

检查此代码:

<?php

$url = 'http://www.example.com/downloads/count.txt';

$hit_count = @file_get_contents($url);
$hit_count++;
@file_put_contents($url, $hit_count);

header('Location: wmwc.zip');

?>

@file_get_contents 工作正常,对下载文件的标题位置更改也可以,但是 hit_count 增加或@file_put_contents 不起作用,因为文件的数字不会增加 1。我已经设置文件权限为 777,但是当我尝试将目录权限设置为 777 时,我也收到 500 内部服务器错误,提示“服务器遇到了意外情况,导致它无法满足请求。”

【问题讨论】:

  • 去掉@,告诉我们你遇到了什么错误。 @隐藏错误。
  • 您试图写入一个 url。我认为这不应该与http 一起使用。也许您打算编写一些本地文件,但是您将不得不使用该文件的路径。
  • 删除了@并得到了这个:未能打开流:HTTP包装不支持/hermes/bosweb/web046/b462/glo.ckrsavonte/whoolimooli/downloads/index.php中的可写连接在线7 具有目录权限 755。777 产生与以前相同的内部服务器错误。

标签: php file-permissions directory-permissions


【解决方案1】:

您不能通过 http 编写远程文件。(如果您可以这样做,其他人也可以更改该文件。)

你需要使用本地路径。

【讨论】:

  • 我使用的是 wordpress,所以 URL 实际上并不指向系统的根目录。由于它是 php,因此我假设路径必须相对于执行此函数的 php 文件,是的,而不是页面的实际 URL。这是正确的吗?
  • @CoreyRS 最好使用绝对路径。
  • 好吧,我想你误解了我最初的帖子。我在变量中设置的 URL 是绝对路径,文件托管在我的本地服务器上,但它仍然无法正常工作。
  • @CoreyRS 我不是指http路径,我指的是你服务器中的文件路径,使用/wwwroot/downloads/count.txt
  • @CoreyRS Error msg 会告诉你原因。
【解决方案2】:

尝试更改目录属性

chown www-data:www-data <dirname>

和/或写如下,如果你在 linux 上托管

<?php
$var ="hi";
shell_exec('echo "'.$var.'">>log.txt');
?>

【讨论】:

    猜你喜欢
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2016-01-05
    • 2015-10-02
    • 2021-08-14
    • 2012-07-13
    相关资源
    最近更新 更多