2013-03-31 27 views
-2

我的文字,例如:如果留下文字附加字符,請添加「...」。使用SUBSTR

$str = 'Hi there bla bla'; 

我用SUBSTR函數$海峽

substr($str, 0 , 20); 

我得到了全文,但如果我有較長的文字,讓說:

$str = "Hi there bla bla Hi there bla bla Hi there bla bla"; 
$substred = substr($str, 20, 21); 

我以爲我可以使用

if ($substred) { echo "..."; }; 

但它不工作..?

+3

_「但它不工作」_ - define _not working_。 –

+0

你會得到什麼輸出?這個對我有用。 – Mido

+0

[This](http://stackoverflow.com/q/15705059/1401975)甚至可能是更好的解決方案... – HamZa

回答

2
  1. 始終chceck,如果你想剝奪你的字符串中有這20個字符,以防止災害
  2. 如果你做檢查,你可以很容易添加條件添加...到您的字符串

代碼:

if (strlen($string) > 20) { 
    $string = substr($string, 0, 20) . "..."; } 
+0

你在說什麼災難? – nickb

+0

在某些情況下(根據我的經驗),當字符串比我想要去除的長度短時(如C#中的相似),代碼不起作用 – Lemurr

+0

沒錯。謝謝 – user1876234

0

你需要用點呼應出十足的聲明這樣

$str = "Hi there bla bla Hi there bla bla Hi there bla bla"; 
$sentence = substr($str, 0, 21); 
echo $sentence."...."; 
0

這是你在找什麼?你應該先計算一下,然後迴應結果。 http://codepad.org/OFo6MG6P

<?php 
$str = 'Hi there bla bla'; 
echo 'Original: "'.$str.'", long one: "'; 
substr($str, 0 , 20); 
$str = "Hi there bla bla Hi there bla bla Hi there bla bla"; 
$substred = substr($str, 20, 21); 
if (strlen($str) > 20) { echo $substred."...\""; }; 
?> 
0

IM假設你想呼應文字,但只是其中的一部分,如果它太長了,並添加「...」。這可能工作..

if (strlen("$txt")> 20){ 
    echo substr($txt,0,20)."..."; 
} 
0

這並不直接回答這個問題,但可能是有用的,如果字符串是要通過HTML顯示。它可以通過使用具有省略號值的樣式屬性text-overflow在CSS中完成。

$ str