2015-07-10 41 views
0
<?php 
$file = file_get_contents('https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf'); 
?> 

我不知道为什么是这样的示值误差[function.file-GET-内容]:未能打开流:无效的参数PHP:未能打开流:无效的参数

+0

其工作正常。只需'print_r($ file);'查看结果。 – SHAZ

+0

你在'php.ini'中启用了'allow_url_fopen'吗? @SHAZ - 你是不是指'print $ file',因为返回的值不是数组? – Cyclonecode

+0

@cyclone我不知道该怎么做,先生 –

回答

2

确保让你有allow_url_fopen在您的php.ini文件中启用。

。如果allow_url_fopen被激活,您可以检查的phpInfo()输出找到你php.ini文件的位置,然后在文本编辑器打开此文件,然后搜索allow_url_fopen并确保因此这种设置编辑php.ini文件的检查到On

要找到您php.ini文件,你可以做这样的来自终端的位置:

php -r 'phpInfo();' | grep php.ini 

当您找到您可以用文本编辑器编辑它像nano比如文件:

sudo nano /etc/private/php.ini 

您修改过的配置文件后确认,所以你使用重启apache:

sudo apachectl restart 

您还可以检查是否存在对https任何合适的包装:

$wrappers = stream_get_wrappers(); 
echo 'openssl: ', extension_loaded ('openssl') ? 'yes':'no', "\n"; 
echo 'https wrapper: ', in_array('https', $wrappers) ? 'yes':'no', "\n"; 
echo 'wrappers: ', var_dump($wrappers); 

如果没有https包装已启用,您正在运行Windows,你应该再次修改php.ini文件,并取消这一行:

;extension=php_openssl.dll 

就像以前一样,您需要重新启动服务器才能使更改生效。

+0

谢谢先生。但是allow_url_fopen已经在 –

+0

openssl:no https wrapper:no wrappers:array(6){[0] => string(3)“php”[1] => string(4)“file”[2] => string (4)“data”[3] => string(4)“http”[4] => string(3)“ftp”[5] => string(13)“compress.zlib”}这样显示 –

+1

@KeeratiPongram - 你正在运行Windows吗?然后就像我在我的更新的答案中所述,您应该编辑您的'php.ini'并通过删除前导'''字符来取消注释此行'extension = php_openssl.dll'。请注意,您需要重新启动服务器才能使更改生效。 – Cyclonecode

1

您应该使用以下功能:

print_r 

所以,你的代码如下所示:

<?php 
$file = https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf; 
print_r($file); 
?> 
相关问题