php 截取字符串的方法,php截取字符串方法有哪些
php截取字符串方法有:1、使用substr函数截取字符串;2、使用mb_substr函数截取字符串;3、使用自定义的“function mysubstr($str, $start, $len){}”方法截取字符串等等。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php截取字符串几个实用的函数
1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串<?php
$str ="phpddt.com";
echo substr($str,2);//pddt.com
echo substr($str,2,3);//pdd
echo substr($str,-2);//om 负数从结尾开始取
?>
但是当你截取中文字符串的时候很容易出现乱码,因为一个汉字是两个字节,而一个英文字母是一个字节。解决办法如下:
2.mb_substr(),使用方法和substr相同,不过要开启php.ini里面extension=php_mbstring.dll扩展,不用担心,一般的空间商都会开启这个扩展的。<?php
echo mb_substr("php点点通",1,3,"UTF-8");//hp点
?>
代码如下:substr(string,start,length)
其中start的参数
正数 - 在字符串的指定位置开始
负数 - 在从字符串结尾的指定位置开始
0 - 在字符串中的第一个字符处开始
******************************************************************
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。strstr('abc@jb51.net', '@', TRUE); //参数设定true, 返回查找值@之前的首部,abc
strstr( 'abc@jb51.net', '@'); //默认返回查找值@之后的尾部,@jb51.net
网上也有很多中文字符串截取教程,实现起来比较复杂,感觉还是用php自带的函数实现起来比较好。整理的网络资料(php代码)如下:
(1)截取GB2312中文字符串<?php
//截取GB2312中文字符串
function mysubstr($str, $start, $len){
$tmpstr ="";
$strlen = $start + $len;
for($i =0; $i < $strlen; $i++){
if(ord(substr($str, $i,1))>0xa0){
$tmpstr .= substr($str, $i,2);
$i++;
}else
$tmpstr .= substr($str, $i,1);
}
return $tmpstr;
}
echo mysubstr("php点点通",1,5);//php点
?>
(2)截取utf8编码的多字节字符串<?php
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
echo utf8Substr("php点点通",1,5);//hp点点通
?>
(3)支持 utf-8、gb2312都支持的汉字截取函数<?php
//同时支持 utf-8、gb2312都支持的汉字截取函数 ,默认编码是utf-8
function cut_str($string, $sublen, $start =0, $code ='UTF-8')
{
if($code =='UTF-8')
{
$pa ="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
preg_match_all($pa, $string, $t_string);if(count($t_string[0])- $start > $sublen)return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr ='';for($i=0; $i
{
if($i>=$start && $i
{
if(ord(substr($string, $i,1))>129)
{
$tmpstr.= substr($string, $i,2);
}
else
{
$tmpstr.= substr($string, $i,1);
}
}
if(ord(substr($string, $i,1))>129) $i++;
}
if(strlen($tmpstr)
return $tmpstr;
}
}
$str ="php点点通提供原创php教程";
echo cut_str($str,8,0);//php点点通提供...
?>
推荐学习:《PHP视频教程》
php 截取字符串的方法,php截取字符串方法有哪些相关推荐
- php 截取某个字符,PHP_php截取指定2个字符之间字符串的方法,本文实例讲述了php截取指定2个 - phpStudy...
php截取指定2个字符之间字符串的方法 本文实例讲述了php截取指定2个字符之间字符串的方法.分享给大家供大家参考.具体如下: 在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使 ...
- php字符串以符号截取,PHP按符号截取字符串的指定部分的实现方法
大家在开发中可能会遇到需要截取某一个部分的内容,方法有很多,可以使用正则,也可以用内置函数,但该如何才能尽人意呢?傲世今天就给大家开开眼. 对于截取的需求也分很多种,字符串的截取php内置函数就有很多 ...
- php判断字符串里有英文,PHP针对中英文混合字符串长度判断及截取方法示例
本文实例讲述了PHP针对中英文混合字符串长度判断及截取方法.分享给大家供大家参考,具体如下: /** * * 中英混合字符串长度判断 * @param unknown_type $str * @par ...
- php截取多个分割符号_PHP按符号截取字符串的指定部分的实现方法
字符串截取在php开发中是比较常用的: 而且对于截取的需求也有很多种: 有时我们想截取最后一个斜杠'/'后面的数字: 有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http ...
- java截取字符串后几位_java截取字符串后几位字符的方法
java截取字符串后几位字符的方法: java中截取字符串中最后几个字符可以使用String类的substring方法,具体用法参考下方说明: 1.substring(int beginIndex)s ...
- 常见操作String的方法(截取子串,分割字符串,字符串的替换)
常见操作String的方法(截取子串,分割字符串,字符串的替换) 截取子字符串substring() substring()方法有两种重载形式,一种是从指定位置截取到字符串结尾,另一种是截取指定范围的 ...
- ios去掉字符串中的某个字符_iOS 截取字符串中两个指定字符串中间的字符串方法...
例如,要截取一个字符串中,两个指定字符串中间的字符串,OC截取方法如下: // 要截取 "> 和 之间的汉字内容: @implementation ViewController - ( ...
- html中js判断字数截取,JS判断字符串字节数并截取长度的方法
本文实例讲述了JS判断字符串字节数并截取长度的方法.分享给大家供大家参考,具体如下: 这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果: 那么,在页面上,我们需要检测两个东西,一个就是 ...
- js 截取字符串 subStr()、substring()、slice() 方法
1. subStr(start, length) substr() 方法可在字符串中截取从start下标开始到指定length数目的字符 var str = "Hello world!&qu ...
- linux截取字符串函数,Linux下实现字符串截取方法总结
Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取.具体截取方式如下: a.#截取,可以实现删除左边字符,保留右边字符 从左边第一个>开始,删除>及之前的所 ...
最新文章
- SQL Server存储过程输入参数使用表值
- 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点
- python里面的之前打过的记忆信息-Python关键语句备忘录,拯救你的记忆
- C# Linq to Entity Lamda方式分组并求和求平均值
- win7 双屏 双工具栏_不知道这几个双屏操作技巧,你的显示器就白买了
- php 后期发展,php面对对象之后期绑定
- CVPR 2021|人脸属性风格解耦
- Silverlight 2初尝及我的例子:Fanfou.com客户端——EatSilverlight
- win7网络里计算机登录失败,Win7系统访问网络时提示“登陆失败”的解决方法
- Python使用Reportlab处理PDF数据 - 段落
- Cookie与Session基本使用
- python爬取上证50ETF成分股信息
- Aho_Corasick_Automaton
- 天语W700 wipe
- mysql 随机函数
- 中国程序员在德国:海外版抖音火爆,IT 人才稀缺!| 畅言
- java使用反射生成JDK动态代理
- 亿图图示,获取图标的好软件
- Unique Snowflakes 详细题解
- 原型法和面向对象的分析与设计方法
热门文章
- 百度云链接后的html,百度云链接失效,这样就能找回!
- JAVA制作简单的查询身份证号信息小程序
- 计算机科学的研究方法,计算机科学与技术课题研究的方法论
- blaster 驱动_为什么2020年IR Blaster在手机上仍然有用
- Android 开发即时聊天工具系列(8)
- DP_流水线调度问题与Johnson算法
- 电商数据应用体系建设总结(一)—— 数据应用架构剖析
- 如何删除服务中不存在在服务
- 运动控制卡选型和特点讨论
- xshell安卓版下载_xshell5手机安卓版下载|Xshell5最新版下载_v5.0.1199_9ht安卓下载