首页 > 编程技术 > php

php rtrim(),substr()删除字符串最一个字符

发布时间:2016-11-25 16:48

我们利用这两个函数来删除字符串最后一个字符是有说法的,rtrim他有默认删除空格和一些特殊字符,但你也可以删除指定字符,页substr我们是取字符长度,自然只要取字符长度减一就行了如下实例。
*/

$str ='abcea';
echo rtrim($str,'a');


//方法二

echo '<br />'.substr($str,0,strlen($str)-1);

shuffle数组值随便排序函数
*/

$typename=20;
$rtitle='tt';
for( $i=0;$i<=20;$i++)
{
 $rtitle_rand = array($typename,$rtitle,$typename);
 shuffle($rtitle_rand);//数组进行随机排序
 echo $rtitle_rand['0'].'<br />';
}

$str = '数组1,数组2,数组3,数组4';
$array = explode(',',$str); //将规律字符串存入数组

explode() 函数把字符串分割为数组。

语法
explode(separator,string,limit)参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的最大数目。


$array = array_diff($array,array('数组2')); //删除指定值的数组项

array_diff()函数比较两个或多个数组,如果第一个数组中的键或值在第二个数组中并未出现,则以一个数组的形式返回这个未在第二个数组中出现的键和值。

syntax
语法
array_diff(array1,array2,array3...)

parameter
参数 description
描述
array1 required. the first array is the array that the others will be compared with
必要参数。指定第一个参与比较的基准数组
array2 required. an array to be compared with the first array
必要参数。指定与第一个数组相比较的第二个数组
array3 optional. an array to be compared with the first array
可选参数。指定与第一个数组相比较的第三个数组


$str = implode(',',$array); //将数组存为规律字符串

implode() 函数把数组元素组合为一个字符串。

语法
implode(separator,array)参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array 必需。要结合为字符串的数组。

说明
虽然 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。

echo $str;

 

 

substr(str,start,length); 

例:substr('php教程 is very good language',4,5);

输出为 is ve;

当start>str的长度,则返回为();

substr('php is very good language',26,5);

substr('php is very good language',4);

输出为        (空白)

输出为is v     (表明start和langth都为4)

当start为负值,则从str末尾出开始读起(*这时是从-1开始读,而不是从0开始),

substr('php is very good language',-4,5);

输出为uage

当length为负值时,length代表的是从末尾开始读,截取str的结束位置。

substr('php is very good language',4,-5);

输出为is very good lan

explode()把函数字符串分割为数组;

// example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $gecos."<br>"; // foo
echo $shell; // *

strrev()把字符串从后往前输出

echo strrev("june"); // outputs "enuj"

setlocalhost(content location)设置本地环境.content ,指定需要设置的场景信息常量有(

lc_all – 所有下属的常量
lc_collate – 排列顺序
lc_ctype – 字符分类和转换(例如:将所有的字符转换成小写或大写形式)
lc_messages – 系统信息格式
lc_monetary – 货币 / 通货格式
lc_numeric – 数值格式
lc_time – 日期和时间格式
);location,设置国家区域,例如,chs.

<?php教程
//测试时文件的编码方式要是utf8
$str='中文a字1符';
echo strlen($str).'<br>';//14
echo mb_strlen($str,'utf8').'<br>';//6
echo mb_strlen($str,'gbk').'<br>';//8
echo mb_strlen($str,'gb2312').'<br>';//10
?>

结果分析:在strlen计算时,对待一个utf8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14,在mb_strlen计算时,选定内码为utf8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6 .
利用这两个函数则可以联合计算出一个中英文混排的串的占位是多少(一个中文字符的占位是2,英文字符是1)
echo (strlen($str) + mb_strlen($str,'utf8')) / 2;
例如 “中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,则可以计算出“中文a字1符”的占位是10.
echo mb_internal_encoding();
php内置的字符串长度函数strlen无法正确处理中文字符串,它得 到的只是字符串所占的字节数。对于gb2312的中文编码,strlen得到的值是汉字个数的2倍,而对于utf-8编码的中文,就是3倍的差异了(在 utf-8编码下,一个汉字占3个字节)。
采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和 strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到utf-8的字符串$str长度,可以用 mb_strlen($str,'utf-8')。如果省略第二个参数,则会使用php的内部编码。内部编码可以通过 mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是php核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。

标签:[!--infotagslink--]

您可能感兴趣的文章: