我正在使用API調用獲取數據。更好的選擇使用api調用獲取數據,使用什麼:fopen,file_get_contents和cURL
我想知道這將是更好的選擇
的fopen,的file_get_contents或捲曲
請幫助。
編輯 我必須做出API調用遠程系統
我正在使用API調用獲取數據。更好的選擇使用api調用獲取數據,使用什麼:fopen,file_get_contents和cURL
我想知道這將是更好的選擇
的fopen,的file_get_contents或捲曲
請幫助。
編輯 我必須做出API調用遠程系統
取決於你需要多少定製您的要求..
fopen
返回resource
,你必須使用讀取響應手動file_get_contents
做所有的讀數爲你的(你有手動執行使用fopen
和返回結果字符串curl
是爲網絡交易定製具體(和根據this後,是相當多的速度比file_get_contents
,並提供了一個API來設置標頭值這三個讓你定製你的請求頭,但fopen
這樣做並file_get_contents
需要您使用上下文回調與stream_context_create()
設置的值。
通常,當您需要對靜態數據執行簡單的GET
時,file_get_contents
似乎很常見。curl
在做其他事情時似乎是標準的。
這取決於您的使用,因爲你說的API調用,我想這是不是地方......
如果您很多次打電話請求,使用剔除,它有非常好的優勢。
如果你很少調用它,並且不知道如何使用curl,那麼file_get_contents就足夠了。
https://stackoverflow.com/questions/555523/file-get-contents-vs-curl-what-has-better-performance
您可以使用file_get_contents()
。這取決於您的配置是否打開了allow_url_fopen
設置。否則,您將無法使用file_get_contents()
和fopen()
,因爲它們都取決於此設置。在這種情況下,你需要捲曲。
您不需要使用fopen()
。您可以改用file_get_contents()
,否則您必須使用cURL。
這是不正確的 - 你可以在'file_get_contents'中使用上下文爲'POST'請求設置合適的頭文件。 fopen *是*完全合法使用,但需要您自己讀取數據。話雖如此,我真的不想用一個用例來使用'fopen',但它*是可行的。 – 2011-05-02 04:48:32
@Demian Brecht感謝您的信息。我不知道。我會更新我的答案。至於'fopen()',我沒有說它不能被使用。我只是說如果你可以使用'file_get_contents()',你就不需要它了。 – Wiseguy 2011-05-02 04:51:15
不用擔心:)有*可能會成爲一個用戶自己讀取數據的用例,我只是想不到一個,這就是爲什麼我沒有在我的答覆中打折。否則,是的 - 我同意那部分:) – 2011-05-02 04:52:48
這取決於您的設置。
fopen和file_get_contents只能用於通過URL獲取數據如果allow_url_fopen
已啓用。所以如果你的主機禁用了這個功能,你就不能使用它。
如果是這樣的話,你仍然可以使用cURL。 cURL還允許您在使用遠程URI調用時擁有更大的靈活性。
答案取決於您嘗試獲取此數據的源。如果它是本地磁盤上的文件,那麼fopen()應該這樣做;如果它是某個地方的xml/html文件,cURL是適當的。從來沒有聽說過其他的事情,對不起。 – 2011-05-02 04:26:24
@Pete Wilson:哦,我相信我必須等待更多的答案。 – 2011-05-02 04:37:35