我这里有段不记得是哪里得来的php代码
<?php
class ugs
{
var $value_ ; //'搜集到的内容
var $src_ ; //'要搜集的目标URL地址
var $host_ ; // 主机
var $port_ ; // 端口
var $targeturl_ ; // 目标url
var $isGet_ ; //判断是否已经搜集过
var $os_ ; // 判断操作系统 ,本程序可以使用在 window / unix php 4 php 5 环境中
function ugs($hostinfo)
{
$this->os_="unix";
if(eregi("win",$_ENV["OS"])) $this->os_="win";
if(eregi("win",$_ENV["OSTYPE"])) $this->os_="win";
$host=$hostinfo["host"];
$port=$hostinfo["port"];
$targeturl=$hostinfo["targeturl"];
$host=trim($host);
$port=trim($port);
$targeturl =trim($targeturl);
$this->host_=$host;
$this->port_=$port;
$this->targeturl_=$targeturl ;
$this->src_="http://".$host.":".$port.$targeturl;
}
function steal() //'窃取目标URL地址的HTML代码/方法
{
if($this->src_!=""
{
print $this->src_;
print "/n";
$fp = fsockopen($this->host_, $this->port_, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />/n";
} else {
$out = "GET $this->targeturl_ HTTP/1.1/r/n";
$out .= "Host: $this->host_/r/n";
$out .= "Connection: Close/r/n/r/n";
print $out;
fwrite($fp, $out);
while (!feof($fp))
{
$http.=fgets($fp, 128);
}
fclose($fp);
}
$this->value_=$http;
}
else
{
echo ("<script>alert(/"请先设置src属性!/"
</script>"
;
}
}
function noReturn()//'删除搜集到的内容中里面的换行、回车符以便进一步加工/方法
{
if(!$this->isGet_) $this->steal();
$this->value_=str_replace("/n","",$this->value_);
$this->value_=str_replace("/r","",$this->value_);
}
//'对搜集到的内容中的个别字符串用新值更换/方法
function change($oldStr,$str) //'参数分别是旧字符串,新字符串
{
if(!$this->isGet_) $this->steal();
$this->value_=str_replace($oldStr,$str,$this->value_ );
}
//'按指定首尾字符串对搜集的内容进行裁减(不包括首尾字符串)/方法
function cut($head,$bot) //'参数分别是首字符串,尾字符串
{
if(!$this->isGet_) $this->steal();
$message=explode($head,$this->value_);
if(count($message)>1)
{
$message=explode($bot,$message[1]);
return $this->value_= $message[0];
}
else
{
return $this->value_="";
}
}
function cut2($head,$bot) // cut 的另一种实现方法
{
return substr($this->value_,strpos($this->value_,$head)+strlen($head),strpos($this->value_,$bot)-strpos($this->value_,$head)-strlen($head));
}
// 增强版的cut 可以指定获取第n 个 , $comprise 可以使用start ,end , all 来获得加头,尾 或者全部
function cutpro($start,$end,$no='1',$comprise=''){ // $no must in {1,2,3,4,5.....} zero is not support
$string=explode($start,$this->value_);
//print_r($string);
$string=explode($end,$string[$no]);
//print_r($string);
switch ($comprise){
case 'start':
$string=$start.$string[0];
break;
case 'end':
$string=$string[0].$end;
break;
case 'all':
$string=$start.$string[0].$end;
break;
default:
$string=$string[0];
}
return $this->value_=$string;
}
//'按指定首尾字符串对搜集的内容进行裁减(包括首尾字符串)/方法
function cutX($head,$bot) //'参数分别是首字符串,尾字符串
{
$tmp=$this->cut($head,$bot);
return $this->value_=$head.$tmp.$bot;
}
//'按指定首尾字符串位置偏移指针对搜集的内容进行裁减/方法
function cutBy($head,$headCusor,$bot,$botCusor)
//'参数分别是首字符串,首偏移值,尾字符串,尾偏移值,左偏移用负值,偏移指针单位为字符数
{
if(!$this->isGet_) $this->steal();
return substr($this->value_,strpos($this->value_,$head)+strlen($head)+$headCusor,strpos($this->value_,$bot)-1+$botCusor-strpos($this->value_,$head)-strlen($head)-$headcusor);
}
//'按指定首尾字符串对搜集的内容用新值进行替换(不包括首尾字符串)/方法
function filt($head,$bot,$str)// '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
{
if(!$this->isGet_) $this->steal();
$tmp_v=$this->value_;
$tmp=$this->cut($head,$bot);
return $this->value_=str_replace($tmp,$str,$tmp_v);
}
function filtX($head,$bot,$str)// '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
{
if(!$this->isGet_) $this->steal();
$tmp_v=$this->value_;
$tmp=$this->cutX($head,$bot);
return $this->value_=str_replace($tmp,$str,$tmp_v);
}
//'按指定首尾字符串位置偏移指针对搜集的内容新值进行替换/方法
function filtBy($head,$headCusor,$bot,$botCusor,$str)
//'参数分别是首字符串,首偏移值,尾字符串,尾偏移值,新值,左偏移用负值,偏移指针单位为字符数,新值为空则为过滤
{
if(!$this->isGet_) $this->steal();
// 这里写代码
$tmp_v=$this->value_;
$ttt=substr($this->value_ ,strpos($this->value_ ,$head)+strlen($head)+$headCusor,strpos($this->value_ ,$bot)-1+$botCusor-strpos($this->value_ ,$head)-strlen($head)-$headCusor);
//echo $ttt;
return $this->value_=str_replace($ttt,$str,$tmp_v );
}
//'将搜集的内容中的绝对URL地址改为本地相对地址
function local()
{
// 本版中暂时不实现
}
//'对搜集到的内容中的符合正则表达式的字符串用新值进行替换/方法
function replaceByReg($patrn,$str) //'参数是你自定义的正则表达式,新值
{
if(!$this->isGet_) $this->steal();
return $this->value_=join("",preg_replace($patrn,$str,$this->value_));
}
function pickByReg($patrn)
{
//
}
function debug()
{
$tempstr="<SCRIPT>function runEx(){var winEx2 = window.open(/"/", /"winEx2/", /"width=500,height=300,status=yes,menubar=no,scrollbars=yes,resizable=yes/"
; winEx2.document.open(/"text/html/", /"replace/"
; winEx2.document.write(unescape(event.srcElement.parentElement.children[0].value)); winEx2.document.close(); }function saveFile(){var win=window.open('','','top=10000,left=10000');win.document.write(document.all.asdf.innerText);win.document.execCommand('SaveAs','','javascript.htm');win.close();}</SCRIPT><center><TEXTAREA id=asdf name=textfield rows=32 wrap=VIRTUAL cols=/"120/">".$this->value_."</TEXTAREA><BR><BR><INPUT name=Button onclick=runEx() type=button value=/"查看效果/">&nbsp;&nbsp;<INPUT name=Button onclick=asdf.select() type=button value=/"全选/">&nbsp;&nbsp;<INPUT name=Button onclick=/"asdf.value=''/" type=button value=/"清空/">&nbsp;&nbsp;<INPUT onclick=saveFile(); type=button value=/"保存代码/"></center>";
echo $tempstr;
}
}
?>