Trim

Trim

计算机函数
trim()函数移除字符串两侧的空白字符或其他预定义字符。[1]功能除去字符串开头和末尾的空格或其他字符。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。
    中文名: 外文名:Trim 适用领域: 所属学科: 属性:函数 参数:string、charlist 相关函数:ltrim()、rtrim() 属于:空白字符或其他预定义字符

相关函数

ltrim()-移除字符串左侧的空白字符或其他预定义字符。

rtrim()-移除字符串右侧的空白字符或其他预定义字符。

语法

string trim (string $str [,string $charlist ])

技术细节

版本升级:

相比PHP4.1.0之下,增加了charlist参数。

实例介绍

$text = "ttThese are a few words :) ... ";

$binary = "x09Example stringx0A";

$hello = "Hello World";

var_dump($text,$binary,$hello);

print "n";

$trimmed = trim($text);

var_dump($trimmed);

$trimmed = trim($text," t.");

var_dump($trimmed);

$trimmed = trim($hello,"Hdle");

var_dump($trimmed);

// trim the ASCII control characters at the beginning and end of $binary

// (from 0 to 31 inclusive)

$clean = trim($binary,"x00..x1F");

var_dump($clean);

?>

结果如下:

string(32) " These are a few words :) ... "

string(16)" Example string

"

string(11)"Hello World"

string(28) "These are a few words :) ..."

string(24) "These are a few words :)"

string(5)"o Wor"

string(14)"Example string"

Example #2 Trimming array values with trim()

function trim_value(&$value)

{

$value = trim($value);

}

$fruit = array('apple','banana ',' cranberry ');

var_dump($fruit);

array_walk($fruit,'trim_value');

var_dump($fruit);

?>

上例结果如下:

array(3){

=>

string(5)"apple"

=>

string(7)"banana "

=>

string(11)" cranberry "

}

array(3){

=>

string(5)"apple"

=>

string(6)"banana"

=>

string(9)"cranberry"

}

另外,rtrim,ltrim用法与trim用法相同。唯一的差别是ltrim去除左边的空格,rtrim去除右边的空格。这个从其首字母不难看出。

SQLTRIM函数

定义和用法

SQL中的TRIM函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:

MySQL: TRIM(),RTRIM(),LTRIM()

Oracle: RTRIM(),LTRIM()

SQL Server: RTRIM(),LTRIM()

各种 trim 函数的语法如下:

LTRIM(字串):将字串左边的空格移除。

RTRIM(字串): 将字串右边的空格移除。

TRIM(字串): 将字串首尾两端的空格移除,作用等于RTRIM和LTRIM两个函数共同的结果。

ALLTRIM(字串):将字串左右边两边的空格移除。

实例

例1:

SELECT TRIM(' Sample ');

结果:

'Sample'

例2:

SELECT LTRIM(' Sample ');

结果:

'Sample '

例3:

SELECT RTRIM(' Sample ');

结果:

' Sample'

JAVA trim()方法

JAVA中的trim()是去掉首尾空格

例:

String str = " test trim";

System.out.println(str);

System.out.println(str.trim());

输出结果为:

test trim 这行的首部空格留着

test trim 这行首尾空格被去掉,但是中间的还保留

ASP trim()函数

ASP中的trim()函数的作用是去掉字符中左右两端的空格

例:

Dim MyVar

MyVar = Trim(" test trim ")

MyVar的值为"test trim"

ASP.NET trim()函数

.net 中Trim()函数的作用是从当前 System.String 对象的开始和末尾移除所有空白字符后保留的字符串。

另外还有

TrimStart(params char[] trimChars) //从当前 System.String 对象移除数组中指定的一组字符的所有前导匹配项。

TrimEnd(params char[] trimChars) //从当前 System.String 对象移除数组中指定的一组字符的所有尾部匹配项。

结果:

newStr1等于"Hello Word !"

newStr2等于"Hello Word ! "

newStr3等于" Hello Word !"

SSDTRIM

原理

原本在机械硬盘上,在删除数据时,系统只会在逻辑地址表的这个位置做个标记,说明这里应该是没有东西了,以后新的数据可以放在这个逻辑位置上。系统并不会发送任何请求给硬盘,因为下次在这个逻辑位置写入新数据时,系统可以直接找到磁盘上对应的物理位置,将硬盘上该处的无用数据复盖,因此才有数据恢复的可能。所以对于硬盘的物理内容,在删除文件时其实并没有发生任何变化。

对于固态硬盘(SSD),由于闪存的固有特性,更新页之前必须要擦除相关块。如果不开启TRIM,在文件系统中早已被删除的块在物理上还存放着原来的数据,且SSD主控无法知道这个块已经无用,直到有新的数据要求写入该块。物理上存放已无用的数据会在SSD垃圾回收(GC)的过程中被当成有用数据对待,被这对于固态硬盘的寿命是非常不利的,同时会导致其工作效率和性能的降低。

而当Windows识别到SSD并确认SSD支持TRIM后,在删除数据时,向SSD发出TRIM指令,通知SSD主控对应的页面已经无效,SSD启动GC(垃圾回收)机制时,就可以及时释放这些页面。未来有数据需要写入的时候,直接就可以写入了。

所以说,TRIM只是避免SSD在垃圾回收时将无用数据当成有用数据来搬运,从而延长了SSD的寿命。以上就是Trim的原理以及真正作用。

验证方法

win7下Trim验证方法

其实Windows 7默认状态下Trim指令是开启的,如果想查询当前的Trim指令状态,我们可以在管理员权限下,进入命令提示符界面,输入“fsutil behavior QUERY DisableDeleteNotify”,之后会得到相关查询状态的反馈。在这里,提示为“DisableDeleteNotify = 0”即Trim指令已启用;提示为“DisableDeleteNotify=1”即为Trim指令未启用。

并不是操作系统提供Trim指令支持,所有SSD都能享受到Trim技术所带来的好处,这还需要固态硬盘的固件支持才能实现。一些主要的固态硬盘主控芯片厂商已经提供了支持Trim的固件(例如英特尔"X25-M G2"),不过也有厂商开发出不依赖操作系统的垃圾回收技术,通过回收不再使用的闪存区块加入负载平衡算法,防止固态硬盘在长期使用后速度下滑,并延长闪存使用寿命,过程完全在固态硬盘内部完成。

相关词条

相关搜索

其它词条