В любом случае, установить реферер при использовании simplexml_load_file для загрузки XML-файла с URL-адреса?

Vimeo.com позволяет ограничить встраивание видео в определенные домены. Однако при встраивании видео у меня есть скрипт, который запрашивает у Vimeo подробности о видео. Этот запрос выполняется через функцию PHP simplexml_load_file (), целевым URL является URL-адрес видео Vimeo. Поскольку поле реферера пустое, Vimeo не разрешает доступ к видео, и сценарий не может получить никаких подробностей видео.

К сожалению, Vimeo не допускает внесение в белый список IP-адресов, единственный способ обойти эту настройку конфиденциальности — настроить реферера так, чтобы он выглядел так, будто запрос исходит от браузера, пытающегося посмотреть видео на моем сайте.

Мне нужно знать, как я могу установить реферера — я не вижу пути — надеюсь, что что-то упустил.

Конкретная строка:

  $sxml = simplexml_load_file($target_url);

0

Решение

Да, ты можешь. Вы можете установить все заголовки, включая ссылающейся за simplexml_load_file установив поле заголовка в так называемом контекст потока для этой функции.

Это делается через libxml_set_streams_context.

Пример кода (pinback не работает, он просто показывает, что загрузка XML работает и как установить заголовки):

$options = [
"http" => [
"header"        => "Accept-language: en\r\n" .
"Referer: http://www.example.com\r\n",
"ignore_errors" => true,
]
];
$context = stream_context_create($options);
libxml_set_streams_context($context);

$url = "http://vimeo.com/_pingback";

$sxl = simplexml_load_file($url);
$sxl->asXML("php://output");

Повторный вопрос:

  • проблемы simplexml_load_file — Ответ там показывает, как использовать контексты потока с file_get_contents затем передать тело ответа HTTP simplexml_load_string,
0

Другие решения

Вы можете использовать curl:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.example.com/1');
$xml = curl_exec($ch);

$sxml = simplexml_load_string($xml);
0

Я знаю, что ваш вопрос касается именно настройки реферера, но есть некоторые проблемы с вашей первоначальной идеей.

Способ доступа к метаданным видео не поддерживается Vimeo и в будущем прекратится без каких-либо дополнительных предупреждений.

Vimeo API это единственный поддерживаемый способ получения метаданных видео.

0
По вопросам рекламы [email protected]