2015-07-04 49 views
4

有一段話:PHP切條第1款

Lorem存有胡蘿蔔,增強大學生開發者,但他們occaecat時間和活力,如勞動力和肥胖。對於我們已經到了讓一個迷你米,使刺激措施,如果學區aliquip出她的任何一個nostrud運動,長壽的優勢。

希望僅顯示1個字符140(1底氣高於140的字符)。所以1個使用substr()功能在PHP中:

echo substr($str, 0, 140); // let say $str contain the paragraph above 

正如你可以在文本見上面,它切「怪」字變成「迷你」!,如果這是一個英文單詞,讓說,「奇異」它突然被信息「唱」,它會具有不同的意義,並將使整個句子廢話。

所以1決定削減的最後一句話,並不會有從substr()功能產生任何奇怪的話。

任何人都知道如何在最後一句substr()後切?

+0

你想一錘定音後切句子?迷你? – daremachine

+1

這是你在找什麼? [鏈接](http://stackoverflow.com/questions/10254260/how-to-truncate-a-string-in-php-to-the-sentence-closest-to-a-certain-number-of-c) – JungleZombie

+0

基本上你需要**(1)**檢查當前的子字符串正確地結束(下一個字符[141]是一個點)**(2)**,如果你都不行,用'strpos '尋找下一個點字符**(3)**從追加信141點炭一個新的子字符串中發現 –

回答

4

有幾個方法可供選擇,1假設。我想到的最簡單的一種是爆炸串入的話,去掉最後一個,然後再次爆他們,如下所示:

$str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."; 
if (strlen($str) > 140) 
{ 
    $str = substr($str, 0, 140); 
    $str = explode(' ', $str); 
    array_pop($str); // remove last word from array 
    $str = implode(' ', $str); 
} 

所以這將導致:

Lorem存有疼痛坐阿梅德,consectetur adipiscing ELIT,sed的tempor和活力,使勞動和悲傷,一些重要的事情要做eiusmod。爲了

還可以包括...字符串以得到具有連續性的感覺:

$str = $str . ' ...'; 
+0

一加一'$海峽= $海峽。 「......」「哦 –

+0

,不,不,不,不,我的意思是,切斷整個最後一句〜不只是過去的無感詞。 –

+1

嗯,你可以削減的空間的ponctuation代替。如果你想要更多的東西gramatical這將需要很多更多的智能腳本。 – Havenard