Introduction détaillée aux fonctions de recherche et de chaîne d'interception PHP (avec exemples)

不言
Libérer: 2023-04-04 17:50:02
avant
5819 Les gens l'ont consulté

Cet article vous apporte une introduction détaillée aux fonctions de recherche et d'interception de PHP (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Il est souvent nécessaire de rechercher et d'intercepter des chaînes strstr, strrchr, strpos, strrpos. , substr et d'autres fonctions sont organisées et enregistrées ici.

strstr

string strstr ( string $haystack , Mixed $needle [, bool $before_needle = false ] )
Renvoie la chaîne de botte de foin à partir de la position où l'aiguille apparaît pour la première fois pour la botte de foin. chaîne de fin.

strstr trouvera la position où le caractère apparaît pour la première fois et en renverra une partie. S'il n'est pas trouvé, il retournera false. Exemple

<?php
$str = 'abcdefabcdef';
echo strstr($str, 'c') . PHP_EOL;// cdefabcdef,返回第一次出现位置后面的字符串,包括c
echo strstr($str, 'c', true);// ab,返回第一次出现位置后面的字符串,不包括c
Copier après la connexion

strrchr

string strrchr ( string $haystack , Mixed $needle )
Cette fonction renvoie une partie de la chaîne de botte de foin, à partir de la dernière occurrence de Needle , jusqu'à la fin de la botte de foin.

strrchr trouvera la dernière occurrence du caractère et reviendra à la fin, s'il n'est pas trouvé, il renvoie false. Exemple

<php
$str = 'abcdefabcdef';
echo strrchr($str, 'c');// cdef,返回最后一次出现位置后面的字符串,包括c
Copier après la connexion

strpos

mixed strpos ( string $haystack , Mixed $needle [, int $offset = 0 ] )
Renvoie la position numérique où l'aiguille apparaît pour la première fois dans la botte de foin.

strpos trouvera la position où le caractère apparaît pour la première fois et renverra le numéro à cette position. S'il n'est pas trouvé, il renvoie false. Exemple

<?php
$str = 'abcdefabcdef';
echo strpos($str, 'e') . PHP_EOL;// 4,字符串位置是从0开始
echo strpos($str, 'e',3) . PHP_EOL;// 4,从第3位开始查找
echo strpos($str, 'e',11);// false,从第11位开始查找
Copier après la connexion

strrpos

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
Renvoie la dernière occurrence de l'aiguille dans la chaîne haystack Location.

strrpos trouvera la position où le caractère est apparu pour la dernière fois et renverra le numéro à cette position. S'il n'est pas trouvé, il renvoie false. Exemple

<?php
$str = 'abcdefabcdef';
echo strrpos($str, 'e') . PHP_EOL;// 10,字符串位置是从0开始
echo strrpos($str, 'e', 4) . PHP_EOL;// 10,从第4位开始查找
echo strrpos($str, 'e', 11) . PHP_EOL;// false,从第11位开始查找
echo strrpos($str, 'e',-5);// 4,从尾部第5位开始查找
Copier après la connexion

substr

string substr ( string $string , int $start [, int $length ] )
renvoie le sous-caractère de chaîne spécifié par les paramètres de début et de longueur. .

substr renvoie la chaîne interceptée en fonction des paramètres de position, et renvoie false en cas d'échec. Exemples

<?php
$str = 'abcdefabcdef';
echo substr($str, 0, 5) . PHP_EOL;// abcde,从首部开始截取5位
echo substr($str, 0, -3) . PHP_EOL;// abcdefabc,从首部开始截取-3位
echo substr($str, -2) . PHP_EOL;// ef,从尾部开始截取2位
echo substr($str, -5, 3) . PHP_EOL;// bcd,从尾部第5位开始截取3位
echo substr($str, -5, -1) . PHP_EOL;// bcde,从尾部第5位开始截取-1位
Copier après la connexion

Exemples et commentaires

Exemples

Les exemples ci-dessus sont des exemples simples de fonctions. Une utilisation raisonnable au travail nous aidera à obtenir deux fois le résultat avec la moitié de l'effort. Ce qui suit est un exemple d'obtention d'un nom d'utilisateur de messagerie ou d'un nom de domaine de messagerie

<?php
$email = '123456@example.com';
// 获取用户名
echo strstr($email, '@', true) . PHP_EOL;
echo substr($email, 0, strpos($email, '@')) . PHP_EOL;
echo substr($email, 0, strrpos($email, '@')) . PHP_EOL;// 邮箱中只有一个@,所有 strpos 和 strrpos 相同
// 获取邮箱域名
echo substr(strstr($email, '@'), 1) . PHP_EOL;
echo substr(strrchr($email, '@'), 1) . PHP_EOL;
echo substr($email, strpos($email, '@') + 1) . PHP_EOL;
echo substr($email, strrpos($email, '@') + 1);// 同上
Copier après la connexion

Notes

  • stristr, stripos et strripos sont des versions insensibles à la casse de strstr, strpos et strrpos respectivement. Version

  • strpos, la version 7.1.0 commence à prendre en charge le décalage négatif

  • substr, la longueur est un nombre négatif, puis les caractères de longueur à la fin de la chaîne

  • strpos, strrpos seront omis. Utilisez "===" pour déterminer la valeur de retour, car il est possible de renvoyer une valeur non booléenne. équivalent à false

  • strpos, strrpos, le deuxième paramètre doit être un type chaîne Si vous n'êtes pas sûr, il est préférable de convertir

  • Vous pouvez également utiliser des fonctions régulières pour rechercher et intercepter des chaînes. Cependant, avec le même effet, l'efficacité de la régularisation sera plus lente

  • Si vous souhaitez simplement confirmer si le caractère existe dans le fichier. string, strpos est plus efficace que strstr

  • mbstring peut mieux gérer les chaînes codées sur plusieurs octets

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!

Étiquettes associées:
php
source:segmentfault.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal