preg_ベースmatch_all採集後のデータ処理の心得メモ(符号化変換と正則マッチング)

2264 ワード

1、curlを使用して局外採集を実現する
具体的には私の前のメモを参考にしてください://www.jb 51.net/article/46432.htm
2、コード変換まずソースコードを見て採集したウェブサイトで使用したコードを見つけ、mb_を通じてconvert_encoding関数はトランスコードされます.
使用方法:
 
  
// $str

// GBK, utf-8
mb_convert_encoding($str, "UTF-8", "GBK");

// , auto , utf-8
mb_convert_encoding($str, "UTF-8", "auto");

3、改行やスペースなどの不定要素の障害をよりよく避けるためには、採取したソースコードの改行、スペース、タブをクリアする必要がある
 
  
// , str_replace
$contents = str_replace("\r
", '', $contents); //
$contents = str_replace("
", '', $contents); //
$contents = str_replace("\t", '', $contents); //
$contents = str_replace(" ", '', $contents); //

// ,
$contents = preg_replace("/([\r
|
|\t| ]+)/",'',$contents);

4、正規表現マッチングによって必要なコードセグメントを探し出し、preg_を使用するmatch_allこのマッチングを実現
 
  

int preg_match_all ( string pattern, string subject, array matches [, int flags] )
pattern
subject
matches
flags , :
    PREG_PATTERN_ORDER;  // ,$arr1[0] ,$arr1[1]
    PREG_SET_ORDER;  // ,$arr2[0][0] ,$arr2[0][1] ,
    PREG_OFFSET_CAPTURE;  // ,$arr3[0][0][0] ,$arr3[0][0][1] ( ), ,$arr2[1][0][0] ,$arr3[1][0][1] ( );

//
preg_match_all('/(.*?)/',$contents, $out, PREG_SET_ORDER);
$out
$out[0][0]
$out[0][1] (.*?)

// , n
$out[n-1][1]

// , m
$out[n-1][m]

5、文字を取得した後、htmlタグを外すには、PHPが持つ関数strip_を使うtagsは便利に実現できる
 
  
//
$result=strip_tags($out[0][1]);