<?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我不知道該怎麼做,先生 –