Trim

Trim

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

相關函式

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參數。

實例介紹

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

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 對象移除數組中指定的一組字元的所有尾部匹配項。

例如:

1

2

3

4

5

6

7

8

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"),不過也有廠商開發出不依賴作業系統的垃圾回收技術,通過回收不再使用的快閃記憶體區塊加入負載平衡算法,防止固態硬碟在長期使用後速度下滑,並延長快閃記憶體使用壽命,過程完全在固態硬碟內部完成。

相關詞條

相關搜尋

熱門詞條

聯絡我們