2014-03-26 45 views
2

如何連接不同長度的預期文本?如何在CODEIGNITER中連接動態長度的文本?

我已經在我的控制器中放入了$this->load->helper('text');。在ellislab頁面顯示的最近的例子是:

$str = 'this_string_is_entirely_too_long_and_might_break_my_design.jpg'; 
echo ellipsize($str, 32, .5); 

據解釋,這將產生:this_string_is_e ... ak_my_design.jpg。

但是,在我的情況下,我沒有一個固定的字符串來連接。我需要連接的是一個描述元素,其長度可以根據用戶輸入而變化。

<td class="first" width="200px"><a href="<?= site_url() ?>/provider/view_job/<?= $row['job_id'] ?>"><?= $row['description'] ; ?></a></td> 

我應該如何調整行以使其結果連接在一起?

謝謝你在這裏的任何可能的幫助。

+0

我想你」重新使用「連接」不正確。連接兩個字符串意味着將它們一個接一個地連接在一起。在PHP中,這是通過點運算符完成的:$ a =「aaa」; $ B = 「BBB」; $ A $ B = 「AAABBB」。你能舉一個你想要實現的例子嗎? – Kryten

+0

哦,我明白了。我誤會了。是的,但我需要的幾乎相似。例如,用戶將輸入以下文本:「這是一個要顯示在我的頁面上的示例說明,這可能看起來很長,所以我認爲最好在可以通過在最後添加...來剪切它,但是一旦點擊,一個新的頁面將顯示整個描述。「這是我需要的。就像我之前寫的那樣,這個輸入的長度可以根據用戶的不同而不同。請幫助我弄清楚它。謝謝! – user3453256

回答

2

然後你可以使用PHP strlen函數:http://us2.php.net/strlen

的strlen - 獲取字符串長度

所以您的代碼/例如,你可以這樣做:

ellipsize($str, strlen($str)/2, .5); 

或在您的案例:

<?= ellipsize($row['description'], strlen($row['description'])/2, .5); ?> 

此外,如果你不想使用CodeIgniter的功能,你可以使用PHP的sub_str:http://us3.php.net/substr

substr("abcdef", 0, -1); // returns "abcde" 

因此,對於你的代碼會是這樣的:

<?= substr($row['description'], 0, strlen($row['description'])/2) . '...'; ?> 
+0

Hi @NikkoR。謝謝你的回覆..我試圖使用這種模式,但它沒有工作..這是我應該做的「連接」的線路。我應該「連接」的描述。 – user3453256

+0

@ user3453256你有沒有試過<?= ellipsize($ row ['description'],strlen($ row ['description']),.5); ?>? –

+0

我重試了,但結果相同..對我的表中顯示的文本沒有影響.. – user3453256

相關問題