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

标签 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]:无法打开流:参数无效

最佳答案

确保您在 php.ini 文件中启用了 allow_url_fopen

要编辑 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

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

关于PHP:无法打开流:参数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31337037/

相关文章:

php - 是否可以在运行时向 PHP 中的类添加特征?

c# SSL TCPServer 停留在 SsLStream.AuthenticateAsServer()

php - File_get_contents 不起作用?

javascript - 向 Netatmo 发送 Node HTTP POST 请求

api - 通过 HTTPS 自托管 WEB API。拒绝所有 HTTP 调用

PHP cURL 与 file_get_contents

PHP header - 内容类型 : image/jpeg - Not working for Internet Explorer

php - 对字符串调用成员函数 addEagerConstraints()

javascript - 从 Ajax 的 PHP 脚本重定向

php - Web 服务中的多种语言