<?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:未能打开流:无效的参数
<?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:未能打开流:无效的参数
确保让你有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
就像以前一样,您需要重新启动服务器才能使更改生效。
谢谢先生。但是allow_url_fopen已经在 –
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”}这样显示 –
@KeeratiPongram - 你正在运行Windows吗?然后就像我在我的更新的答案中所述,您应该编辑您的'php.ini'并通过删除前导'''字符来取消注释此行'extension = php_openssl.dll'。请注意,您需要重新启动服务器才能使更改生效。 – Cyclonecode
您应该使用以下功能:
print_r
所以,你的代码如下所示:
<?php
$file = https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf;
print_r($file);
?>
其工作正常。只需'print_r($ file);'查看结果。 – SHAZ
你在'php.ini'中启用了'allow_url_fopen'吗? @SHAZ - 你是不是指'print $ file',因为返回的值不是数组? – Cyclonecode
@cyclone我不知道该怎么做,先生 –