PHP сообщает мне, что разделение устарело, какой альтернативный метод мне следует использовать?
92
explode
это альтернатива. Однако, если вы хотели разделить регулярное выражение , альтернативой будет preg_split
.
explode
это не альтернатива, так как он не выполняет ту же функциюsplit
, что и: разбивать строку по регулярному выражению . Для этого используйтеpreg_split
.split
метод не всегда принимает регулярные выражения. В .NET, Python методыString.Split()
/str.split()
принимают только фиксированную буквальную строку как иглу. Таким образом,explode
это правильно. Для тех, кто пришел из Java, JavaScript, Rubypreg_split
могут оказаться решением.split
устарела, поскольку является частью семейства функций, использующих регулярные выражения POSIX; все это семейство устарело в пользу функций PCRE (preg_*
).Если вам не нужны функции регулярных выражений, то
explode
это очень хороший выбор (и был бы рекомендован,split
даже если бы они не были устаревшими), если, с другой стороны, вам действительно нужно использовать регулярные выражения, тогда альтернатива PCRE простоpreg_split
.источник
preg_split
если вам нужно разбить по регулярным выражениям.str_split
если нужно разбить по символам.explode
если вам нужно разбить что-то простое.Также на будущее, если вы когда-нибудь захотите узнать, что PHP хочет, чтобы вы использовали, если что-то устарело, вы всегда можете проверить функцию в руководстве, и она подскажет вам альтернативы.
источник
Я хочу пояснить, что
preg_split();
это далеко от этого, ноexplode();
может использоваться так же, какsplit();
Ниже приводится сравнение между
split();
иexplode();
использованиемКак использовался split ()
<?php $date = "04/30/1973"; list($month, $day, $year) = split('[/.-]', $date); echo $month; // foo echo $day; // * echo $year; ?>
URL: http://php.net/manual/en/function.split.php
Как можно использовать explode ()
<?php $data = "04/30/1973"; list($month, $day, $year) = explode("/", $data); echo $month; // foo echo $day; // * echo $year; ?>
URL: http://php.net/manual/en/function.explode.php
Вот как мы можем это использовать :)
источник
Вместо этого вы можете использовать более простую функцию preg_match, она лучше и быстрее, чем все остальные.
$var = "<tag>Get this var</tag>"; preg_match("/<tag>(.*)<\/tag>/", $var , $new_var); echo $new_var['1'];
Выход:
Get this var
источник
Да, я бы использовал explode, или вы могли бы использовать:
preg_split
Какой метод рекомендуется использовать в PHP 6. Документация preg_split
источник
Если вы хотите разбить строку на слова, вы можете использовать explode () или str_word_count ().
источник
Была такая же проблема, но мой код должен работать как на PHP 5, так и на PHP 7 ..
Вот мой фрагмент кода, который решил эту проблему .. Введите дату в формате dmY с одним из разделителей "/. -"
<?php function DateToEN($date){ if ($date!=""){ list($d, $m, $y) = function_exists("split") ? split("[/.-]", $date) : preg_split("/[\/\.\-]+/", $date); return $y."-".$m."-".$d; }else{ return false; } } ?>
источник