2011-06-13 43 views
1

我有這段文字保存在一個變量:mindfuq上:星期天,2011年6月12日埋獵物約翰·桑福德埋PreyIn埋獵物,這個最新的約翰·桑福德通過刪除與爆炸功能的最後一行

共享戲劇特色是他最喜歡的主角,壞人的警察「獵手」盧卡斯達文波特,他從過去重新審視了一個冷酷的案件。他早年在職業生涯中遇到過的案件的受害者發現了
分享給朋友:| | |藝術 - 文學故事,RSS Feeds和Widgets通過Feedzilla。

我想刪除此文本的最後一行。我怎樣才能做到這一點explodestr_replace不適合我。

+2

你爲什麼要用'explode()'做呢? – binaryLV 2011-06-13 07:08:08

+2

順便說一句,這在哪裏解析XML? – deceze 2011-06-13 07:17:24

+1

如果他們中的任何一個人爲你工作,你應該考慮標記欺騙者或我的回答正確。 – Dan 2011-06-18 23:36:59

回答

9
$string = substr($string, 0, strrpos($string, "\n")); 

如果你絕對要使用explode

$string = join("\n", array_slice(explode("\n", $string), 0, -1)); 

兩種方法假定,有沒有最後的行後尾隨"\n",看到@ binaryLV的評論。

+4

我會在'strpos()'調用中用'rtrim($ string)'替換'$ string'。這樣,如果有任何尾隨的'\ n',那也無關緊要。儘管'\ r \ n'可能有一些問題,所以在調用substr()之前,可能需要添加'$ string = str_replace(「\ r \ n」,「\ n」,$ string)''。 – binaryLV 2011-06-13 07:11:28

0

如果內容不包含其他換行符,使用strstr()

$line = strstr(trim($text), "\n", true); // last arg true, to return before needle 

如果將有多個換行,並希望以編程方式刪除線:

$lines = explode("\n", trim($text)); 
unset($lines[count($lines) - 1]); // removes last line