警告:file_get_contents():https://所有人在服务器配置中禁用了包装器

时间:2016-04-30 07:39:32

标签: php

当我上传带有zipcode的csv文件时,它将转换并保存纬度和逻辑。将zipcode转换为lat,lng时发生的错误。在我的localhost工作正常。当我在实时服务器上传时。我收到此错误警告:file_get_contents():https://在服务器配置中禁用包装器,在/hermes/bosnaweb05a/b1410/ipg.rwdinfotechcom/vw/zipmapping/index.php上的allow_url_fopen = 0 29 。我也检查了我的谷歌API密钥。我无法添加php.ini文件。如果我上传php.ini文件,则显示内部服务器错误。



Here my code
function getLnt($zip){
$url = "https://maps.googleapis.com/maps/api/geocode/json?key=AIzaSyDEGgYDar8y3Bx-1FpY3hq6ON4LufoRK60&address=
".urlencode($zip)."&sensor=false";

$result_string = file_get_contents($url);
$result = json_decode($result_string, true);

$result1[]=$result['results'][0];
$result2[]=$result1[0]['geometry'];
$result3[]=$result2[0]['location'];
return $result3[0];
}




6 个答案:

答案 0 :(得分:20)

首先,使用此代码检查PHP文件,然后在php.ini文件中启用fopen

<?php 
if( ini_get('allow_url_fopen') ) {
    die('allow_url_fopen is enabled. file_get_contents should work well');
} else {
    die('allow_url_fopen is disabled. file_get_contents would not work');
}

?>

编辑php.ini文件并启用下面的代码

allow_url_fopen = ON
allow_url_include = ON

答案 1 :(得分:15)

  1. 登录您的Cpanel
  2. 在软件下单击 MultiPHP INI编辑器 demo
  3. 点击编辑模式,然后选择域 demo
  4. 粘贴 allow_url_fopen = 1 并保存

答案 2 :(得分:4)

这个解决方案对我有用,因为我无法访问 php.ini 文件。

我添加了这个功能:

#include "unity.h"
#include "sum2nums.h"
#include "stm32f4xx.h"

void test_Sum(){
    GPIOA->MODER = 1U;
    TEST_ASSERT_EQUAL_UINT32(5, Sum(3, 2));
}

并用它代替

<块引用>

file_get_contents($url)

它奏效了。

解决方案更好解释here,所有功劳都归功于帖子的创建者。

答案 3 :(得分:1)

尝试将以下代码添加到PHP文件中:

<?php
    ini_set("allow_url_fopen", 1);

问题可能是在服务器上,allow_url_fopen的PHP设置可能配置不同:例如0。如果您有权访问它,也可以在php.ini文件中执行相同的操作。

希望这会有所帮助......

答案 4 :(得分:1)

我遇到了同样的问题,我用谷歌搜索了这个话题。 我无法将其从joomla direct 3.9.1更新到3.9.2,即使手动上传也是如此。
原因是在此更新之前,它迫使我将php版本升级到7.2,所以我从cpanel做到了,现在解决下一个更新将是:

  1. 登录到cpanel
  2. 在软件下找到“ MultiPHP INI编辑器”
  3. 选择您的域并选择修改
  4. 设置:
    “ max_execution_time”到90(在我的30号中)
    “ memory_limit”为256M(这是新php仅启用32M的功能!)
    “ post_max_size”到100M
    “ upload_max_filesize”到100M

...因为每个php新版本均设置为默认版本。

享受;)

答案 5 :(得分:0)

尝试从.htaccess中删除以下行,并切换到最新版本的PHP。

对我来说,这是由于将以下内容添加到.htaccess中引起的:

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php70” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php70___lsphp .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

删除它可以解决问题,但在未知的时间段后会重新出现。

我注意到我正在运行(不建议使用)PHP 7.0,并将其更改为(最新版本)7.4。我向我们的托管服务提供商发送了有关该问题的支持票,他们的回复是:

如果您现在选择了PHP 7.4,则不应替换这些行 更长的时间,这就是CloudLinux的作用-它强制使用特定的PHP 通过.htaccess加载的版本

最近一小时没有回来,所以手指交叉了。