2015-07-10 39 views
0
<?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:未能打開流:無效的參數

+0

其工作正常。只需'print_r($ file);'查看結果。 – SHAZ

+0

你在'php.ini'中啓用了'allow_url_fopen'嗎? @SHAZ - 你是不是指'print $ file',因爲返回的值不是數組? – Cyclonecode

+0

@cyclone我不知道該怎麼做,先生 –

回答

2

確保讓你有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 

就像以前一樣,您需要重新啓動服務器才能使更改生效。

+0

謝謝先生。但是allow_url_fopen已經在 –

+0

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」}這樣顯示 –

+1

@KeeratiPongram - 你正在運行Windows嗎?然後就像我在我的更新的答案中所述,您應該編輯您的'php.ini'並通過刪除前導'''字符來取消註釋此行'extension = php_openssl.dll'。請注意,您需要重新啓動服務器才能使更改生效。 – Cyclonecode

1

您應該使用以下功能:

print_r 

所以,你的代碼如下所示:

<?php 
$file = https://s3.amazonaws.com/cloudplus/us-east-1%3A4eddd3f9-3729-473f-984c-16fddfe5e23f/Contacts/Contacts_1436328498.vcf; 
print_r($file); 
?> 
相關問題