Привет, У меня есть простой скрипт split, и я разделяю строку на новой строке, в которой есть много новых символов строк. Вот код:Функция split не работает над новыми строками
<?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);
}
?>
Он отлично работает, когда я использую СЛУЧАЙ 3 в коде, но он не работает, когда я использую либо case1 или СЛУЧАЙ 2 (только СЛУЧАЙ 3 работает нормально). Может ли кто-нибудь пролить свет на это?
Это, как я запустить его в командной строке (Linux машины):
php my_script.php "Hello Shakir\nOkay Shakir\nHow are you ?"
В этом случае, когда я печатаю $ ARGV [1], он печатает всю строку, но она относится к нему так же, как Вариант 2 (с одинарными кавычками).
UPDATE:
Многие из вас сказали, что причиной проблемы является и не является ответом на него. Однако знание причины помогло мне исправить это. Так что ответ:
ОТВЕТ:
Вместо того, чтобы использовать \ N в двойных кавычках ("\ п"), одинарные кавычки ('\ п'):
$lines = split('\n', $string);
OR
$lines = explode('\n', $string);
Однако раскол отсчеты '\' также как персонаж, и я не знаю почему. Но взорваться правильно. Поскольку раскол устарел, я не делал много исследований по этому вопросу.
Благодарим за всех, кто сообщил мне, что раскол устарел.
Не используйте 'split'. Он устарел в пользу 'preg_split' для регулярных выражений и' взрывается' для строк. –
, похоже, отлично работает для меня ... хотя вместо split() я использовал бы explode(). – Nick
@ Ник вы даже прочитали вопрос ..? –