Trim(函式)

Trim(函式)

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

trim() 函式移除字元串兩側的空白字元或其他預定義字元。

功能除去字元串開頭和末尾的空格或其他字元。函式執行成功時返回刪除了string字元串首部和尾部空格的字元串,發生錯誤時返回空字元串("")。如果任何參數的值為NULL,Trim() 函式返回NULL。

基本介紹

  • 外文名:Trim
  • 屬性:函式
  • 參數:string、charlist
  • 相關函式ltrim()、rtrim()
  • 屬於:空白字元或其他預定義字元。
相關函式,語法,技術細節,實例,SQL TRIM函式,定義和用法,實例,SSDTRIM,原理,驗證方法,

相關函式

  • 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)的過程中被當成有用數據對待,被這對於固態硬碟的壽命是非常不利的,同時會導致其工作效率和性能的降低。
而當作業系統識別到SSD並確認SSD支持TRIM後,在刪除數據時,向SSD發出TRIM指令,通知SSD主控對應的頁面已經無效,SSD啟動GC(垃圾回收)機制時,就可以及時釋放這些頁面。未來有數據需要寫入的時候,直接就可以寫入了。
所以說,TRIM只是避免SSD在垃圾回收時將無用數據當成有用數據來搬運,從而延長了SSD的壽命。以上就是Trim的原理以及真正作用。
並不是作業系統提供Trim指令支持,所有SSD都能享受到Trim技術所帶來的好處,這還需要固態硬碟的固件支持才能實現。一些主要的固態硬碟主控晶片廠商已經提供了支持Trim的固件(例如英特爾"X25-M G2"),不過也有廠商開發出不依賴作業系統的垃圾回收技術,通過回收不再使用的快閃記憶體區塊加入負載平衡算法,防止固態硬碟在長期使用後速度下滑,並延長快閃記憶體使用壽命,過程完全在固態硬碟內部完成。

驗證方法

win7下Trim驗證方法
其實Windows 7默認狀態下Trim指令是開啟的,如果想查詢當前的Trim指令狀態,我們可以在管理員許可權下,進入命令提示符界面,輸入“fsutil behavior QUERY DisableDeleteNotify”,之後會得到相關查詢狀態的反饋。在這裡,提示為“DisableDeleteNotify = 0”即Trim指令已啟用;提示為“DisableDeleteNotify = 1”即為Trim指令未啟用。

相關詞條

熱門詞條

聯絡我們