PHP에서 simpleXML을 사용하여 RSS 피드를 가져 오려고합니다.SimpleXML 사용자 에이전트
rss 웹 사이트에 올바른 사용자 에이전트가 없으면 차단 될 것이라고합니다.
사용자 에이전트를 어떻게 설정합니까?
PHP에서 simpleXML을 사용하여 RSS 피드를 가져 오려고합니다.SimpleXML 사용자 에이전트
rss 웹 사이트에 올바른 사용자 에이전트가 없으면 차단 될 것이라고합니다.
사용자 에이전트를 어떻게 설정합니까?
cUrl을 사용하여 피드를 검색 한 다음 simplexml_load_string 함수를 사용하여 콘텐츠가 들어있는 문자열에서 DOM을 만들 수 있습니다. CURL을 사용하면, 당신은이 방법으로 원하는 사용자 에이전트 설정할 수 있습니다
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
$content = curl_exec($ch);
curl_close ($ch);
$dom = simplexml_load_string($content);
을 그리고 당신은 좋은 예 여기에 전체 코드를 얻을 수 있습니다 : http://www.php.net/manual/en/ref.curl.php#93163
당신은 CURLOPT_USERAGENT
인수를 사용 cURL으로 그렇게 할 수 있습니다 .
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/rss.xml");
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); //$user_agent would contain your agent.
$xml = curl_exec($ch); //xml stored in the variable $xml
curl_close($ch);
?>
PHP 사용하여 (임시 방법으로) 설정할 수있는 user_agent
설정이 있습니다 :
ini_set('user_agent', 'user_agent_goes_here');
그것은 당신의 php.ini
(여기에서 그것을 변경하는 경우, 그것은 영원한 것)
예 : 한마디로
//Setting the user agent as Firefox 9.0
ini_set('user_agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20100101 Firefox/9.0');
$xml = file_get_contents($rssfeed);
$simplexml = simplexml_load_string($xml);
? 사용자 에이전트 헤더를 보냅니다.
긴 대답은 HTTP (아마도 컬)를 통해 콘텐츠를 가져 와서 연결을 시작하고 예상되는 헤더를 보내고 액세스하려는 XML 파일을 문자열로 풀어내는 PHP의 방법 중 하나를 사용해야한다는 것입니다 . 이 작업을 완료하면 검색된 데이터를 원하는 XML 파서로 구문 분석하십시오.
예를 들어, 컬은 IE 6으로 포즈를 얻을 수 있습니다 :
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/6.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)');
나는이를 사용하는 경우, 변경 사항은 영구적입니까? – David19801
'php.ini'에서 변경하면 영구적입니다. 그렇지 않으면 no입니다. "ini_set()"설정 옵션의 값을 설정합니다. 설정 옵션은 스크립트가 실행되는 동안이 새로운 값을 유지하고 스크립트의 끝 부분에서 복원 될 것입니다. " – Nasreddine
재미있는 찾기, 이제 어떻게 하나합니까? 실제로 이것을 사용할 요청을 만드시겠습니까? 나는 그것을 시도하지 않습니다. – Mob