allow_url_fopen需要打开

时间:2012-03-30 12:41:48

标签: php

我需要将服务器端的php.ini配置(参数是allow_url_fopen)从off更改为on但我不能访问php.ini文件,我想通过php代码进行操作但我不知道wat要做什么以及在哪里粘贴该代码(我应该把它放在我用来下载文件的标题之前???)

header('Content-disposition: attachment; filename=' . basename($fileName));
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Description: File Transfer'); 

ob_clean();
flush();
readfile($finalFileName);
exit; 

提前感谢

4 个答案:

答案 0 :(得分:4)

不建议使用该选项。 相反,你应该使用curl库。

function getUrlContent($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

答案 1 :(得分:0)

有一个名为 ini_set 的函数可以动态设置php ini值。但在您的情况下,它需要您的服务器的适当许可才能使用此功能。您可以联系您的托管服务提供商。

最佳解决方案是使用 cURL ,因为它已被大多数服务器启用。

答案 2 :(得分:0)

您可以使用ini_set()更改属性,ini_get()可以查看这些属性,试试这个:

echo ini_get('allow_url_fopen');

if (!ini_get('allow_url_fopen')) {
    ini_set('allow_url_fopen', 1);
}

echo ini_get('allow_url_fopen');

你也可以尝试.user.ini来改变它,就像php.ini的.htaccess一样,但是你的sysAdmin可以拒绝任何这些东西,所以像其他人说的那样查看curl

答案 3 :(得分:0)

你想在这里实现什么?如果您只是想在本地链接上强制下载,请使用文件系统路径(如readfile('。/ filename.ext'))而不是URL。如果您必须强制下载下载文件,请按照Soaica Mircea的建议进行操作。

由于某种原因,

allow_url_fopen设置为off,因为它可能会产生难以预测的结果。