Я пытаюсь выполнить перенаправление с использованием cURL. Я могу загрузить страницу в порядке, это не проблема, но если я загружу, скажите, что google.com не загружает изображения, а сайт не работает (очевидно, потому, что он просто печатает HTML и фактически не делает перенаправление).
Есть ли способ выполнить перенаправление с использованием cURL? Похоже на то, как …
header("Location: http://google.com");
… работает?
Любая помощь приветствуется.
Ну, из-за моего понимания, похоже, что OP хочет перенаправить пользователя на URL результатов поиска. Использование GoogleAPI было бы первым выбором и добиться чего-то подобного, я бы сделал следующее:
<?php $query = "firefox"; $apiUrl = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".urlencode($query); $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $apiUrl); $content = curl_exec($ch); $content = json_decode($content); $luckyUrl = $content->responseData->results[0]->unescapedUrl; header("Location: ".$luckyUrl); ?>
Код выше работает как «Мне повезло» ….
Использовать завиток с -L
-L/--location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also --loca‐ tion-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method.
Поэтому при использовании cURL add
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
Я боюсь, что невозможно заставить браузер клиента отправлять определенные значения POST и ссылается, вы можете заставить его куда-то идти, поэтому header ().
Отвечает ли это на ваш вопрос?
Это должно to work.pls попробовать это: header ('Местоположение: http://www.google.com '). Используйте (') одиночную коту вместо "(double)