2013년 4월 3일 수요일

[php] 소켓 전송 및 파징 예제


php 에서 소켓을 생성하고, 호스트(google.com) 에 http request를 보낸 후

받은 response 를 출력하는 예제 입니다.

response 를 DOMDocument 인스턴스에 로드를 하면

getElementById 와 같은 함수를 통해 웹페이지를 쉽게 파징하실 수 있습니다.

$c = fsockopen('www.google.com', 80, $errno, $errstr, 30);

if (!$c)
 die ("Couldn't connect to google.com");

$header .= "Host: www.google.com\r\n";
$header .= "User-Agent: Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30\r\n\r\n";
fwrite($c, $header);

while (!feof($c))
 $file.=fgets($c,128);

$dom = new DOMDocument();
$dom->loadHTML(''.$file);

// echo $file;
// echo "".substr($file, strpos($file,"";

// 활용 예제
foreach ($dom->getElementById('ires')->getElementsByTagName('li') as $child) {
 $item = new SearchItem();

 $element = $child->getElementsByTagName('h3')->item(0);
 $title = $element->nodeValue;
 $item->title = $title;
}

댓글 없음:

댓글 쓰기