词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。