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

PHP:无法打开流:参数无效,php,https,file-get-contents,Php,Https,File Get Contents,我不知道为什么显示错误是这样的[function.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'); ?> 因此,您的代码如下所示: print_r

我不知道为什么显示错误是这样的[function.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');
?>
因此,您的代码如下所示:

print_r

确保在
php.ini
文件中启用了
allow\u url\u fopen

要编辑
php.ini
文件,请检查是否启用了
allow\u url\u fopen
,您可以检查
phpInfo()
的输出,找到
php.ini
文件的位置,然后在文本编辑器中打开此文件,搜索
allow\u url\u fopen
,并确保将其设置为

要查找
php.ini
文件的位置,可以从终端执行以下操作:

<?php
$file = https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf;
print_r($file);
?>
找到文件后,可以使用文本编辑器(如
nano
)对其进行编辑,例如:

php -r 'phpInfo();' | grep php.ini
修改配置文件后,请确保使用以下命令重新启动apache:

sudo nano /etc/private/php.ini
您还可以检查是否有适用于
https
的包装:

sudo apachectl restart
如果未启用任何
https
wrapper,并且您正在运行windows,则应再次编辑
php.ini
文件并取消对此行的注释:

$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);

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

工作正常。只需打印($file)
查看结果。是否在
php.ini
中启用了
允许url\fopen
@沙兹-你的意思是不是
print$file
因为返回的值不是数组?@cyclone我不知道怎么做siropenssl:no-https包装器: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”}看起来像this@KeeratiPongram-您正在运行windows吗?然后,正如我在更新的答案中所说的,您应该编辑
php.ini
,并通过删除前导的
来取消对这一行的注释
extension=php_openssl.dll
字符。请注意,然后需要重新启动服务器才能使更改生效。是的,我在Windows上运行,我已通过删除修复;extension的前端=php_openssl.dll,但仍显示错误。谢谢您的帮助,先生。我想我可以在聊天中更好地帮助您,到这个房间:
;extension=php_openssl.dll