2014-10-28 75 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]; 
相关问题