【问题标题】:fopen() can't write with error "HTTP wrapper does not support writeable connections"fopen() 无法写入错误“HTTP 包装器不支持可写连接”
【发布时间】:2012-03-22 08:35:31
【问题描述】:

我有一个带有 url 的文件:http://localhost:8080/cache/a66b311547bf3da88f01139271d5bb50.txt 在php中我使用代码:

$file = "http://localhost:8080/cache/a66b311547bf3da88f01139271d5bb50.txt"
$output = serialize($data);
$fp = fopen($file, "w");
fputs($fp, $output);
fclose($fp);

运行代码时出错

警告:fopen(http://localhost:8080/cache/a66b311547bf3da88f01139271d5bb50.txt):打开流失败:HTTP wrapper 不支持可写连接...

如何解决?

【问题讨论】:

  • 正如错误信息告诉你的,它不能被“修复”。
  • 真的吗?有没有其他解决方案可以解决此类问题!

标签: php


【解决方案1】:

你不能使用http写,你必须使用本地文件系统来写文件。

例如见http://php.about.com/od/advancedphp/ss/file_write_php.htm

【讨论】:

    【解决方案2】:
    $file = $_SERVER['DOCUMENT_ROOT']."/cache/a66b311547bf3da88f01139271d5bb50.txt";
    $output = serialize($data);
    file_put_contents($file,$output);
    

    【讨论】:

      【解决方案3】:

      您不能向在线文件写入内容。

      你可以做的是下载文件,然后写一些东西。

      【讨论】:

        【解决方案4】:

        fopen() 允许使用 HTTP GET 方法通过 HTTP 1.0 对文件/资源​​进行只读访问。
        你不应该使用模式'w'

        $fp = fopen($file, "w");
        

        请改成'r'

        $fp = fopen($file, "r");
        

        【讨论】:

        • 更改 fopen 模式进行阅读。不能写,因为 http 协议不允许写。
        【解决方案5】:

        登录到您的 webmin 并授予该文件夹以写入 permission 并在您的代码集中 absolute path 像这样。

        if($_SERVER['HTTP_HOST'] != 'localhost'){//for live server
           $file = fopen('/var/www/html/etijarat.pk/feed/file.csv', 'w');
        }else{// for your local
            $file = fopen('./feed/file.csv', 'w');
        }
        

        【讨论】:

          猜你喜欢
          • 2013-12-08
          • 2012-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-13
          相关资源
          最近更新 更多