Trim 百科内容来自于: 百度百科

相关函数

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

语法

string trim (string $str [,string $charlist ])
参数 描述
string 必需。规定要检查的字符串。
charlist 可选。规定从字符串中删除哪些字符。如果省略该参数,则移除下列所有字符:
  • "\0" - NULL
  • "\t" - 制表符
  • "\n" - 换行
  • "\x0B" - 垂直制表符
  • "\r" - 回车
  • " " - 空格

技术细节

返回值:
返回已修改的字符串。
PHP 版本:
4+
更新日志:
在 PHP 4.1 中,新增了 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 "\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()
<?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函数

定义和用法

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 对象移除数组中指定的一组字符的所有尾部匹配项。
例如:
stringStr="HelloWord!";
stringnewStr1="";
stringnewStr2="";
stringnewStr3="";
newStr1=Str.Trim();//即可去掉该字符串头尾的所有空白字符
newStr2=Str.TrimStart('');//参数不能为空,只能是char类型,去掉字符前面的空白字符
newStr3=Str.TrimEnd('');//参数不能为空,只能是char类型,去掉字符后面的空白字符
Response.Write("newStr1等于\""+newStr1+"\"<br/>");Response.Write("newStr2等于\""+newStr2+"\"<br/>");Response.Write("newStr3等于\""+newStr3+"\"<br/>");

结果:
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"),不过也有厂商开发出不依赖操作系统的垃圾回收技术,通过回收不再使用的闪存区块加入负载平衡算法,防止固态硬盘在长期使用后速度下滑,并延长闪存使用寿命,过程完全在固态硬盘内部完成。
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定