0

我的网络主机刚刚禁用 fopen()

我的脚本曾经打开并写入服务器上的文本文件,但现在不能了。

有没有 fopen 的替代功能?

4

4 回答 4

3

您可能可以使用fsockopen()来做到这一点。对我来说,这很有效:

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

不要忘记更改主机和请求参数

于 2011-09-07T11:17:52.833 回答
2

从来没听说过。但在共享主机上使用它是一个非常安全的功能(但只有在环境设置正确的情况下),所以如果您的主机出于安全原因禁用它,他们是安全新手,您应该找到一个新主机。

无论如何都要找一个新的

于 2009-11-04T03:41:57.210 回答
2

我认为不需要启用cURL 。allow_url_fopen但是,必须安装 cURL 扩展。用于phpinfo()检查是否已安装。

它比您的正常情况要先进一点,fopen()或者file_get_contents()但绝对是一种替代方案。

于 2009-11-04T03:45:23.303 回答
1

如果可用,您可能可以使用 cURL 复制您的脚本

http://us3.php.net/cURL

于 2009-11-04T03:46:49.673 回答