ホームページ バックエンド開発 PHPチュートリアル 基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正_PHP

基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正_PHP

Jun 01, 2016 am 11:56 AM
通常 トランスコーディング

1、使用curl实现站外采集

具体请参考我上一篇笔记:http://www.bitsCN.com/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\n", '', $contents); //清除换行符
$contents = str_replace("\n", '', $contents); //清除换行符
$contents = str_replace("\t", '', $contents); //清除制表符
$contents = str_replace(" ", '', $contents); //清除空格符

//方法二,使用正则表达式进行替换
$contents = preg_replace("/([\r\n|\n|\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]);

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

パソコンで下線を入力する方法 パソコンで下線を入力する方法 Feb 19, 2024 pm 08:36 PM

コンピューターで下線を引く方法 コンピューターでテキストを入力するとき、特定の内容を強調表示したりマークしたりするために下線を使用する必要があることがよくあります。ただし、コンピューターの入力方法にあまり慣れていない人にとって、下線の入力は少し混乱する可能性があります。この記事では、パソコンで下線を引く方法を紹介します。コンピュータのオペレーティング システムやソフトウェアが異なると、アンダースコアの入力方法が若干異なる場合があります。以下に、Windows オペレーティング システムと Mac オペレーティング システムのそれぞれで一般的な方法を紹介します。まずはWindowsでの操作を見てみましょう

PHP正規表現で何かで始まる文字列を置換する方法 PHP正規表現で何かで始まる文字列を置換する方法 Mar 24, 2023 pm 02:57 PM

PHP 正規表現は、テキストの処理と変換のための強力なツールです。テキスト コンテンツを解析し、特定のパターンに従って置換またはインターセプトすることで、テキスト情報を効果的に管理できます。その中でも、正規表現の一般的な応用例は、特定の文字で始まる文字列を置換することです。

Golang 正規表現を使用して複数の単語または文字列を照合するにはどうすればよいですか? Golang 正規表現を使用して複数の単語または文字列を照合するにはどうすればよいですか? May 31, 2024 am 10:32 AM

Golang の正規表現では、パイプ文字 | を使用して複数の単語または文字列を一致させ、各オプションを論理 OR 式として区切ります。例: 「fox」または「dog」に一致します: fox|dog は「quick」、「brown」または「lazy」に一致します: (quick|brown|lazy) 「Go」、「Python」または「Java」に一致します: Go| Python |Java は単語または 4 桁の郵便番号と一致します: ([a-zA

正規表現を使用してPHPで漢字を削除する方法 正規表現を使用してPHPで漢字を削除する方法 Mar 03, 2023 am 10:12 AM

正規表現を使用して PHP で中国語を削除する方法: 1. PHP サンプル ファイルを作成する; 2. 中国語と英語を含む文字列を定義する; 3. "preg_replace('/([\x80-\xff]*)/i', '',$a);" 通常の方法では、クエリ結果から中国語の文字を削除できます。

通常のマッチングを使用してphpでhtmlタグを削除する方法 通常のマッチングを使用してphpでhtmlタグを削除する方法 Mar 21, 2023 pm 05:17 PM

この記事では、PHP 正規表現を使用して HTML タグを削除し、HTML 文字列からプレーン テキスト コンテンツを抽出する方法を学びます。 HTML タグを削除する方法を示すために、まず HTML タグを含む文字列を定義しましょう。

golang エンコード変換の実装メカニズムを調べる golang エンコード変換の実装メカニズムを調べる Feb 19, 2024 pm 03:21 PM

Golang は強力なプログラミング言語として、高いパフォーマンスと同時実行機能を備え、エンコーディング変換のサポートなど、豊富な標準ライブラリのサポートも提供します。この記事では、Golang でのエンコード変換の実装原則を深く調査し、具体的なコード例を使用して分析します。トランスコーディングとは何ですか?エンコーディング変換とは、一連の文字をあるエンコーディングから別のエンコーディングに変換するプロセスを指します。実際の開発では、UTF-8 でエンコードされた文字列の変換など、異なるエンコード間の変換を処理する必要があることがよくあります。

dedecmsエンコード変換関数を学ぶ簡単な方法 dedecmsエンコード変換関数を学ぶ簡単な方法 Mar 14, 2024 pm 02:09 PM

dedecms エンコード変換関数の学習は複雑ではなく、簡単なコード例を使用すると、このスキルをすぐに習得できます。 dedecms では、通常、システムの正常な動作とデータの正確性を確保するために、中国語の文字化けや特殊文字などの問題に対処するためにエンコード変換機能が使用されます。ここでは、エンコードに関するさまざまなニーズに簡単に対応できる dedecms のエンコード変換機能の使い方を詳しく紹介します。 1.UTF-8 から GBK UTF-8 でエンコードされた文字列を G に変換する必要がある場合、dedecms で

C++ 開発におけるエンコード変換の問題に対処する方法 C++ 開発におけるエンコード変換の問題に対処する方法 Aug 22, 2023 am 11:07 AM

C++ 開発におけるエンコード変換の問題に対処する方法: C++ 開発プロセスでは、異なるエンコード間の変換が必要な問題が頻繁に発生します。異なるエンコード形式には違いがあるため、エンコード変換を実行するときはいくつかの詳細に注意する必要があります。この記事では、C++ 開発におけるエンコード変換の問題の対処方法を紹介します。 1. さまざまなエンコード形式を理解する: エンコード変換の問題に対処する前に、まずさまざまなエンコード形式を理解する必要があります。一般的なエンコード形式には、ASCII、UTF-8、GBK などが含まれます。 ASCII は最も古いエンコード形式です

See all articles