PHP:无法打开流:无效的参数

时间:2015-07-10 09:20:10

标签: php https file-get-contents

<?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-contents]:无法打开流:无效的参数

2 个答案:

答案 0 :(得分:3)

请确保您的allow_url_fopen文件中已启用php.ini

要编辑php.ini文件,请检查allow_url_fopen是否已启用,您可以检查phpInfo()的输出以查找php.ini文件的位置,然后打开此文件在文本编辑器中搜索allow_url_fopen并确保将其设置为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

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

答案 1 :(得分: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);
?>