Maison développement back-end tutoriel php 基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)_php技巧

基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)_php技巧

May 17, 2016 am 08:50 AM
正则 编码转换

1、使用curl实现站外采集

具体请参考我上一篇笔记:http://www.jb51.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\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]);
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment taper souligné sur un ordinateur Comment taper souligné sur un ordinateur Feb 19, 2024 pm 08:36 PM

Comment souligner sur l'ordinateur Lors de la saisie de texte sur l'ordinateur, nous devons souvent utiliser le soulignement pour mettre en évidence certains contenus ou les marquer. Cependant, pour certaines personnes qui ne sont pas très familiarisées avec les méthodes de saisie informatique, souligner peut être un peu déroutant. Cet article vous expliquera comment souligner sur votre ordinateur. Dans différents systèmes d'exploitation et logiciels informatiques, la manière de saisir le trait de soulignement peut être légèrement différente. Ce qui suit présente les méthodes courantes sur le système d'exploitation Windows et le système d'exploitation Mac respectivement. Tout d’abord, jetons un coup d’œil au fonctionnement sous Windows

Comment remplacer une chaîne commençant par quelque chose avec une expression régulière php Comment remplacer une chaîne commençant par quelque chose avec une expression régulière php Mar 24, 2023 pm 02:57 PM

Les expressions régulières PHP sont un outil puissant pour le traitement et la conversion de texte. Il peut gérer efficacement les informations textuelles en analysant le contenu du texte et en le remplaçant ou en l'interceptant selon des modèles spécifiques. Parmi elles, une application courante des expressions régulières consiste à remplacer des chaînes commençant par des caractères spécifiques. Nous expliquerons cela comme suit.

Comment faire correspondre plusieurs mots ou chaînes à l'aide de l'expression régulière Golang ? Comment faire correspondre plusieurs mots ou chaînes à l'aide de l'expression régulière Golang ? May 31, 2024 am 10:32 AM

Les expressions régulières Golang utilisent le caractère barre verticale | pour faire correspondre plusieurs mots ou chaînes, séparant chaque option comme une expression OU logique. Par exemple : correspond à "fox" ou "dog" : fox|dog correspond à "quick", "brown" ou "lazy" : (quick|brown|lazy) correspond à "Go", "Python" ou "Java" : Go| Python |Java fait correspondre des mots ou des codes postaux à 4 chiffres : ([a-zA

Comment utiliser des expressions régulières pour supprimer les caractères chinois en php Comment utiliser des expressions régulières pour supprimer les caractères chinois en php Mar 03, 2023 am 10:12 AM

Comment supprimer le chinois en utilisant les règles habituelles en PHP : 1. Créez un exemple de fichier PHP ; 2. Définissez une chaîne contenant le chinois et l'anglais ; 3. Utilisez "preg_replace('/([\x80-\xff]*)/i', '',$a);" La méthode standard peut supprimer les caractères chinois des résultats de la requête.

Comment utiliser la correspondance régulière pour supprimer les balises HTML en php Comment utiliser la correspondance régulière pour supprimer les balises HTML en php Mar 21, 2023 pm 05:17 PM

Dans cet article, nous apprendrons comment supprimer les balises HTML et extraire le contenu en texte brut des chaînes HTML à l'aide d'expressions régulières PHP. Pour montrer comment supprimer les balises HTML, définissons d'abord une chaîne contenant des balises HTML.

Explorez le mécanisme de mise en œuvre de la conversion de l'encodage Golang Explorez le mécanisme de mise en œuvre de la conversion de l'encodage Golang Feb 19, 2024 pm 03:21 PM

En tant que langage de programmation puissant, Golang possède des performances et des capacités de concurrence élevées, et fournit également une riche prise en charge de bibliothèques standard, y compris la prise en charge de la conversion d'encodage. Cet article explorera en profondeur les principes de mise en œuvre de la conversion de codage dans Golang et l'analysera avec des exemples de code spécifiques. Qu’est-ce que le transcodage ? La conversion d'encodage fait référence au processus de conversion d'une séquence de caractères d'un encodage à un autre. Dans le développement réel, nous devons souvent gérer des conversions entre différents encodages, comme la conversion de chaînes codées en UTF-8.

Un moyen simple d'apprendre la fonction de conversion de codage dedecms Un moyen simple d'apprendre la fonction de conversion de codage dedecms Mar 14, 2024 pm 02:09 PM

L'apprentissage de la fonction de conversion d'encodage dedecms n'est pas compliqué. Des exemples de code simples peuvent vous aider à maîtriser rapidement cette compétence. Dans les dedecms, la fonction de conversion de codage est généralement utilisée pour traiter des problèmes tels que les caractères chinois tronqués et les caractères spéciaux afin de garantir le fonctionnement normal du système et l'exactitude des données. Ce qui suit présentera en détail comment utiliser la fonction de conversion d'encodage de dedecms, vous permettant de faire face facilement à divers besoins liés à l'encodage. 1.UTF-8 en GBK En dedecms, si vous devez convertir une chaîne codée UTF-8 en G

Encodage Ascii et UTF-8 pour MySql : comment compresser et convertir l'encodage de caractères de MySQL Encodage Ascii et UTF-8 pour MySql : comment compresser et convertir l'encodage de caractères de MySQL Jun 16, 2023 pm 12:07 PM

Dans la base de données MySQL, le codage des caractères est un concept très important. Le codage des caractères fait référence à la manière dont les caractères sont mappés dans des données binaires. Il existe de nombreux types d'encodages de caractères pris en charge dans MySQL, les plus couramment utilisés sont l'encodage Ascii et l'encodage UTF-8. Ces deux codages de caractères jouent un rôle très important dans MySQL, car les données dans MySQL sont stockées sous forme de caractères et le choix du codage de caractères peut affecter les performances et l'espace de la base de données. Le codage Ascii est une méthode de codage basée sur les lettres latines.

See all articles