2016-02-29 24 views
0

我想:substr_replace和SUBSTR獲得最後炭返回

substr($string, 0, -1); 
substr_replace($string ,"",-1); 

但總是得到

,而不是我的字符串的最後一個字符????

我想比較字符串,並且stringTwo的最後一個字符總是缺失,所以我試圖找到與substr_replace或substr函數相同的字符串並刪除最後一個字符。

$ stringOne =「house」;

$ stringTwo =「hous」;

這是奇怪的一次又一次我得到 通過使用子字符串和substr_replace ...與mb_substr我可以刪除 ,但我如何檢查之前,如果我使用mb_substr或substr?

+0

你想做什麼?你想操作字符串還是隻返回最後一個字符? –

+0

最後一個字是什麼?也許這是一個多字節字符,你把它切成兩半?也許嘗試http://php.net/manual/en/function.mb-substr.php – chris85

+0

我更新了我的問題......這是奇怪的一次又一次我得到 通過使用substring和substr_replace ...與mb_substr我可以刪除 ,但是如果我使用mb_substr或substr做什麼之前我該如何檢查? –

回答

0

要獲取字符串的最後一個字符,只需使用substr method。 substr參數是substr(string $string, int $start, [,int $length])

這應該得到的最後一個字符:

echo substr($string, -1, 1); 

比較兩個字符串,其中最後一個字符從$ stringTwo刪除,你可以使用以下命令:

if($stringTwo == substr($stringOne, 0, -1)){} 
+0

這是奇怪的一次又一次我得到 通過使用子字符串和substr_replace ...與mb_substr我可以刪除 ,但如何使用mb_substr或substr? –

+0

如果您的目標是比較字符串,則不應要求任何字符串操作。只要比較你想要的字符串的哪些部分。 –

+0

你是說'substr($ stringOne,0,-1)'返回「 」? –

1

如果你處理ascii/bytes,得到最後一個字節,如

$last=substr($string,-1,1); 

但是如果你的字符串是unicode,它變得稍微複雜一些,使用mb_substr,與編碼去年放慢參數,例如用於UTF-8:

$last=mb_substr($string,-1,1,'UTF-8'); 

- 注意MBSTRING已被竊聽了很長的時間,和我親身經歷它失敗在一些表情符號上很長一段時間(從5.4到5.6,至少是從dotdeb得到的最新的mbstring ..它只能得到2或3個字節的4個字節,用於在utf-8中創建它們) - 不幸的是,沒有任何樣品準備好......任何人?)