2010-06-19 60 views
5

我想將一個像reallyreallyreallyreallyreallylongfilename這樣的長字符串變成類似reallyreallyre...yreallyreally的東西。減少一個PHP字符串的長度並插入一個省略號

基本上,找到字符串的中間部分,並替換所有字符串,直到字符串的長度爲< 30個字符包括一個省略號以表示字符串被替換的部分。

這是我的代碼,我已經試過這樣:

function cutString($input, $maxLen = 30) 
{ 
    if(strlen($input) < $maxLen) 
    { 
     return $input; 
    } 

    $midPoint = floor(strlen($input)/2); 
    $startPoint = $midPoint - 1; 

    return substr_replace($input, '...', $startPoint, 3); 
} 

找到字符串的中心和替換.字符兩邊但事情是我不知道如何使它將其縮減爲30個字符,或者其他$maxLen

希望你明白我的問題,我不認爲我在解釋這8)

由於做了很好的工作。

回答

8

如何:

if (strlen($input) > $maxLen) { 
    $characters = floor($maxLen/2); 
    return substr($input, 0, $characters) . '...' . substr($input, -1 * $characters); 
} 
+0

這只是增加了一個'...'字符串的前面,所以輸出'... reallyreallyreallyreallyreally'。 – 2010-06-19 17:29:43

+2

呃,它應該把'...'放在字符串James的中間,那裏有兩個substr調用。 – Amber 2010-06-19 17:32:08

+0

我知道有。但是,如果我將該代碼放入我的'cutString'函數中,它將返回一個字符串的前面帶有省略號的字符串。 – 2010-06-19 17:35:09

相關問題