ホームページ  >  記事  >  バックエンド開発  >  preg_match_all に基づく収集後のデータ処理に関する注意事項 (エンコード変換と通常のマッチング)_PHP チュートリアル

preg_match_all に基づく収集後のデータ処理に関する注意事項 (エンコード変換と通常のマッチング)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:39:53802ブラウズ

1. オフサイトコレクションを実現するにはcurlを使用します

詳細については、私の最後のメモを参照してください: http://www.jb51.net/article/46432.htm

2. エンコーディングの変換
まず、ソース コードを表示して、収集された Web サイトで使用されているエンコーディングを見つけ、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. 改行やスペースなどの不確実な要素の障害をより適切に回避するには、まず収集されたソースコード内の改行、スペース、タブ文字を削除する必要があります

コードをコピーします コードは次のとおりです:
//方法 1、str_replace を使用して置き換えます
$contents = str_replace("rn", '', $contents) //改行をクリアします
$ content = str_replace ("n", '', $contents); //改行文字をクリア
$contents = str_replace("t", '', $contents); //タブ文字をクリア
$contents = str_replace(" " , ' ', $contents); //空白文字をクリアします

//方法 2、正規表現を使用して置き換えます
$contents = preg_replace("/([rn|n|t| ]+)/",'', $コンテンツ);

4. 正規表現マッチングを通じて取得する必要があるコードセグメントを見つけ、preg_match_all を使用してマッチングを実現します

コードをコピーします コードは次のとおりです:
関数の説明:
int preg_match_all ( string pattern, string subject, arraymatches [, int flags] )
patternは正規表現です
subjectはオリジナルです検索されるテキスト
matches は出力結果を保存するために使用される配列
flags は以下を含む保存されたパターン
PREG_PATTERN_ORDER; //配列全体は 2 次元配列であり、$arr1[0] は一致する文字列を含む配列です。境界で構成される $arr1[1 ] 境界を除く一致する文字列の配列
PREG_SET_ORDER //配列全体は 2 次元配列であり、$arr2[0][0] は境界を含む最初の一致する文字列です $arr2 [0] [1] は、境界を削除して形成された最初の一致文字列であり、以降の配列でも同様です
PREG_OFFSET_CAPTURE //配列全体は 3 次元配列 $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]);

http://www.bkjia.com/PHPjc/728086.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/728086.html技術記事 1.curl を使用してオフサイト コレクションを実装する方法の詳細については、以前のメモを参照してください: http://www.jb51.net/article/46432.htm 2. エンコード変換については、まず、収集されたコレクションで使用されているコードを見つけます。ソースコードを表示してウェブサイトを参照してください。.
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。