2 façons d'analyser les URL en php
Cet article vous présente principalement deux méthodes d'analyse des URL en PHP (parse_url et parse_str), ainsi que l'introduction et l'utilisation de ces deux méthodes. Il est très complet et recommandé aux amis dans le besoin.
Il existe deux méthodes en PHP qui peuvent être utilisées pour analyser les URL, à savoir parse_url et parse_str.
parse_urlAnalyser l'URL et renvoyer ses composants
mixed parse_url ( string $url [, int $component = -1 ] )
Cette fonction Analyse une URL et renvoie un tableau associatif contenant les différents composants qui apparaissent dans l'URL.
Cette fonction n'est pas utilisée pour vérifier la validité de l'URL donnée, mais pour la décomposer en les parties répertoriées ci-dessous. Les URL incomplètes sont également acceptées et parse_url() tentera de les analyser aussi correctement que possible.
Paramètres
url L'URL à analyser. Les caractères invalides seront remplacés par _.
composant Spécifiez l'un des PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY ou PHP_URL_FRAGMENT pour obtenir la chaîne de la partie spécifiée de l'URL. (Sauf lorsque spécifié comme PHP_URL_PORT, une valeur entière sera renvoyée).
Valeur de retour
Pour les URL gravement non qualifiées, parse_url() peut renvoyer FALSE.
Si le paramètre composant est omis, un tableau associatif sera renvoyé, avec au moins un élément actuellement dans le tableau. Les clés possibles dans le tableau sont :
schéma - comme http
hôte
port
utilisateur
pass
chemin
requête - après le point d'interrogation ?
fragment - après le symbole de hachage #
Si le paramètre du composant est spécifié, parse_url() renvoie une chaîne (ou un entier lorsqu'il est spécifié comme PHP_URL_PORT) au lieu d'un tableau. Si le composant spécifié dans l'URL n'existe pas, NULL sera renvoyé.
Exemple
Le code est le suivant :
<?php $url = 'http://username:password@hostname/path?arg=value#anchor'; print_r(parse_url($url)); echo parse_url($url, PHP_URL_PATH); ?>
La routine ci-dessus affichera :
Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) /path
parse_str
Analyser la chaîne en plusieurs variables
void parse_str ( string $str [, array &$arr ] )
Si str est la chaîne de requête transmise par l'URL) , il est analysé dans une variable et défini sur la portée actuelle.
Pour obtenir le QUERY_STRING actuel, vous pouvez utiliser la variable $_SERVER['QUERY_STRING'].
Paramètre
str La chaîne d'entrée.
arr Si la deuxième variable arr est définie, la variable sera stockée dans ce tableau en tant qu'élément de tableau. ,
Exemple
Le code est le suivant :
<?php $str = "first=value&arr[]=foo+bar&arr[]=baz"; parse_str($str); echo $first; // value echo $arr[0]; // foo bar echo $arr[1]; // baz parse_str($str, $output); echo $output['first']; // value echo $output['arr'][0]; // foo bar echo $output['arr'][1]; // baz ?>
Je lisais le code source de php-resque il y a quelque temps et j'ai vu l'application de ces deux méthodes . Je me sens très utile pour analyser les paramètres de lien Redis.
Le format du lien redis est : redis://user:pass@host:port/db?option1=val1&option2=val2. Est-ce le même que l'URL, il est donc facile à analyser en utilisant le. au-dessus de deux méthodes.
Adresse : https://github.com/chrisboulton/php-resque/blob/master/lib/Resque/Redis.php
Le code est le suivant :
/** * Parse a DSN string, which can have one of the following formats: * * - host:port * - redis://user:pass@host:port/db?option1=val1&option2=val2 * - tcp://user:pass@host:port/db?option1=val1&option2=val2 * * Note: the 'user' part of the DSN is not used. * * @param string $dsn A DSN string * @return array An array of DSN compotnents, with 'false' values for any unknown components. e.g. * [host, port, db, user, pass, options] */ public static function parseDsn($dsn) { if ($dsn == '') { // Use a sensible default for an empty DNS string $dsn = 'redis://' . self::DEFAULT_HOST; } $parts = parse_url($dsn); // Check the URI scheme $validSchemes = array('redis', 'tcp'); if (isset($parts['scheme']) && ! in_array($parts['scheme'], $validSchemes)) { throw new \InvalidArgumentException("Invalid DSN. Supported schemes are " . implode(', ', $validSchemes)); } // Allow simple 'hostname' format, which `parse_url` treats as a path, not host. if ( ! isset($parts['host']) && isset($parts['path'])) { $parts['host'] = $parts['path']; unset($parts['path']); } // Extract the port number as an integer $port = isset($parts['port']) ? intval($parts['port']) : self::DEFAULT_PORT; // Get the database from the 'path' part of the URI $database = false; if (isset($parts['path'])) { // Strip non-digit chars from path $database = intval(preg_replace('/[^0-9]/', '', $parts['path'])); } // Extract any 'user' and 'pass' values $user = isset($parts['user']) ? $parts['user'] : false; $pass = isset($parts['pass']) ? $parts['pass'] : false; // Convert the query string into an associative array $options = array(); if (isset($parts['query'])) { // Parse the query string into an array parse_str($parts['query'], $options); } return array( $parts['host'], $port, $database, $user, $pass, $options, ); }
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 utiliser la fonction array_merge() en PHP pour fusionner deux tableaux
PHP peut réaliser une génération par lots de logos Méthode de différentes tailles
PHP utilise la fonction pcntl pour faire fonctionner plusieurs processus
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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

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.

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

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

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

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
