-
- $C = 新しいコレクション();
- $C->url = 'http://bbs.it-home.org/subject_search?cat=1001&search_text=%E5%B9%B4%E8%BD %BB%E4%BA%BA';
- $C->startFlag = '';
- $C->endFlag = '
';
- $C->init();
- $C->regExp = "|
(.*) |Uis";
- $C->parse();
- print_rr( $C->result);
- */
コードをコピー
phpテキストコレクションクラスファイル:
-
<%
- /**
- モジュール名: phpテキストコレクションクラス
- **/
- class Collection{
- //解析対象のURLアドレスを入力
- var $url; //コンテンツを読む
- var $regExp; //正規表現の一部を取得する
- var $codeFrom; //変換されるコード
- var $timeout; Time
var $startFlag; //記事収集を開始するフラグは、デフォルトでは 0 です。エントリを収集する場合、$startFlag と $endFlag の間のテキスト ブロックのみが検索および収集されます。
- var $endFlag; //記事コレクションの終了フラグ。デフォルトは記事の終了です。$startFlag と $endFlag の間のテキスト ブロックのみが検索され、収集されます。
- var $block; // $startFlag と $endFlag の間のテキスト ブロック
- // プライベートをエクスポート
- var $result; // 結果を出力します
// コレクターを初期化します
- function init( ){
- if(empty($url))
- $this->getFile();
- $this->convertEncoding();
- }
- //必要なコンテンツを収集します
- function parse(){
- $this- > getBlock();
- preg_match_all($this->regExp, $this->block ,$this->result,PREG_SET_ORDER);
- return $this->block;
- }
- //エラー処理
- 関数 error ($msg){
- echo $msg;
- }
- //リモート Web ページの読み取りが成功した場合はファイルを返し、失敗した場合は false を返します
- function getFile(){
- $datalines = @file($this- > ;url);
- if(!$datalines){
- $this->error("URL を読み取れません:".$this->url);
- return false;
- } else {
- $importdata = implode('', $datalines);
- $importdata = str_replace(array ("rn", "r"), "n", $importdata);
- $this->content = $importdata;
- }
- }
- //必要なテキストブロックを取得します
- function getBlock(){
- if(!empty($this->startFlag))
- $this->block = substr($this->content,strpos($this- >content,$this->startFlag));
- if(!empty($this->endFlag))
- $this->block = substr($this->block,0,strpos($this ->block,$this->endFlag));
- }
- //コンテンツエンコーディングの変換
- function ConvertEncoding(){
- if(!empty($this->codeTo))
- $this->codeFrom = mb_detect_encoding($this->content);
- //変換は、変換計画が指定されている場合にのみ実行されます。
- if(!empty($this->codeTo))
- $this->content = mb_convert_encoding($this->content,$this->codeTo,$this->codeFrom) または $this-> ;error("エンコーディングを変換できません");
- }
- }//クラスの終了
- ?>
-
-
-
- コードをコピー
|