Table des matières
PHP中一些可以替代正则表达式函数的字符串操作函数,php正则表达式
Maison développement back-end tutoriel php PHP中一些可以替代正则表达式函数的字符串操作函数,php正则表达式_PHP教程

PHP中一些可以替代正则表达式函数的字符串操作函数,php正则表达式_PHP教程

Jul 13, 2016 am 10:13 AM
mysql php 字符串操作

PHP中一些可以替代正则表达式函数的字符串操作函数,php正则表达式

0x01:根据预定义的字符对字符串进行词法分析

复制代码 代码如下:

/*
 * 在处理大量信息时,正则表达式函数会使速度大幅减慢。应当在需要使用正则表达式解析比较复杂的字符串时才能使用这些函数。如果要解析简单的表达式,还可以采用很多可以显著加快处理过程的预定义函数。
 */

/*
 * 根据预定义的字符对字符串进行词法分析
 * strtok()函数根据预定义的字符列表来解析字符串。其形式为:
 * string strtok(string str,string tokens)
 * strtok()函数,必须连续调用这个函数,才能完全的对一个字符串进行词法分析;每次调用该函数只是对字符串的下一部分做词法分析。但是,str参数只需要指定一次,因为函数会跟踪str中的位置,知道完全对str完成了词法分析,或者指定了心得str参数。
 * 如下面的例子所示:
 */
$info="lv chen yang|Hello:world&757104454@qq.com";
//定义界定符,包括(|)(:)( )(&)
$tokens="|:& ";
$tokened=strtok($info, $tokens);
while ($tokened)
{
 echo "Element:$tokened
";
 //连续调用strtok()函数,完成对整个字符串的词法分析
 $tokened=strtok($tokens);
}
?>

0x02:根据预定义的定界符分解字符串

复制代码 代码如下:

/*
 * 根据预定义的定界符分解字符串:explode()函数
 * 次函数将字符串str分成子串数组,其形式为:
 * array explode(string separator,string str [, int limit])
 * 原字符串被根据separator指定的字符串分割为不同的元素。元素的数量可以通过可选的参数limit来限制。可以结合explode()/sizeof()和strip_tags()来确定给定文本块中单词的总数
 * 如下所示:
 */
$summary="
   In the latest installment of the ongoing Developer.com PHP series.
   I discuss the many improvements and addtions to
   PHP object-oriented architecture.
   ";
echo "
";
$words=explode(' ', strip_tags($summary));
echo "This sentence's lenght is:".sizeof($words);
/*
 * explode()函数始终比preg_split、spilt()和spliti()快得多。因此,在不需要使用正则表达式时,一定要使用这个函数。
 */
?>

0x03:将数组转换成字符串

复制代码 代码如下:

/*
 * 将数组转换成字符串
 * explode()函数可以根据界定字符将字符串转换为相应的数组,但是可以通过implode()函数将数组转换为规定的界定字符为界限的字符串
 * 其形式为:
 * string implode(string delimiter,array pieces)
 * 如下所示:
 */
$citys=array("Chengdu","Chongqing","Beijing","Shanghai","Guangzhou");
$citystring=implode("|", $citys);
echo $citystring;
?>

0x04:解析复杂的字符串

复制代码 代码如下:

/*
 * 解析复杂的字符串
 * strpos()函数在字符串中以区分大小写的方式找到substr第一次出现的位置,其形式为
 * int strpos(string str,string substr [,int offset])
 * 可选参数offset指定开始搜索的位置。如果substr不在str中,则strpos()返回False。可选参数确定strpos()从哪里开始搜索。
 * 以下例子将确定第一次访问index.html的时间戳:
 */
$substr="index.html";
$log= 192.168.1.1:/www/htdocs/index.html:[2013/06/26:13:25:10]
192.168.1.2:/www/htdocs/index.html:[2013/06/26:13:27:16]
192.168.1.3:/www/htdocs/index.html:[2013/06/26:13:28:45]
logfile;
echo "
";
//$substr在log中首次出现的位置是什么
$pos=strpos($log, $substr);
//查找行结束的数值位置
$pos1=strpos($log,"\n",$pos);
//计算时间戳的开始
$pos=$pos+strlen($substr)+1;
//检索时间戳
$timestamp=substr($log, $pos,$pos1-$pos);
echo "The file index.html was first accessed on: $timestamp
";
/*
 * 函数stripos()和函数strpos()函数用法相同,唯一的区别是stripos()不区分大小写。
 */
?>

0x05:找到字符串最后一次出现的位置

复制代码 代码如下:

/*
 * 找到字符串中最后一次出现的位置
 * strrpos()函数搜索字符串的最后出现的位置,返回它的位置(数值序号)其形式为:
 * int strrpos(string str,char substr [,offset])
 * 可选参数offset确定strrpos()函数的开始搜索位置。加入希望缩短冗长的新闻总结,
 * 截取总结中的某些部分,并用省略号代替所截去的部分。然而,并非简单的将总结明确的剪为所需的长度,
 * 你可能希望以一种对用户友好的方式进行剪切,截取到与阶段长度最接近的单词末尾。
 * 如下例子所示
 */
$limit=100;
$summary="In the latest installment of the ongoing Developer.com PHP series.
   I discuss the many improvements and addtions to
   PHP object-oriented architecture. ";
if(strlen($summary)>$limit)
 $summary=substr($summary, 0,strrpos(substr($summary, 0,$limit)," "))."...";
