2014-10-28 111 views
-1

我知道它可以通過爆炸功能實現,但不知道確切的方式。如何離開第一行並打印第二行php

<?php 
$pizza = "piece1 piece2 
      piece3 piece4 piece5 piece6"; 

$pieces = explode("<br>", $pizza); 

echo $pieces[1]; 
?> 

問題是沒有明顯的BR標籤的B/W peiece2和piece3 ....所以我的問題是如何在這種情況下,我怎麼能檢測第二行。

的例子中,從PHP曼努埃爾頁採取

http://php.net/manual/en/function.explode.php

+1

你用'\ n'試過了嗎? – 2014-10-28 14:15:27

+1

PHP不是HTML,典型PHP文件中的新行不是'
',但是如果文件被正確編碼(UTF-8),它就是'\ n'。所以'explode(「\ n」,$ string);'或'explode(PHP_EOL,$ string);'會更好 – 2014-10-28 14:19:40

+0

@elias:換行符與utf無關。這完全是一個操作系統的事情。 windows是'\ r \ n',unix是'\ n'等等...... – 2014-10-28 14:24:42

回答

1

爆炸與換行符轉義序列(\n),爲針:

$pizza = "piece1 piece2 
      piece3 piece4 piece5 piece6"; 

$pieces = explode("\n", $pizza); 

echo $pieces[1]; // output: piece3 piece4 piece5 piece6 

Playground

4

首先正常化所有換行符。

$pizza = str_replace(array("\n", "\r", "<br>", "<br />"), "\n", $pizza); 

然後做分割:

$pieces = explode("\n", $pizza); 

之後,使用array_slice()從第二行開始。

print_r(array_slice($pieces, 1)); 
1
$pizza = "piece1 piece2 
      piece3 piece4 piece5 piece6"; 

$pieces = explode(PHP_EOL, $pizza); 

echo $pieces[1]; 

活生生的例子: http://codepad.viper-7.com/JIqG99

+0

請注意,如果您的文件採用UTF-8編碼,則Windows服務器上的「PHP_EOL」將不起作用。該常量將包含OS行分隔符(在\ r \ n'上的窗口),所以不能保證在這裏工作(取決於文件編碼) – 2014-10-28 14:21:02

3

您的代碼失敗,因爲現在你想發生爆炸的子字符串(<br>)中不存在源字符串,$pizza英寸現在是什麼,是一個換行符,所以分裂了。

$pizza = "piece1 piece2 
      piece3 piece4 piece5 piece6"; 

$pieces = explode("\n", $pizza); 

echo $pieces[1]; 
相關問題