split — Разделение строк с регулярным выражением в переполнении стека

Может кто-нибудь сказать мне, почему результат, который я получаю, отличается от книги?

Вот код

<?php
$address = "username@example.com";
$arr = split ("\.|@", $address);
while (list($key, $value) = each($arr))
{
echo "<br/>".$value;
}
?>

Вот результат, который говорится в книге.

username
@
example
.
com

Вот что я получил, когда попробовал код на своем компьютере

Deprecated: Function split() is deprecated in C:\Apache24\htdocs\test3.php on line 3

username
example
com

2

Решение

split() функция устарела с PHP 5.3.0.

использование preg_split() вместо.

Использование этого так же, как split(),

0

Другие решения

Книга неверна в том, что вы не должны получать сами символы-разделители, только «слова» между ними.

Предупреждение связано с split() о прекращении в пользу preg_split()поэтому вы должны заменить его на

$arr = preg_split ('/\.|@/', $address);

предотвратить предупреждение.

Я бы порекомендовал вам разделить на @ только сначала, и только потом разделить имя домена по .в противном случае вы не знаете, foo.bar@example.com или же foo@bar.example.com привести к

foo
bar
example
com

результат.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector