相關函數
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"),不過也有廠商開發出不依賴操作系統的垃圾回收技術,通過回收不再使用的閃存區塊加入負載平衡算法,防止固态硬盤在長期使用後速度下滑,并延長閃存使用壽命,過程完全在固态硬盤内部完成。



