echo  $summary;
?>

0x06:用另外一个字符串替换字符串的所有实例

复制代码 代码如下:

/*
 * 用另外一个字符串替换字符串的所有实例
 * str_replace()函数以区分大小写的方式用另外一个字符串奇幻某个字符串的所有实例。其形式为:
 * mixed str_replace(string occurrence, mixed replacement, mixed str [,int count])
 * 如果str中没有找到occurrence,则str保持不变,如果定义了可选参数count,则只替换str中count个currence。
 * 此函数很适合对自动获取电子邮箱地址的程序隐藏电子右键地址,如下所示:
 */
$email="lvchenyang@live.cn";
$email=str_replace("@", "(at)", $email);
echo "
".$email;
?>

0x07:获取字符串的一部分

复制代码 代码如下:

/*
 * 获取字符串的一部分
 * strstr()函数返回字符串中从预定义的字符串的第一个出现开始的剩余部分(包括occurrence这个字符串)。其形式为:
 * string strstr(string str,string occurrence[,bool fefore_needle])
 * 可选参数before_needle会改变strstr()的行为,使函数返回字符串在第一个出先之前的部分。
 * 下面的例子是获取右键中的域名,结合ltrim()函数
 */
$url="lvchenyang@live.cn";
echo "
".ltrim(strstr($url, "@"),"@");
?>

0x08:根据预定义的便宜返回字符串的一部分

复制代码 代码如下:

/*
 * substr()函数返回字符串中位于start和start+length之间的部分,其形式为:
 * string substr(string str,int start [,int length])
 * 如果没有指定的可选参数,则返回从start到str末尾的字符串
 * 如下所示
 */
$str="lvchenyang";
echo "
".substr($str, 2,4);
//output: chen
?>

0x09:确定字符串出现的频率

复制代码 代码如下:

/*
 * 确定字符串出现的频率
 * substr_count()返回一个字符串在另外一个字符串中出现的次数。其形式为:
 * int substr_count(string str,string substring [,int offset [,int length]])
 * 可选参数offset和length指定字符串便宜(从便宜处开始尝试匹配字符串)和字符串长度(从便宜开始搜索的长度)
 * 下面的例子确定了每个单词在这个sentence中出现的次数
 */
$talk= I am acertain that we could dominate mindshare in this space with
our new product, extablishing a true synergy beteen the marketing
and product development teams. We'll own this space in thress months.
talk;
echo "
";
$sentencearray=explode(" ", $talk);
foreach ($sentencearray as $item)
{
 echo "The word $item appears(".substr_count($talk, $item).")times
";
}
?>

0x10:用另一个字符串替换一个字符串的一部分

复制代码 代码如下:

/*
 * 用另外一个字符串替换一个字符串的一部分
 * substr_replace()函数将字符串中的一部分用另一个字符串替换,替换从指定的start位置开始,知道start+length位置结束。
 * 其形式为:
 * stringsubstr_replace(string str,string repalcement,int start和length的值。
 * 如下所示,替换电话号码中间4位
 */
$phonenum="15926841384";
echo "
".substr_replace($phonenum, "****", 3,4);
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/912669.htmlTechArticlePHP中一些可以替代正则表达式函数的字符串操作函数,php正则表达式 0x01:根据预定义的字符对字符串进行词法分析 复制代码 代码如下: ph...
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
4 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)

MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Navicat ne peut pas se connecter à MySQL / MARIADB / POSTRESQL et à d'autres bases de données Navicat ne peut pas se connecter à MySQL / MARIADB / POSTRESQL et à d'autres bases de données Apr 08, 2025 pm 11:00 PM

Raisons courantes pour lesquelles Navicat ne peut pas se connecter à la base de données et à ses solutions: 1. Vérifiez l'état d'exécution du serveur; 2. Vérifiez les informations de connexion; 3. Réglez les paramètres du pare-feu; 4. Configurer l'accès à distance; 5. Dépannage des problèmes de réseau; 6. Vérifier les autorisations; 7. Assurer la compatibilité de la version; 8. Dépannage d'autres possibilités.

Comment exécuter SQL dans Navicat Comment exécuter SQL dans Navicat Apr 08, 2025 pm 11:42 PM

Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).

Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

L'avenir de PHP: adaptations et innovations L'avenir de PHP: adaptations et innovations Apr 11, 2025 am 12:01 AM

L'avenir de PHP sera réalisé en s'adaptant aux nouvelles tendances technologiques et en introduisant des fonctionnalités innovantes: 1) s'adapter aux architectures de cloud computing, de conteneurisation et de microservice, en prenant en charge Docker et Kubernetes; 2) introduire des compilateurs JIT et des types d'énumération pour améliorer l'efficacité des performances et du traitement des données; 3) Optimiser en continu les performances et promouvoir les meilleures pratiques.

Navicat se connecte au code et à la solution d'erreur de base de données Navicat se connecte au code et à la solution d'erreur de base de données Apr 08, 2025 pm 11:06 PM

Erreurs et solutions courantes Lors de la connexion aux bases de données: nom d'utilisateur ou mot de passe (erreur 1045) Blocs de pare-feu Connexion (erreur 2003) Délai de connexion (erreur 10060) Impossible d'utiliser la connexion à socket (erreur 1042) Erreur de connexion SSL (erreur 10055) Trop de connexions Résultat de l'hôte étant bloqué (erreur 1129)

See all articles