您可以使用file_get_contents如果你不想使用curl,但不知道速度,但它內置的函數,其中curl
不php
的。當談到speed
時,我想無論你用於遠程請求,速度/性能將取決於網絡連接速度超過函數/庫,也許這些(curl/file_get_contents/fsockopen)有點不同,但我認爲它會很小(1-2%),你無法發現差異,它看起來幾乎是一樣的。
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"X-Header-Name: $foobar"
));
$context = stream_context_create($opts);
$data = file_get_contents('http://www.example.com/hello.xyz', false, $context);
f($data) {
// do something with data
}
另外,如果你想使用curl
,那麼你可以使用這個
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Header-Name: $foobar"));
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/hello.xyz");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
if ($curl_errno == 0) {
// $data received in $data
}
此外,check this answer,它可以幫助你來決定。
類似捲曲的庫是最簡單的方法。 *您使用的任何*庫都可能會「減慢」腳本執行速度,因爲請求本身需要時間。谷歌搜索'我如何發送一個GET頭來自PHP的請求''得到兩個好結果,顯示如何 –
如果你不想使用curl出於性能的原因,你必須實現和測量它在curl。你的代碼太慢了? – Sven
爲什麼不使用cURL?它還將爲您提供更多的功能來處理錯誤等。另外,如果您擔心在短時間內發出大量請求,可以使用'curl_multi_exec()'執行並行請求,這將允許腳本執行得更快,然後執行一系列'shell_exec() '命令或其他。我在https://github.com/mikecbrant/php-rest-client上有一個很好的輕量級'curl_multi_exec()'REST客戶端,你可以隨意使用。 –