php mbstring强大扩展

简介: php mbstring强大扩展

前言

学习学习php扩展的使用

一、php扩展是什么?

二、使用步骤

1.mbstring

代码如下(示例):

<?php
//当前php版本支持的所有编码,形成一个数组.我用的是php7.3.4
print_r(mb_list_encodings());

<?php
mb_internal_encoding('UTF-8');/* 设置内部字符编码为 UTF-8 */
$a = "陈业贵";
$length = mb_strlen($a);//获取字符串变量的长度
echo $length;

<?php
mb_internal_encoding('GBK');/* 设置内部字符编码为GBK */
$a = "陈业贵";
$length = mb_strlen($a);//获取字符串变量的长度
echo $length;

<?php
// 设置/获取当前的语言。设置成Unicode
if (mb_language("uni")) {
    echo "mb_language('uni[utf-8]') => SUCCESS".'<br>';
}

<?php
// mb_substr_count  =>  统计字符串出现的次数
echo mb_substr_count('研究源码教程源码111源码', '源码').'<br>';

<?php
//\s 是正则表达式中的一个特殊字符组,表示匹配任意空白字符。.以空白空格来分割
print_r( mb_split("\s", "hello world") );

<?php
$str = '研究源码教程';
echo mb_detect_encoding($str).'<br>'; /* 使用当前的 detect_order 来检测字符编码 */
echo mb_detect_encoding($str, "auto").'<br>'; /* "auto" 将根据 mbstring.language 来扩展 */

<?php
// mb_ereg_search — 正则查找字符串
$str = "中国abc + abc ?!?!字符# china string";
$reg = "\w+";
mb_regex_encoding("UTF-8");
mb_ereg_search_init($str, $reg);
$r = mb_ereg_search();
if(!$r)
{
    echo "null\n";
}
else
{
    $r = mb_ereg_search_getregs(); 
    do
    {
        var_dump($r[0]);
        $r = mb_ereg_search_regs();
    }
    while($r);
}

解释:

$str 是待匹配的字符串,包含了中文、英文和特殊字符。

KaTeX parse error: Undefined control sequence: \w at position 20: …是用于匹配的正则表达式,其中 \̲w̲+ 表示匹配一个或多个字母!!…str, $reg) 初始化多字节正则表达式搜索,指定要搜索的字符串和正则表达式。

mb_ereg_search() 执行多字节正则表达式搜索,返回一个布尔值表示是否找到匹配。

如果搜索结果为假(即没有找到匹配),则输出 “null”。

如果搜索结果为真(找到了匹配),则使用 mb_ereg_search_getregs() 获取第一个匹配结果,并通过 var_dump() 输出。

使用 mb_ereg_search_regs() 获取下一个匹配结果,并通过循环重复此过程,直到没有更多的匹配结果。

<?php
$test = mb_ereg_match(".*a", "some apples"); // returns true
echo $test;//返回1代表有

解释:

mb_ereg_match(“.*a”, “some apples”) 的作用是判断字符串 “some apples” 是否与正则表达式 “.*a” 匹配。该正则表达式表示任意字符(可以包含空格)后面跟着字母 “a”。

根据示例,“some apples” 包含字符 “a” 并在末尾,因此与正则表达式匹配。所以,mb_ereg_match() 函数将返回 true。

<?php
$input = "The number 5 is greater than 3 and less than 10.";
$result = mb_ereg_replace_callback(
    "[0-9]+",
    function ($matches) {
        $number = intval($matches[0]);
        return $number * $number;
    },
    $input
);
echo $result;

解释:

$input 是待处理的字符串,其中包含了一些数字。

使用 mb_ereg_replace_callback() 函数对输入字符串进行正则表达式匹配和替换操作。

正则表达式模式 [0-9]+ 匹配一个或多个连续的数字。

匹配到的数字通过回调函数进行处理。在这个例子中,回调函数将匹配到的数字转换为整数,并返回其平方值。

最后,通过 echo 输出替换后的结果。

总结

写完了,谢谢大家.


相关文章
|
3月前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性与扩展性本文旨在探讨PHP中常见的设计模式及其应用,帮助开发者编写出更加灵活、可维护和易于扩展的代码。通过深入浅出的解释和实例演示,我们将了解如何使用设计模式解决实际开发中的问题,并提升代码质量。
在软件开发过程中,设计模式是一套经过验证的解决方案模板,用于处理常见的软件设计问题。PHP作为流行的服务器端脚本语言,也有其特定的设计模式应用。本文将重点介绍几种PHP中常用的设计模式,包括单例模式、工厂模式和策略模式,并通过实际代码示例展示它们的具体用法。同时,我们还将讨论如何在实际项目中合理选择和应用这些设计模式,以提升代码的可维护性和扩展性。
69 4
|
2月前
|
NoSQL 安全 Linux
MongoDB PHP 扩展
10月更文挑战第19天
13 0
MongoDB PHP 扩展
|
3月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
4月前
|
安全 前端开发 PHP
PHP与现代Web开发:构建高效和可扩展的应用程序
【8月更文挑战第29天】在这篇文章中,我们将深入探讨PHP如何适应现代Web开发的需求。我们将通过实际案例分析,揭示PHP的核心优势,并展示如何利用这些优势来构建高性能、可扩展的Web应用。文章不仅提供理论知识,还包括具体的代码示例,旨在帮助开发者更好地理解和运用PHP解决实际问题。
|
4月前
|
SQL 关系型数据库 MySQL
PHP与数据库交互的艺术:深入探讨PDO扩展
【8月更文挑战第28天】在数字信息时代的海洋里,PHP作为一艘灵活的帆船,承载着无数网站和应用的梦想。而PDO扩展,则是这艘帆船上不可或缺的导航仪,指引着数据安全与效率的航向。本文将带你领略PHP与数据库交互的艺术,深入浅出地探索PDO的世界,从连接数据库到执行复杂的查询,每一步都清晰可见。我们将一起航行在这段奇妙的旅程上,解锁数据的奥秘,体验编程的乐趣。
71 1
|
4月前
|
存储 安全 Linux
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
|
5月前
|
运维 Serverless API
函数计算产品使用问题之如何使用PHP Runtime非内置扩展
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
Ubuntu 中间件 Linux
linux php添加扩展zip libzip ZipArchive功能
linux php添加扩展zip libzip ZipArchive功能
213 1
|
6月前
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
93 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
|
7月前
|
编译器 API PHP
深入PHP扩展开发:打造高效自定义模块
【4月更文挑战第30天】 在追求性能优化和特定功能实现的道路上,PHP提供了一种强大机制——扩展。本文将引导读者通过编写一个简单的PHP扩展来探索扩展开发的世界。我们将涉及从环境搭建到代码实现,再到扩展的编译与加载的完整流程,确保读者能够理解并实践如何创建高效的自定义PHP模块。