DOMDocument :: loadHTMLFile () изменить пользовательский агент

Я использую PHP для загрузки сайта в DOM Tree. Есть ли способ изменить агент пользователя, который отправляется с использованием DOMDocument::loadHTMLFile() ?

 function parseThis($url) { $html = new DOMDocument(); $html->loadHtmlFile( $url ); return $html } 

Измените значение user_agent в php.ini , которое должно быть отправлено во что угодно, используя оболочку http-потока, такую ​​как DOMDocument::loadHtmlFile(), file_get_contents() и т. Д.

 $fake_user_agent = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"; ini_set('user_agent', $fake_user_agent); 

То же самое можно сделать и в Apache .htaccess , установив php_value user_agent если это разрешено вашей конфигурацией сервера.

Ну, я думаю, что лучший способ сделать это – получить контент по-другому и загрузить документ после. Вы можете сделать это, используя cURL.

 $useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"; $ch = curl_init(); // set user agent curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_HEADER, 0); // grab content from the website $content = curl_exec($ch); // load the content in your dom $html = new DOMDocument(); $html->loadHTML($content);