请输入您要查询的百科知识:

 

词条 Trim
释义

简介

PHP4,PHP5中的trim():

功能除去字符串开头和末尾的空格或其他字符。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。

语法:

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

函数的返回值是一个去除开头和结尾空格的字符串。但是,如果不加第二个参数,trim()函数将去除以下这些字符:

" "(ASCII 32(0x20)),一个空格

"\\t"(ASCII 9(0x09)),tab键

"\"(ASCII 10 (0x0A)), 换行符

"\\r" (ASCII 13 (0x0D)),a carriage return.

"\\0" (ASCII 0 (0x00)),空字符

"\\x0B" (ASCII 11 (0x0B)),a vertical tab.

参数:

str

需要去空格的字符串。

charlist

返回值:

去除空格的字符串。

版本升级:

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

举例:

<?php

$text = "\\t\\tThese are a few words :) ... ";

$binary = "\\x09Example string\\x0A";

$hello = "Hello World";

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

print "\";

$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()

<?php

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) {

[0]=>

string(5) "apple"

[1]=>

string(7) "banana "

[2]=>

string(11) " cranberry "

}

array(3) {

[0]=>

string(5) "apple"

[1]=>

string(6) "banana"

[2]=>

string(9) "cranberry"

}

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

========================================================================

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

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

Oracle: RTRIM(), LTRIM()

SQL Server: RTRIM(), LTRIM()

各种 trim 函数的语法

TRIM([[位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。

LTRIM(字串): 将所有字串起头的空白移除。

RTRIM(字串): 将所有字串结尾的空白移除。

例1:

SELECT TRIM(' Sample ');

结果:

'Sample'

例2:

SELECT LTRIM(' Sample ');

结果:

'Sample '

例3:

SELECT RTRIM(' Sample ');

结果:

' Sample'

2,Trim又叫Disable Delete Notify。Trim启用的验证方法:用管理员权限打开CMD,输入fsutil behavior QUERY DisableDeleteNotify

DisableDeleteNotify = 0 Trim启用

DisableDeleteNotify = 1 Trim未启用

Trim的作用

原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。

这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。

而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。

以上就是Trim的原理以及真正作用。

注意:如果SSD组RAID0后,将失去Trim功能

win7下Trim启用的验证方法

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

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

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 21:22:51