PHP ez 2012-06-26
本篇利用 PHP 取得某網站 HTTP 的網站內容 HTML。
建立一個 class ,例如 Http_Client.class 內容如下:
<?
class HTTP_Client
{
var $connect = null;
var $ip = null;
var $error = null;
var $errno = null;
function HTTP_Client ($ip, $port = 80, $timeout = 30)
{
if (empty($ip)) return false;
$this->connect = fsockopen($ip, $port, $this->error, $this->errno, $timeout);
if ($this->connect) {
$this->ip = $ip;
}
}
//POST
function post ($path, $date)
{
fputs($this->connect, "POST $path HTTP/1.1\n");
fputs($this->connect, "Host: ". $this->ip ."\n");
fputs($this->connect, "Content-type: application/x-www-form-urlencoded\n");
fputs($this->connect, "Content-length: ". strlen($date) ."\n");
fputs($this->connect, "User-Agent: MSIE\n");
fputs($this->connect, "Connection: close\n\n");
fputs($this->connect, "$date");
while (!feof($this->connect)) {
$buffer .= fgets($this->connect,128);
}
return $buffer;
}
//GET
function get ($path = "/", $arraydata = array())
{
if (is_array($arraydata)) {
foreach ($arraydata as $var => $value) {
$data .= (++$i==1) ? "$var=$value" : "&$var=$value";
}
} else {
return false;
}
if ($data) $path .= "$data";
fputs($this->connect, "GET $path HTTP/1.1\n");
fputs($this->connect, "Host: ". $this->ip ."\n");
fputs($this->connect, "User-Agent: MSIE\n");
fputs($this->connect, "Connection: close\n\n");
while (!feof($this->connect)) {
$buffer .= fgets($this->connect,128);
}
return $buffer;
}
//Clear Title
function clear($data)
{
$dataArray = split("\r\n\r\n",$data);
return str_replace($dataArray[0],"",$data);
}
//關閉連線
function close ()
{
return fclose ($this->connect);
}
}
?>使用 class 取得 www.google.com.tw 網站的 HTML 內容:
<?php
require_once 'Http_Client.class';
$http_client = &new HTTP_Client("www.google.com.tw","80","30"); //網址 port 讀取時間
$http_data = $http_client->post("/"); //網址
$http_client->close();
echo $http_client->clear($http_data);
?>標籤: PHP
