Maison développement back-end tutoriel php Explication détaillée de la régularité PHP et de la collecte de données

Explication détaillée de la régularité PHP et de la collecte de données

Mar 21, 2018 pm 04:23 PM
php 数据采集 详解

  • Les expressions régulières PHP sont principalement utilisées pour les opérations de segmentation de modèles, de correspondance, de recherche et de remplacement de chaînes. L'utilisation d'expressions régulières peut ne pas être efficace dans certains environnements simples,
    donc la manière de mieux utiliser les expressions régulières PHP doit être considérée de manière globale.
    Définition de l'expression régulière PHP :
    Une règle grammaticale utilisée pour décrire la disposition des caractères et les modèles de correspondance.
    Fonctions régulières en PHP :
    Il existe deux ensembles de fonctions régulières en PHP, qui ont toutes deux des fonctions similaires, à savoir :
    Un ensemble est fourni par la bibliothèque PCRE (Perl Compatible Regular Expression). Fonctions nommées avec le préfixe "preg_" ;
    Un ensemble de fonctions fournies par les extensions POSIX (Portable Operating System Interface of Unix). Utilisez les fonctions nommées avec le préfixe "ereg_" ;
    (l'utilisation de la bibliothèque de fonctions régulières POSIX n'est plus recommandée depuis PHP 5.3 et sera supprimée de PHP 6)
    Puisque la bibliothèque de fonctions régulières POSIX est sur le point d'être publiée, history Stage, et les formes PCRE et perl sont similaires, ce qui est plus pratique pour nous de basculer entre perl et php, nous nous concentrons donc ici sur l'utilisation de la régularité PCRE.
    PCRE Regular Expression
    PCRE signifie Perl Compatible Regular Expression, ce qui signifie expression régulière compatible Perl.
    Dans PCRE, l'expression de modèle (c'est-à-dire l'expression régulière) est généralement entourée de deux barres obliques inverses "/", telles que "/apple/".
    Les concepts importants dans les expressions régulières sont : les métacaractères, les échappements, les unités de modèle (répétitions), les antonymes, les références et les assertions. Ces concepts peuvent être facilement compris et maîtrisés en JavaScript.
    preg_filter — Recherche et remplacement d'expressions régulières
    preg_filter("regular", "replacement", "target");
    preg_grep ( string $pattern , array $input [, int $flags = 0 ] )
    preg_match — effectue une correspondance d'expression régulière
    preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
    preg_match_all — correspondance globale d'expression régulière
    preg_replace — effectue une recherche d'expression régulière et remplace
    preg_split — sépare les chaînes par une expression régulière
    Méta-caractères couramment utilisés :
    Description du métacaractère
    A Correspond à l'atome au niveau début de la chaîne
    Z Correspond à l'atome à la fin de la chaîne
    b Correspond à la limite du mot /bis/ Correspond à la chaîne dont la tête est est /isb/ Correspond à la queue est est Chaîne de /bisb/ Délimité
    B Correspond à n'importe quel caractère sauf les limites des mots /Bis/ Correspond à "is" dans le mot "This"
    d Correspond à un nombre ; équivalent à [0-9]
    D Correspond à n'importe quel caractère sauf les nombres équivalents ; à [^0-9]
    w Correspond à une lettre, un chiffre ou un trait de soulignement anglais équivalent à [0-9a-zA-Z_]
    W Correspond à n'importe quel caractère à l'exception des lettres, chiffres et traits de soulignement anglais équivalents à [^ ; 0-9a-zA-Z_]
    s Correspond à un caractère vide ; équivalent à [ftv]
    S Correspond à l'exception des caractères vides Tout caractère équivalent à [^ftv]
    f Correspond à un caractère de saut de page équivalent à x0c ou cL
    Correspond à un caractère de nouvelle ligne ; équivalent à x0a ou cJ
    Correspond à un caractère de retour chariot équivalent Correspond à un caractère de tabulation dans x0d ou cM
    t équivalent à x09 ou cl
    v Correspond à une verticale ; caractère de tabulation ; équivalent à x0b ou ck
    oNN Correspond à un nombre octal
    xNN Correspond à un nombre hexadécimal
    cC correspond à un caractère de contrôle
    Modificateurs de motif : Le modificateur de motif
    est particulièrement utilisé pour ignorer la casse. et faire correspondre plusieurs lignes. Maîtriser ce modificateur peut souvent résoudre de nombreux problèmes que nous rencontrons.
    i - Peut faire correspondre les lettres majuscules et minuscules
    M - Traitez la chaîne comme plusieurs lignes
    S - Traitez la chaîne comme une seule ligne et traitez les nouvelles lignes comme des caractères ordinaires, en faisant correspondre "."
    X - Les espaces vides dans le motif sont ignorés
    U - Correspond à la chaîne la plus proche
    e - Utilisez la chaîne remplacée comme expression
    format : /apple/i correspond à "apple" ou "Apple" etc., en ignorant la casse. /i
    Correspond au caractère
    Description
    Marque le caractère suivant comme caractère spécial, texte, référence arrière ou caractère d'échappement octal. Par exemple, « n » correspond au caractère « n ». "n" correspond à un caractère de nouvelle ligne. La séquence "\" correspond à "", "(" correspond à "(".
    ^ Correspond au début de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, ^ correspondra également à "n" ou "r " Correspondances de localisation.
    $ Correspond à la fin de la chaîne d'entrée. Si la propriété Multiline de l'objet RegExp est définie, $ correspond également à la position avant "n" ou "r".
    * Correspond au caractère ou à la sous-expression précédent zéro ou plusieurs fois. Par exemple, zo* correspond à « z » et « zoo ». * Équivalent à {0,}.
    + Correspond au caractère ou à la sous-expression précédent une ou plusieurs fois. Par exemple, « zo+ » correspond à « zo » et « zoo » mais pas à « z ». + Équivalent à {1,}.
     ? Correspond au caractère ou à la sous-expression précédent zéro ou une fois. Par exemple, « faire(s) ? » correspond à « faire » ou « faire » dans « fait ». ? Équivalent à {0,1}.
    {n} n est un entier non négatif. Correspond exactement n fois. Par exemple, "o{2}" ne correspond pas au "o" dans "Bob", mais correspond aux deux "o" dans "food".
    {n,} n est un entier non négatif. Faites correspondre au moins n fois. Par exemple, "o{2,}" ne correspond pas au "o" de "Bob" mais correspond à tous les o de "foooood". "o{1,}" équivaut à "o+". "o{0,}" équivaut à "o*".
    {n,m} M et n sont des entiers non négatifs, où n <= m. Faites correspondre au moins n fois et au plus m fois. Par exemple, "o{1,3}" correspond aux trois premiers o de "fooooood". « o{0,1} » est équivalent à « o ? ». Remarque : Vous ne pouvez pas insérer d'espaces entre les virgules et les chiffres.
     ? Lorsque ce caractère suit immédiatement un autre qualificatif (*, +, ?, {n}, {n,}, {n,m}), le modèle correspondant est "non gourmand". Le modèle « non gourmand » correspond à la chaîne la plus courte possible recherchée, tandis que le modèle « gourmand » par défaut correspond à la chaîne la plus longue possible recherchée. Par exemple, dans la chaîne "oooo", "o+?" ne correspond qu'à un seul "o", tandis que "o+" correspond à tous les "o".
    . Correspond à n'importe quel caractère sauf "n". Pour faire correspondre n'importe quel caractère incluant "n", utilisez un modèle tel que "[sS]".
    [] Correspond à n'importe qui dans []
    [^] Correspond à n'importe qui qui n'est pas dans []
    1 Qu'est-ce que la collecte de données
    Il y a quelques années, à l'exception de quelques grands portails, en gros, ils. sont des sites Web personnels. Les informations sont dispersées et il n'y a pas beaucoup de contenu.
    Dans quelques années, il y aura de plus en plus de sites Web commerciaux, et l'information doit être concentrée en grande quantité. Même s'il y a suffisamment de ressources financières pour embaucher un grand nombre de rédacteurs,
    ce n'est peut-être pas le cas. capable de répondre aux ressources d'information en constante évolution.
    La collecte d'informations est devenue une technologie privilégiée par tous les opérateurs de sites Web.
    2. L'idée de la collecte de données :
    L'idée du programme de collecte est très simple et peut être grossièrement divisée en les étapes suivantes :
    1. Obtenir le code source du fichier distant (file_get_contents ou utilisez fopen ou utilisez fsocket pour implémenter le protocole http get, ou l'extension curl de PHP ou d'autres classes open source tierces de PHP)
    Remarque : il est préférable de ne pas utiliser file_get_contents et fopen, vous rencontrerez des problèmes que vous pouvez' N'imaginez pas. Utilisez fsocket pour implémenter le protocole http. Désormais, la plupart des sites Web utilisent la technologie anti-collecte et utilisent la technologie d'extraction d'informations lors de la collecte de contenu.
    2. Analysez le code pour obtenir ce que vous voulez (utilisez la correspondance régulière ici).
    3. Téléchargez et stockez le contenu en fonction du contenu obtenu.
    4. Affichez les données en fonction de la mise en page de votre page Web
    3. Partagez votre expérience personnelle de collecte :
    1. Ne collectez pas de sites protégés contre les hotlinks. En fait, vous pouvez falsifier l'origine, mais tel. les sites collectent Le coût est trop élevé
    2. Pour les stations qui collectent les données le plus rapidement possible, il est préférable de les collecter localement
    3. Lors de la collecte, il arrive souvent que vous puissiez stocker une partie des données dans le base de données d'abord, puis passez à l'étape suivante du traitement.
    4. Vous devez gérer les erreurs lors de la collecte. Je l'ignore généralement si la collecte échoue trois fois.
    Dans le passé, j'étais souvent coincé à choisir un élément de contenu simplement parce que je ne pouvais pas le récupérer.
    5. Vous devez faire preuve de discernement avant d'entrer dans la base de données, vérifier la légalité du contenu et filtrer les chaînes inutiles.
    Quatrième : Partagez une adresse de lien : Test en ligne d'expressions régulières
    http://tool.chinaz.com/regex
    Cinq : Partagez quelques expressions régulières PHP couramment utilisées
    Expressions régulières qui correspondent aux caractères chinois : [u4e00-u9fa5]
    Correspond aux caractères à deux octets (y compris les caractères chinois) : [^x00-xff]
    Correspond à l'expression régulière des balises HTML : /<(.*)>.*< ;/ >|<(.*) />/
    Expression régulière correspondant à l'adresse IP /(d+).(d+).(d+).(d+)/g
    Adresse e-mail correspondante Expression régulière : w+( [-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
    URL correspondant à l'expression régulière : http://( [w-]+.)+[ w-]+(/[w- ./?%&=]*) ?
    Lien de l'image dans les informations correspondantes : /(s|S)(r|R)( c|C)*=*('| ")?(w||/|.)+('|"| *|>)?/
    Utilisez des expressions régulières pour extraire les noms de fichiers des adresses URL : / (.*/)([^.]+ ).*/ig
    Vérification du numéro de téléphone en Chine/((d{3,4})|d{3,4}-)?d{7,8}( -d{3})*/
    Vérification du code postal de Chine/d{6}/
    Vérification de l'e-mail/w+([-+.]w+)*@w+([-.]w+)*.w+ ([-.]w+)*/
    Vérification de la carte d'identité/d{18}|d{15}/
    Vérification des nombres couramment utilisée /d{n}/ n est la longueur spécifiée /d{n,m}/ La plage de longueurs de n à m
    Vérification des caractères illégaux
    Faire correspondre les caractères illégaux tels que : < / ' |
    Expression régulière [^<>&/|']+
    Vérification de la date
    La forme correspondante est : 20030718,030718
    Plage : 1900--2099
    Expression régulière ((( (19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}

Recommandations associées :

Exemple de méthode régulière PHP pour déterminer si une chaîne contient des caractères chinois

PHP Résumé des expressions régulières

Méthode de traitement des expressions régulières php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles