2011-04-07 85 views
2

「Lorem Ipsum只是印刷和排版行業的虛擬文本。」在第一個「。」之前得到一個字符串。用PHP

「Lorem存有是印刷和排版行業的簡單虛擬文本。Lorem存有一直是業界標準的虛擬曾文本自1500年,當一個未知的打印機採取了類型的廚房,並爭相它不僅存活了五個世紀,而且還實現了電子排版的飛躍,基本保持不變,並於20世紀60年代推出了包含Lorem Ipsum段落的Letraset紙張,最近又推出了桌面出版軟件像Aldus PageMaker,包括Lorem Ipsum的版本。「

我們該怎麼做?在做這樣的事情時,有沒有一個很好的功能?

感謝

亞當·拉馬丹

+0

我們在真正的基本這裏由xD – dynamic 2011-04-07 18:44:47

+0

索裏,但我需要知道什麼人說這:),看到爆炸和strpos這就是爲什麼我喜歡stackoverflow。 – 2011-04-07 18:48:59

+1

你有沒有試過http://php.net/string?人們不會說你在手冊中找不到的東西 – 2011-04-07 18:59:31

回答

4
// fastest way 
echo substr($text, 0, strpos('.', $text)); 
4

您可以使用explode()函數分割它。

$sentences = explode (".", $text); 
// first sentence is in $sentences[0] 
4

什麼像這樣(其他人使用explode建議 - 所以我建議另一種解決方案)

$str = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."; 

if (preg_match('/^([^\.]*)/', $str, $matches)) { 
    echo $matches[1] . '.'; 
} 


正則表達式將:

  • 從字符串開頭開始:^
  • 匹配任何不是。 :[^\.]
  • 任意次數:[^\.]*

而且,正如你在輸出端需要一個..沒有被正則表達式匹配,你必須將它添加回使用時正則表達式發現了什麼。

+0

不應該是$匹配[0]嗎? – Canuteson 2011-04-07 18:46:53

+2

@Canuteson第一個被捕獲的*(在模式中的parethesis之間)*段在'$ matches [1]' - 這裏,因爲圓括號圍繞整個模式,儘管'$ matches [0]'和'$匹配[1]'將包含相同的東西 – 2011-04-07 18:48:23

+2

正則表達式,就像電鋸一樣,在某些情況下可能非常有用。就像這樣一個簡單的過程,這有點矯枉過正。 – 2011-04-07 18:54:14

5

對於PHP 5.3及更高版本,你可以使用帶的的strstr參數before_needle:

strstr($youstringhere, ".", true); 
相關問題