首页 > 后端开发 > 正文

如何利用PHP来截取一段中文字符串而不出现乱码

2024-07-13 12:16:29 | 我爱编程网

小编今天整理了一些如何利用PHP来截取一段中文字符串而不出现乱码相关内容,希望能够帮到大家。

本文目录一览:

如何利用PHP来截取一段中文字符串而不出现乱码

如何利用PHP来截取一段中文字符串而不出现乱码

/*
功能:截取全角和半角混合的字符串以避免乱码
参数:
$str_cut 需要截断的字符串
$length  允许字符串显示的最大长度

*/

function substr_cut($str_cut,$length = 30){ 

if (strlen($str_cut) >; $length){
  for($i=0; $i < $length; $i++)
   if (ord($str_cut[$i]) >; 128) $i++;
  $str_cut = substr($str_cut,0,$i) . "...";
}
return $str_cut;
}

说明: 
程序的关键语句是: 

for($i=0; $i < $length; $i++)
if (ord($str_cut[$i]) >; 128) $i++;

$str_cut = substr($str_cut,0,$i) . "...";
如果字符的ASCII码大于128,说明当前字符和下一个字符是属于一个汉字的。 
则,$i++ 跳过对下一个字符的判断。 
再结合循环中的 $i++ ,实际上,当遇到一个汉字时,$i 就会加 2 ,从而正确的跳过汉字。 
最终实现的效果是,$i 变量指向的要么是半角的字符,要么是全角汉字的首字符,不会指向 
全角汉字的第二个字符,所以,当$i >;= $length 时,循环结束,使用 
$str_cut = substr($str_cut,0,$i) . "..."; 截取字符时自然也就不会出现乱码了。 


本人在写一个程序时需要利用PHP从一段字符串中截取指定长度的一段字符下来。以前在写ASP的时候,参考动网的程序写过类似的程序,不过,还没用PHP写过。 

想偷懒,看有不有现成的代码可以用。于是,在GOOGLE中输入:PHP 截断字符 后查找到一段代码。

如何利用PHP来截取一段中文字符串而不出现乱码

php 获取某字符串时,字符最后出现的位置在哪里?

各函数情况如下:

1、strstr(string,string) = strchr(,) //从前面第一次出现某个字符串的地方截取到最后

2、strrchr(string,string) //从某个字符串从最后出现的位置截取到结尾


3、strpos(string,string[,int]) //某个字符串第一次出现的位置


4、strrpos(string,string) //某个字符串最后一次出现的位置


5、substr(string,int[,int]) //从指定位置开始截取字符串,可以指定截取的长度。


6、strlen(string) //获取字符串的长度

一、PHP的特性

1、PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。

2、PHP安装它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,

3、PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;

4、PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

5、PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。最重要的是PHP可以用C、C++进行程序的扩展!

二、PHP的优势:

1、开放的源代码:

所有的PHP源代码事实上都可以得到。

2、PHP是免费的:

和其它技术相比,PHP本身免费且是开源代码。

3、php的快捷性:

程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。 我爱编程网

4、跨平台性强:

由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS下。

5、效率高:

PHP消耗相当少的系统资源。

6、图像处理:

用PHP动态创建图像

7、面向对象:

在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。

8、专业专注:

PHP支持脚本语言为主,同为类C语言。

如何利用PHP来截取一段中文字符串而不出现乱码

php 如何截取字符串最后两个字符?

