Как отправить запрос GET с заголовком из PHP?
Позвоните мне, если это дублирующий вопрос, но это начинает становиться смешным. Я хочу, с PHP:
GET http://www.example.com/hello.xyz
И добавьте этот заголовок к запросу:
"X-Header-Name: $foobar"
где foobar берется из переменной php, которая уже определена.
и затем сохраните ответ в переменной. Это оно! Ни больше ни меньше. Но я не могу найти это!Я не хочу использовать curl или что-то подобное, это слишком сильно замедлит работу, если я буду запускать curl каждый раз. Изменить: Моя основная проблема с использованием curl заключается в совместимости с Windows (локальный сервер) и Linux (сервер развертывания).
<?php
echo "So, how do I do it in the simplest way possible?";
?>
1 ответ
Вы можете использовать file_get_contents, если вы не хотите использовать curl, но не уверены в скорости, но это php
встроенная функция где curl
не является. Когда говорим о 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
}
Кроме того, проверьте этот ответ, это может помочь вам принять решение.