嗨我有简单的拆分脚本,我在新行上拆分了一个字符串,其中有许多新行字符。下面是代码:拆分功能不能在新行上工作
<?php
$string = $argv[1]; // CASE 1: COMMAND LINE ARGUMENT.
echo "String is : $string\n";
//$string = 'Hello Shakir\nOkay Shakir\nHow are you ?'; //CASE2: SINGLE QUOTE.
$string = "Hello Shakir\nOkay Shakir\nHow are you ?"; //CASE 3: DOUBLE QUOTE.
$lines = array();
$lines = split("\n", $string);
foreach ($lines as $line) {
echo "line is : $line\n";
//var_dump($line);
}
?>
它,当我在代码中使用CASE 3工作正常,但是当我使用两种或CASE1 CASE 2(仅CASE 3个正常工作)它不工作。任何人都可以谈谈这件事吗?
这是我的命令行上运行(Linux机器):
php my_script.php "Hello Shakir\nOkay Shakir\nHow are you ?"
在这种情况下当我打印$的argv [1],将打印整个字符串,但它同样将其视为CASE2(用单引号)。
UPDATE:
你们中许多人说,这个问题的原因是什么,而不是它的答案。但是,知道原因帮助我解决了这个问题。所以答案是:
答:
在双引号使用\ N( “\ n”)相反的,使用单引号( '\ n'):
$lines = split('\n', $string);
OR
$lines = explode('\n', $string);
然而分裂计数'\'也是一个角色,我不知道为什么。但爆炸是正确的。由于拆分被弃用,我没有对此做过多的研究。
谢谢所有让我知道split已被弃用的人。
不要使用'split'。对于正则表达式,它不推荐使用'preg_split',而对于字符串使用'explode'。 – 2012-01-05 15:24:04
似乎为我工作...虽然,我会使用explode()而不是拆分()。 – Nick 2012-01-05 15:25:48
@尼克你甚至读过这个问题..? – 2012-01-05 15:29:39