ホームページ  >  記事  >  バックエンド開発  >  PHPテキストコレクションクラス

PHPテキストコレクションクラス

WBOY
WBOYオリジナル
2016-07-25 09:07:16840ブラウズ
  1. $C = 新しいコレクション();
  2. $C->url = 'http://bbs.it-home.org/subject_search?cat=1001&search_text=%E5%B9%B4%E8%BD %BB%E4%BA%BA';
  3. $C->startFlag = '

    ';
  4. $C->endFlag = '
    ';
  5. $C->init();
  6. $C->regExp = "|

    (.*)

    |Uis";
  7. $C->parse();
  8. print_rr( $C->result);
  9. */
コードをコピー

phpテキストコレクションクラスファイル:

  1. <%

  2. /**
  3. モジュール名: phpテキストコレクションクラス
  4. **/
  5. class Collection{
  6. //解析対象のURLアドレスを入力
  7. var $url; //コンテンツを読む
  8. var $regExp; //正規表現の一部を取得する
  9. var $codeFrom; //変換されるコード
  10. var $timeout; Time

  11. var $startFlag; //記事収集を開始するフラグは、デフォルトでは 0 です。エントリを収集する場合、$startFlag と $endFlag の間のテキスト ブロックのみが検索および収集されます。

  12. var $endFlag; //記事コレクションの終了フラグ。デフォルトは記事の終了です。$startFlag と $endFlag の間のテキスト ブロックのみが検索され、収集されます。
  13. var $block; // $startFlag と $endFlag の間のテキスト ブロック
  14. // プライベートをエクスポート
  15. var $result; // 結果を出力します

  16. // コレクターを初期化します

  17. function init( ){
  18. if(empty($url))
  19. $this->getFile();
  20. $this->convertEncoding();
  21. }
  22. //必要なコンテンツを収集します
  23. function parse(){
  24. $this- > getBlock();
  25. preg_match_all($this->regExp, $this->block ,$this->result,PREG_SET_ORDER);
  26. return $this->block;
  27. }
  28. //エラー処理
  29. 関数 error ($msg){
  30. echo $msg;
  31. }
  32. //リモート Web ページの読み取りが成功した場合はファイルを返し、失敗した場合は false を返します
  33. function getFile(){
  34. $datalines = @file($this- > ;url);
  35. if(!$datalines){
  36. $this->error("URL を読み取れません:".$this->url);
  37. return false;
  38. } else {
  39. $importdata = implode('', $datalines);
  40. $importdata = str_replace(array ("rn", "r"), "n", $importdata);
  41. $this->content = $importdata;
  42. }
  43. }
  44. //必要なテキストブロックを取得します
  45. function getBlock(){
  46. if(!empty($this->startFlag))
  47. $this->block = substr($this->content,strpos($this- >content,$this->startFlag));
  48. if(!empty($this->endFlag))
  49. $this->block = substr($this->block,0,strpos($this ->block,$this->endFlag));
  50. }
  51. //コンテンツエンコーディングの変換
  52. function ConvertEncoding(){
  53. if(!empty($this->codeTo))
  54. $this->codeFrom = mb_detect_encoding($this->content);
  55. //変換は、変換計画が指定されている場合にのみ実行されます。
  56. if(!empty($this->codeTo))
  57. $this->content = mb_convert_encoding($this->content,$this->codeTo,$this->codeFrom) または $this-> ;error("エンコーディングを変換できません");
  58. }
  59. }//クラスの終了
  60. ?>

  61. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。