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截取字符串方法有哪些相关推荐

  1. php 截取某个字符,PHP_php截取指定2个字符之间字符串的方法,本文实例讲述了php截取指定2个 - phpStudy...

    php截取指定2个字符之间字符串的方法 本文实例讲述了php截取指定2个字符之间字符串的方法.分享给大家供大家参考.具体如下: 在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使 ...

  2. php字符串以符号截取,PHP按符号截取字符串的指定部分的实现方法

    大家在开发中可能会遇到需要截取某一个部分的内容,方法有很多,可以使用正则,也可以用内置函数,但该如何才能尽人意呢?傲世今天就给大家开开眼. 对于截取的需求也分很多种,字符串的截取php内置函数就有很多 ...

  3. php判断字符串里有英文,PHP针对中英文混合字符串长度判断及截取方法示例

    本文实例讲述了PHP针对中英文混合字符串长度判断及截取方法.分享给大家供大家参考,具体如下: /** * * 中英混合字符串长度判断 * @param unknown_type $str * @par ...

  4. php截取多个分割符号_PHP按符号截取字符串的指定部分的实现方法

    字符串截取在php开发中是比较常用的: 而且对于截取的需求也有很多种: 有时我们想截取最后一个斜杠'/'后面的数字: 有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http ...

  5. java截取字符串后几位_java截取字符串后几位字符的方法

    java截取字符串后几位字符的方法: java中截取字符串中最后几个字符可以使用String类的substring方法,具体用法参考下方说明: 1.substring(int beginIndex)s ...

  6. 常见操作String的方法(截取子串,分割字符串,字符串的替换)

    常见操作String的方法(截取子串,分割字符串,字符串的替换) 截取子字符串substring() substring()方法有两种重载形式,一种是从指定位置截取到字符串结尾,另一种是截取指定范围的 ...

  7. ios去掉字符串中的某个字符_iOS 截取字符串中两个指定字符串中间的字符串方法...

    例如,要截取一个字符串中,两个指定字符串中间的字符串,OC截取方法如下: // 要截取 "> 和 之间的汉字内容: @implementation ViewController - ( ...

  8. html中js判断字数截取,JS判断字符串字节数并截取长度的方法

    本文实例讲述了JS判断字符串字节数并截取长度的方法.分享给大家供大家参考,具体如下: 这是在项目制作中,积累到的一个东西,感觉效果还可以,现在贴上效果: 那么,在页面上,我们需要检测两个东西,一个就是 ...

  9. js 截取字符串 subStr()、substring()、slice() 方法

    1. subStr(start, length) substr() 方法可在字符串中截取从start下标开始到指定length数目的字符 var str = "Hello world!&qu ...

  10. linux截取字符串函数,Linux下实现字符串截取方法总结

    Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取.具体截取方式如下: a.#截取,可以实现删除左边字符,保留右边字符 从左边第一个>开始,删除>及之前的所 ...

最新文章

  1. SQL Server存储过程输入参数使用表值
  2. 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点
  3. python里面的之前打过的记忆信息-Python关键语句备忘录,拯救你的记忆
  4. C# Linq to Entity Lamda方式分组并求和求平均值
  5. win7 双屏 双工具栏_不知道这几个双屏操作技巧,你的显示器就白买了
  6. php 后期发展,php面对对象之后期绑定
  7. CVPR 2021|人脸属性风格解耦
  8. Silverlight 2初尝及我的例子:Fanfou.com客户端——EatSilverlight
  9. win7网络里计算机登录失败,Win7系统访问网络时提示“登陆失败”的解决方法
  10. Python使用Reportlab处理PDF数据 - 段落
  11. Cookie与Session基本使用
  12. python爬取上证50ETF成分股信息
  13. Aho_Corasick_Automaton
  14. 天语W700 wipe
  15. mysql 随机函数
  16. 中国程序员在德国:海外版抖音火爆,IT 人才稀缺!| 畅言
  17. java使用反射生成JDK动态代理
  18. 亿图图示,获取图标的好软件
  19. Unique Snowflakes 详细题解
  20. 原型法和面向对象的分析与设计方法

热门文章

  1. 百度云链接后的html,百度云链接失效,这样就能找回!
  2. JAVA制作简单的查询身份证号信息小程序
  3. 计算机科学的研究方法,计算机科学与技术课题研究的方法论
  4. blaster 驱动_为什么2020年IR Blaster在手机上仍然有用
  5. Android 开发即时聊天工具系列(8)
  6. DP_流水线调度问题与Johnson算法
  7. 电商数据应用体系建设总结(一)—— 数据应用架构剖析
  8. 如何删除服务中不存在在服务
  9. 运动控制卡选型和特点讨论
  10. xshell安卓版下载_xshell5手机安卓版下载|Xshell5最新版下载_v5.0.1199_9ht安卓下载