本文目录一览:
php截取字符 怎样遇空格停止并只截取第一个空格前的内容?
用charindex和substring可以实现截取
顺便说一句,如果你得空格不是固定的,你就得定义一个字符串为"a,b,c,d,e,f.........z"
根据空格个数,获取列明,拼接语句.
PHP指字符数量截断,在后面加上省略号。
substr可以截断字符串,但是不能显示省略号,用 Smarty 的的 truncate 方法可以把页面的字符串截断并显示省略号。
如何利用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 中文字符串截取问题
preg_split()函数的意思。(意思为通过一个正则表达式分隔给定字符串)
array_splice() 函数与 array_slice() 函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。
join() 方法用于把数组中的所有元素放入一个字符串。
?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?
会输出
Array(
[0] = Array (
[0] = hypertext
[1] = 0
)
[1] = Array (
[0] = language
[1] = 10
)
[2] = Array (
[0] = programming
[1] = 19
)
)