字符串在PHP 5.3的第一行有一個nice function似乎做什麼,我想:獲取在PHP
strstr(input,"\n",true)
不幸的是,服務器運行PHP 5.2.17和strstr
可選的第三個參數是無法使用。有一種方法可以在一行中實現以前的版本嗎?
字符串在PHP 5.3的第一行有一個nice function似乎做什麼,我想:獲取在PHP
strstr(input,"\n",true)
不幸的是,服務器運行PHP 5.2.17和strstr
可選的第三個參數是無法使用。有一種方法可以在一行中實現以前的版本嗎?
汗水解決方案最快的方法 – 2012-02-01 15:13:16
! – misterjinx 2012-02-01 15:21:31
我不會說它是最快的(我不會打擾自己與速度比較),但它顯然是*最短* – 2012-02-01 15:22:49
$first_line = substr($fulltext, 0, strpos($fulltext, "\n"));
或其他東西會做的伎倆。醜陋,但可行。
嘗試
substr(input, 0, strpos(input, "\n"))
試試這個:
substr($text, 0, strpos($text, chr(10))
您可以使用strpos
與substr
結合。首先找到角色所在的位置,然後返回該部分的字符串。
$pos = strpos(input, "\n");
if ($pos !== false) {
echo substr($input, 0, $pos);
} else {
echo 'String not found';
}
這是你想要的嗎?
l.e. 沒有注意到一行限制,所以這是不適用的方式。您可以按照其他人的建議,將這兩個函數合併到一行中,或者您可以創建一個自定義函數,並按照需要在一行代碼中調用該函數。你的選擇。
不是單行 – kinokijuf 2012-02-01 14:47:22
單行限制?這是有原因的嗎?你知道你總是可以創建自己的函數,稍後可以在代碼的「一行」中調用它,對嗎? – misterjinx 2012-02-01 14:51:53
echo str_replace(strstr($input, '\n'),'',$input);
list($line_1, $remaining) = explode("\n", $input, 2);
讓您輕鬆獲得頂線和內容留下,如果你想重複操作。否則按建議使用substr。
雖然 – 2012-02-01 15:05:56
您可以省略,但正如我所說,如果您想要最高的X行,然後使用我的原始「列表($ line_1,$剩餘)= explode(」\ n「,$ input,2);」將允許重複行動。有了這個編輯我的帖子是沒有意義的!?只是看起來像一個非常奇怪的編輯... – 2012-02-01 20:38:50
那麼對於隨後的調用strtok仍然會更好。 – 2012-02-02 08:02:35
現在已經晚了,但你可以使用爆炸。
<?php
$lines=explode("\n", $string);
echo $lines['0'];
?>
不依賴於換行符號的類型。
(($pos=strpos($text,"\n"))!==false) || ($pos=strpos($text,"\r"));
$firstline = substr($text,0,(int)$pos);
$ FIRSTLINE現在包含文本或空字符串第一線,如果發現沒有中斷符號(或打破符號的文本中的第一個符號)。
很多時候字符串操作將面臨一個空白行啓動瓦爾,所以不要忘了評價,如果你真的要考慮白線在字符串的首末或修剪。此外,爲避免操作系統錯誤,請使用PHP_EOL以跨平臺兼容的方式查找換行符(When do I use the PHP constant "PHP_EOL"?)。
$lines = explode(PHP_EOL, trim($string));
echo $lines[0];
您可能希望圍繞'\ n'使用雙引號。當我創建電子郵件內容時,用單引號了吧,'\ N'剛出來的時候作爲常規字符,而不是換行字符。 – Svish 2012-02-01 14:50:52
爲什麼'一行'限制? – misterjinx 2012-02-01 14:51:18