我爱编程网(https://www.52biancheng.com)小编还为大家带来php 如何截取字符串最后两个字符?的相关内容。

在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,介绍一个简单例子。

使用方法:

1 2 $keyword='查找(计组实验)' $need=getNeedBetween($keyword, '(' , ')' );

运行该程序之后:

1 $need='计组实验';

下面就来完成上面用到的字符串截取函数。getNeedBetween。该函数可实现简单的从字符串($kw)截取两个指定的字符($mark1,$mark2)之间字符串,失败返回0,成功返回截取的字符串。

1 2 3 4 5 6 7 8 9 10 11 12 <?php function getNeedBetween($kw1,$mark1,$mark2){ $kw=$kw1; $kw='123′.$kw.'123′; $st =stripos($kw,$mark1); $ed =stripos($kw,$mark2); if(($st==false||$ed==false)||$st>=$ed) return 0; $kw=substr($kw,($st+1),($ed-$st-1)); return $kw; } ?>

以上就是我爱编程网小编为大家带来的内容了,想要了解更多相关信息,请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“如何利用PHP来截取一段中文字符串而不出现乱码”相关推荐
PHP中使用substr截取字符串出现中文乱码问题该怎么办
PHP中使用substr截取字符串出现中文乱码问题该怎么办

php字符串的截取1楼的代码有点问题截取中文会出现问题比如刚好是9个字母1个汉字你截取10位的话就会出现乱码所以截取含中文字符串时要用mb_substr代替substrfor($i=0;$i&lt;strlen($str);$i=$i+10){$string=mb_substr($str,$i,10);echo$string."&lt;br&gt;";}php获取字符串

2024-07-20 06:29:02
php截取字符串函数(PHP利用正则表达式截取字符串,preg_match_all()函数)
php截取字符串函数(PHP利用正则表达式截取字符串,preg_match_all()函数)

php截取字符串函数PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DE

2025-02-18 16:28:14
php文字截取函数 php截取字符串函数
php文字截取函数 php截取字符串函数

PHP利用正则表达式截取字符串,preg_match_all()函数&lt;?php$str = '2015-9-15 XXXXXXXX,2015-9-15 XXXXXXXX,2015-9-15 XXXXXXXX,2015-9-15 XXXXXXXX,';preg_match_all('/\d{4}-\d+\-\d+(.*?),/is', $str, $matched);echo "&lt;

2025-01-29 08:06:15
php截取字符串以及去掉html标记 在一个html文件中怎样使用php截取字符串
php截取字符串以及去掉html标记 在一个html文件中怎样使用php截取字符串

PHP截取某个字符串前面的数字编写一个PHP函数,专门用于提取字符串中某个字符前的所有数字。函数定义如下:functiongetNumbersBeforeChar($string,$char){$pattern='/(d+)(?='.preg_quote($char).')/';preg_match($pattern,$string,$matches);returni

2025-01-11 12:23:14
php程序如何截取字符串?
php程序如何截取字符串?

php截取指定2个字符之间字符串的方法本文实例讲述了PHP截取指定2个字符之间字符串的方法。分享给大家供大家参考。具体如下:在PHP中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了。这里给大家介绍一个简单例子。使用方法:$keyword='查找(计组实验)'$need=getNeedBetween($keyword,'(',')');运行该程序之

2024-12-24 17:39:48
php字符串中如何取指定字段的内容?
php字符串中如何取指定字段的内容?

php截取指定2个字符之间字符串的方法本文实例讲述了PHP截取指定2个字符之间字符串的方法。分享给大家供大家参考。具体如下:在PHP中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了。这里给大家介绍一个简单例子。使用方法:$keyword='查找(计组实验)'$need=getNeedBetween($keyword,'(',')');运行该程序之

2024-12-27 01:55:25
同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了 php问题……php截取字符串几个实用的函数
同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了 php问题……php截取字符串几个实用的函数

同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了需要从写该函数if($length&amp;&amp;strlen($string)&gt;$length){//截断字符$wordscut='';if(strtolower($encoding)=='utf-8'){//utf8编码$

2024-09-10 14:09:16
php提取字符串函数 PHP截取一个字符串里某个符号前面的字符串
php提取字符串函数 PHP截取一个字符串里某个符号前面的字符串

PHP截取一个字符串里某个符号前面的字符串$a值的长度,以及参数个数都是未定的.. 要去除掉最后一个&amp;符号以及后面所带的参数。经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了。我们先来看一下PHPsubstr

2024-08-26 04:40:18