Maison développement back-end tutoriel php Comment utiliser PHP pour réaliser une analyse régulière des URL dans les pages

Comment utiliser PHP pour réaliser une analyse régulière des URL dans les pages

Jun 01, 2018 pm 03:48 PM
php 抓取 正则

Récupérez tous les liens de la page à partir de la page. Bien sûr, utiliser des expressions régulières PHP est le moyen le plus pratique. Pour écrire une expression régulière, vous devez d’abord résumer le modèle. Alors, combien de formes les liens sur la page auront-ils ? Jetons un coup d'œil ci-dessous.

Avant-propos

Un lien est un hyperlien, qui est un lien d'un élément (texte, image, vidéo, etc.) vers un autre élément (texte, image, vidéo, etc.) . Il existe généralement trois types de liens dans les pages Web. L'un est un lien hypertexte URL absolu, qui est le chemin complet vers une page ; l'autre est un lien hypertexte URL relatif, qui renvoie généralement à d'autres pages du même site Web ; un lien hypertexte dans une page, qui renvoie généralement à d'autres emplacements au sein de la même page.

Une fois que vous aurez compris les types de liens, vous saurez que pour récupérer des liens, les principaux sont les hyperliens URL absolus et les hyperliens URL relatifs. Pour écrire des expressions régulières correctes, nous devons comprendre le modèle de l’objet que nous recherchons.

Commençons par les liens absolus, également appelés URL (Uniform Resource Locators), qui identifient des ressources uniques sur Internet. La structure de l'URL contient trois parties : protocole, nom du serveur, chemin et nom du fichier .

Le protocole est un identifiant qui indique au navigateur comment gérer le fichier à ouvrir Le plus courant est le protocole http. Cet article ne considère que le protocole HTTP. Comme pour les autres protocoles https, ftp, mailto, telnet, etc., vous pouvez également les ajouter selon vos besoins.

Le nom du serveur indique au navigateur comment atteindre ce serveur, généralement un nom de domaine ou une adresse IP, et parfois un numéro de port (la valeur par défaut est 80). Dans le protocole FTP, des noms d'utilisateur et des mots de passe peuvent également être inclus, ce qui ne sera pas pris en compte dans cet article.

Le chemin et le nom du fichier, généralement séparés par /, indiquent le chemin d'accès au fichier et le nom du fichier lui-même. S'il n'y a pas de nom de fichier spécifique, le fichier par défaut dans ce dossier est accédé (peut être défini côté serveur).

Alors maintenant, il est clair que la forme typique des liens absolus à explorer peut être résumée comme suit :

<span style="color: #000000">http://www.xxx.com/xxx/yyy/zzz.html</span>

Il existe une spécification claire pour la gamme de caractères qui peut être utilisé pour chaque pièce, veuillez vous référer à la RFC1738 pour plus de détails. Ensuite, l'expression régulière peut être écrite.

/(http|https):\/\/([\w\d\-_]+[\.\w\d\-_]+)[:\d+]?([\/]?[\w\/\.]+)/i
Copier après la connexion

s'explique comme suit :

(http| https) La première parenthèse correspond à la partie protocolaire.

([wd-_]+[.wd-_]+)La deuxième parenthèse correspond à la partie du nom de domaine.

([/]?[w/.]+)La troisième parenthèse correspond au chemin relatif.

Au moment de la rédaction, la plupart des URL peuvent être mises en correspondance, mais les URL avec des paramètres ne peuvent pas être explorées, ce qui peut amener la page à signaler une erreur lors d'un nouvel accès. Quels paramètres sont requis dans la spécification RFC1738 ? pour segmenter, suivi de paramètres, mais les applications RIA modernes peuvent utiliser d'autres formes étranges pour la segmentation.

Modifiez-le légèrement pour que les paramètres de requête puissent être recherchés. Cela ne couvre toujours pas toutes les situations, comme les situations où l'URL contient des caractères chinois, des espaces et d'autres caractères spéciaux, mais cela répond essentiellement à mes besoins, je n'irai donc pas plus loin.

/(http|ftp|https):\/\/([\w\d\-_]+[\.\w\d\-_]+)[:\d+]?([\/]?[\w\/\.\?=&;%@#\+,]+)/i
Copier après la connexion

L'avantage d'utiliser des parenthèses est que lors du traitement des résultats, vous pouvez facilement obtenir le protocole, le nom de domaine et le chemin relatif, ce qui facilite les opérations ultérieures. traitement.

Par exemple, lorsque vous utilisez preg_match_all() pour faire correspondre, l'index 0 du tableau de résultats correspond à tous les résultats, 1 est le protocole, 2 est le nom de domaine et 3 est le chemin relatif .

Résumé : Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.

Recommandations associées :

Comment implémenter une requête de correspondance floue multi-champs en PHP

phpmailer Comment implémenter une boîte aux lettres de liaison

Comment implémenter une fonction personnalisée en PHP pour obtenir la première lettre des caractères chinois

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

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.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

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.

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

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.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

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

See all articles