php 一個資料擷取類執行個體代碼

來源:互聯網
上載者:User

資料擷取,又稱資料擷取,是利用一種裝置,從系統外部採集資料並輸入到系統內部的一個介面。資料擷取技術廣泛應用在各個領域。比如網路攝影機,麥克風,都是資料擷取工具。

被採集資料是已被轉換為電訊號的各種物理量,如溫度、水位、風速、壓力等,可以是類比量,也可以是數字量。採集一般是採樣方式,即隔一定時間(稱採樣周期)對同一點資料重複採集。採集的資料大多是瞬時值,也可是某段時間內的一個特徵值。準確的資料測量是資料擷取的基礎。資料量測方法有接觸式和非接觸式,檢測元件多種多樣。不論哪種方法和元件,均以不影響被測對象狀態和測量環境為前提,以保證資料的正確性。資料擷取含義很廣,包括對面狀連續物理量的採集。在電腦輔助製圖、測圖、設計中,對圖形或映像數字化過程也可稱為資料擷取,此時被採集的是幾何量(或包括物理量,如灰階)資料。

在互連網行業快速發展的今天,資料擷取已經被廣泛應用於互連網及分布式領域,資料擷取領域已經發生了重要的變化。首先,分布式控制應用場合中的智能資料擷取系統在國內外已經取得了長足的發展。其次,匯流排相容型資料擷取外掛程式的數量不斷增大,與個人電腦相容的資料擷取系統的數量也在增加。國內外各種資料擷取機先後問世,將資料擷取帶入了一個全新的時代。

以下是一個資料擷取類

<? // 相容 php4 php5 // 簡單調用方法 /* <? include ("ugs.php"); // 你可以下載本ugs.phps 然後重新命名為ugs.php $ugs = new ugs(); $url = "http://domainname.com/path_to_your_target?param"; $ugs->seturl($url); $ugs->gather(); //............這裡可以調用本類裡的其它方法,對$ugs->value_  做調整, 以滿足您的要求 $content=$ugs->getcontent(); print($content); ?> */ class ugs {     var $value_  ;  //'目標內容     var $src_    ;  //'目標URL地址     function seturl($url)     {         $this->src_=$url;     }     function getcontent()     {         return $this->value_;     }     function getfile($url)      // 擷取目標     {         $url_parsed = parse_url($url);         $host = $url_parsed["host"];         $port = $url_parsed["port"];         if ($port==0)  $port = 80;         $path = $url_parsed["path"];         if (empty($path))         $path="/";         if ($url_parsed["query"] != "")            $path .= "?".$url_parsed["query"];         $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";         $fp = fsockopen($host, $port, $errno, $errstr, 30);         fwrite($fp, $out);         $body = false;         while (!feof($fp))         {           $s = fgets($fp, 1024);           if ( $body )  $in .= $s;           if ( $s == "\r\n" )                $body = true;         }         fclose($fp);         return $in;    }    function getfile_curl($url)    {     $curl="/usr/local/bin/curl " ; // path to your curl      $curl_options=" -s --connect-timeout 10  --max-time 10  ";      // curl 用法請參考 curl --help 或者 man curl      // curl 參數非常之豐富,可以類比各種瀏覽器(agent) 可以設定referer     $cmd="$curl $curl_options $url ";     @exec($cmd,$o,$r);     if($r!=0)      {         return "逾時";     }     else     {         $o=join("",$o);         return $o;     }    }     function gather_curl($curl)     {         $http=$this->getfile_curl($this->src_);         return $this->value_=$http;     }     function gather_array($url)      {         return file($url);     }     function   gather()      // 開始收集     {         $http=$this->getfile($this->src_);         return $this->value_=$http;     }     function gather_local($toline=true)      // 處理本地檔案     {         if($toline)         {             $http=file($this->src_);             return $this->value_=$this->BytesToBstr($http);         }         else         {             $http=file($this->src_);             return $this->value_=$http;         }     }     function noReturn()      // 刪除斷行符號換行     {         $this->value_=str_replace("\n","",$this->value_);         $this->value_=str_replace("\r","",$this->value_);     }     function change($oldStr,$str)     //'對收集到的內容中的個別字串用新值更換/方法     //'參數分別是舊字串,新字串     {         $this->value_=str_replace($oldStr,$str,$this->value_ );     }     function cut($start,$end,$no='1',$comprise='')     //'按指定首尾字串對收集的內容進行裁減(不包括首尾字串)方法     // $no 必須是 1,2 3 ... 不允許是0     //$comprise 可以選擇 start 或者 end 或者 all 或者 什麼都不填     {         $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  filt($head,$bot,$str,$no='1',$comprise='')     //'按指定首尾字串對收集的內容用新值進行替換(不包括首尾字串)方法     // '參數分別是首字串,尾字串,新值,新值位空則為過濾     {         $tmp_v=$this->value_;         $tmp=$this->cut($head,$bot,$no,$comprise);         return $this->value_=str_replace($tmp,$str,$tmp_v);     }     function  local()     {         //'將收集的內容中的絕對URL地址改為本地相對位址         // 還沒實現     }     function  replaceByReg($patrn,$str)      //'對收集的內容中的符合Regex的字串用新值進行替換/方法      //'參數是你自訂的Regex,新值     {         return $this->value_=join("",preg_replace($patrn,$str,$this->value_));     }     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=\"查看效果\">  <INPUT name=Button onclick=asdf.select() type=button value=\"全選\">  <INPUT name=Button onclick=\"asdf.value=''\" type=button value=\"清空\">  <INPUT onclick=saveFile(); type=button value=\"儲存代碼\"></center>";         echo $tempstr;     } } ?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.