2024-07-13 12:16:29 | 我爱编程网
/*
功能:截取全角和半角混合的字符串以避免乱码
参数:
$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 截断字符 后查找到一段代码。
各函数情况如下:
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语言。
我爱编程网(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.comphp字符串的截取1楼的代码有点问题截取中文会出现问题比如刚好是9个字母1个汉字你截取10位的话就会出现乱码所以截取含中文字符串时要用mb_substr代替substrfor($i=0;$i<strlen($str);$i=$i+10){$string=mb_substr($str,$i,10);echo$string."<br>";}php获取字符串
php截取字符串函数PHP中,字符串截取是非常常见的操作。通过使用substr函数,我们可以按照指定位置或长度获取字符串的一部分。以下是一些示例:首先,substr函数用于从指定位置开始取字符,如从字符串"ABCDEFGHIJKLMNOPQRSTUVWXYZ"的第5个字符开始取,直到字符串结束,结果为"BZYX"。接着,可以指定截取的长度,如从第9个字符开始取4个字符,得到"DE
PHP利用正则表达式截取字符串,preg_match_all()函数<?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 "<
PHP截取某个字符串前面的数字编写一个PHP函数,专门用于提取字符串中某个字符前的所有数字。函数定义如下:functiongetNumbersBeforeChar($string,$char){$pattern='/(d+)(?='.preg_quote($char).')/';preg_match($pattern,$string,$matches);returni
php截取指定2个字符之间字符串的方法本文实例讲述了PHP截取指定2个字符之间字符串的方法。分享给大家供大家参考。具体如下:在PHP中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了。这里给大家介绍一个简单例子。使用方法:$keyword='查找(计组实验)'$need=getNeedBetween($keyword,'(',')');运行该程序之
php截取指定2个字符之间字符串的方法本文实例讲述了PHP截取指定2个字符之间字符串的方法。分享给大家供大家参考。具体如下:在PHP中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了。这里给大家介绍一个简单例子。使用方法:$keyword='查找(计组实验)'$need=getNeedBetween($keyword,'(',')');运行该程序之
同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了需要从写该函数if($length&&strlen($string)>$length){//截断字符$wordscut='';if(strtolower($encoding)=='utf-8'){//utf8编码$
PHP截取一个字符串里某个符号前面的字符串$a值的长度,以及参数个数都是未定的.. 要去除掉最后一个&符号以及后面所带的参数。经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了。我们先来看一下PHPsubstr
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00