PHP: 无法打开流:参数无效
PHP: failed to open stream: Invalid argument
<?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]: 无法打开流: 参数无效
您应该使用以下功能:
print_r
因此您的代码如下所示:
<?php
$file = https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf;
print_r($file);
?>
确保在 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
$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]: 无法打开流: 参数无效
您应该使用以下功能:
print_r
因此您的代码如下所示:
<?php
$file = https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf;
print_r($file);
?>
确保在 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
和以前一样,您需要重新启动服务器才能使更改生效。