0

0

PHP开发实例之公共方法【代码详解】

眼眸间的深情

眼眸间的深情

发布时间:2021-08-04 19:07:01

|

1923人浏览过

|

来源于php中文网

原创

当我们踏入php开发的行列中的时候,我们就要时刻去要求自己,不断学习,不断总结,只有这样,我们才能在php开发的道路上越走越远,今天呢,就个人开发实例总结了一部分原生的常用公共方法,来让新手的小伙伴在开发的过程中可以更快的进行开发实践活动: 

1.使用公共方法msubstr截取中文字符串,过长的使用省略号代替:

使用场景:

使用这类公共方法一般都是在后台进行编辑器上传一些文章的数据,需要在前端进行对应的数据展示,而有的时候,当后台数据过长,前端所展示的空间不足以显示所有的数据,这时候多余的部分使用省略号进行代替,这样可以让前端的数据展示美观且简约,给人一种赏心悦目的感觉。

代码展示:

立即学习PHP免费学习笔记(深入)”;

/**
 * 截取中文字符串,过长的使用省略号代替
 */
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){
    
    $str = preg_replace("/<a[^>]*>/i", "", $str);  
    $str = preg_replace("/<\/a>/i", "", $str);   
    $str = preg_replace("/<div[^>]*>/i", "", $str);  
    $str = preg_replace("/<\/div>/i", "", $str);      
    $str = preg_replace("/<!--[^>]*-->/i", "", $str);//注释内容
    $str = preg_replace("/style=.+?['|\"]/i",'',$str);//去除样式  
    $str = preg_replace("/class=.+?['|\"]/i",'',$str);//去除样式  
    $str = preg_replace("/id=.+?['|\"]/i",'',$str);//去除样式     
    $str = preg_replace("/lang=.+?['|\"]/i",'',$str);//去除样式      
    $str = preg_replace("/width=.+?['|\"]/i",'',$str);//去除样式   
    $str = preg_replace("/height=.+?['|\"]/i",'',$str);//去除样式   
    $str = preg_replace("/border=.+?['|\"]/i",'',$str);//去除样式   
    $str = preg_replace("/face=.+?['|\"]/i",'',$str);//去除样式   
    $str = preg_replace("/face=.+?['|\"]/",'',$str);//去除样式只允许小写正则匹配没有带 i 


    if(function_exists("mb_substr")){
        $slice= mb_substr($str, $start, $length, $charset);
    }elseif(function_exists('iconv_substr')) {
        $slice= iconv_substr($str,$start,$length,$charset);
    }else{
        preg_match_all($re[$charset], $str, $match);
        $slice = join("",array_slice($match[0], $start, $length));
    }    
        $fix='';
        if(strlen($slice) < strlen($str)){
            $fix='...';
        }


        return $suffix ? $slice.$fix : $slice;
}

2.enctype加密:

使用场景:

前端密码匹配设置规则或者后端密码匹配规则的再次加密,防止其他黑客进行通用的密码匹配机制进行网站关停等工作。

代码展示:

/**
 * 公共方法
 * 优化md5加密:
 */
function enctype($password) {
    return md5($password . C('MD5_SUFFIX'));
}

注意事项:

C('MD5_SUFFIX')项目为读取配置的常量 "MD5_SUFFIX",常量可自行设置。

3.将手机号中间4位替换为*

使用场景:

网站上用户通过手机号注册账号之后,为了保障用户的信息安全,将手机号的中间4位替换为*,即可让手机号显示不全,一定程度上保障了用户的信息安全。

代码展示:

/**
 * 将手机号中间4位替换为*
 */
function suohao($phone){
 $p = substr($phone,0,3)."****".substr($phone,7,4);
 return $p;
}

4.验证手机号是否正确:

使用场景:

用户注册网站时校验用户填写的手机号是否正确,方便我们后台人员后期对数据的维护。

PHP 网络编程技术与实例(曹衍龙)
PHP 网络编程技术与实例(曹衍龙)

PHP网络编程技术详解由浅入深,全面、系统地介绍了PHP开发技术,并提供了大量实例,供读者实战演练。另外,笔者专门为本书录制了相应的配套教学视频,以帮助读者更好地学习本书内容。这些视频和书中的实例源代码一起收录于配书光盘中。本书共分4篇。第1篇是PHP准备篇,介绍了PHP的优势、开发环境及安装;第2篇是PHP基础篇,介绍了PHP中的常量与变量、运算符与表达式、流程控制以及函数;第3篇是进阶篇,介绍

下载

代码展示:

/**
* 验证手机号是否正确
* @author honfei
* @param number $mobile
*/
function isMobile($mobile) {
    if (!is_numeric($mobile)) {
        return false;
    }
    return preg_match('#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#', $mobile) ? true : false;
}

5.验证输入的内容是否为纯数字:

使用场景:

校验用户提交必须为数字项的参数时的校验工作,校验之后可以给用户进行对应的反馈信息,帮助用户进行数据提交的有效性。

代码展示:

/**
* 验证输入的内容是否为纯数字
* @author wdy
* @param number $mobile
*/
function isNumeric($number) {
    if (!is_numeric($number)) {
        return false;
    }
    return preg_match('/^\d+$/i', $number) ? true : false;
}

6.验证邮箱是否正确:

使用场景:

用户注册或者绑定邮箱信息的时候,需要校验邮箱的真实有效性,方便后期用户找回密码时可以快速有效的收取到对应的校验码。

代码展示:

/**
 * 验证邮箱是否正确
 * @author wdy
 * @param 18738536986@163.com $email
 */
function isEmail($email){  
    $mode = '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';  
    if(preg_match($mode,$email)){  
        return true;  
    }else{  
        return false;  
    }  
}

7.递归重新排序无限极分类数组:

使用场景:

商城分类通常会使用此方法,可以行之有效的进行对商城分类的数据读取和展示工作,方便个人的维护,同时方便了用户的体验。

代码展示:

//递归重新排序无限极分类数组
function recursive($array,$pid=0,$level=0){

//接收传递过来的数组
$arr = array();

foreach ($array as  $value) {

if($value['pid'] == $pid){

//定义分类级别
$value['level'] = $level;

//定义分类分隔符号
$value['html'] = str_repeat('-', $level);


//$arr[]来存储$value
$arr[] = $value;


//array_merge():函数把一个或多个数组合并为一个数组。
$arr = array_merge($arr,recursive($array,$value['id'],$level+1));

}
}

return $arr;

}

8.获取所有分类子分类的ID:

使用场景:

商城分类的快速读取,可以对分类信息数据进行分快速整合和数据展示,同时方便用户的快速访问体验。

代码展示:

//获取所有分类子分类的ID
function get_all_child($array, $id){

//定义一个数组
$arr = array();

//循环遍历
foreach ($array as $v) {

//判断pid是否等于id
if ($v['pid'] == $id) {

//$arr接收所有的id
$arr[] = $v['id'];

//array_merge():函数把一个或多个数组合并为一个数组。
$arr = array_merge($arr, get_all_child($array, $v['id']));

}
}

return $arr;

}

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1566

2023.10.24

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

760

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

221

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1566

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

649

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

1228

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

1184

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

192

2025.07.29

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号