В чем разница между split() и explode()?


Руководство по PHP для split() говорит

Эта функция была УСТАРЕВШИЙ начиная с PHP 5.3.0. Полагаться на эту функцию крайне не рекомендуется...Использовать explode() вместо.

Но я не могу найти разницы между split() и explode(). join() не был признан устаревшим, так что же получается?

Author: hakre, 2010-09-04

6 answers

Он устарел, потому что

  • explode() существенно быстрее, потому что он не разбивается на основе регулярного выражения, поэтому строку не нужно анализировать анализатором регулярных выражений
  • preg_split() быстрее и использует регулярные выражения PCRE для разделения регулярных выражений

join() и implode() являются псевдонимами друг друга и поэтому не имеют никаких различий.

 49
Author: BoltClock, 2010-09-04 05:16:29

split использует регулярное выражение, в то время как explode использует фиксированную строку. Если вам действительно нужно регулярное выражение, используйте preg_split, который использует PCRE (пакет регулярных выражений, который теперь предпочтителен в стандартной библиотеке PHP).

 4
Author: Matthew Flaschen, 2010-09-04 05:08:52

В split() вы можете использовать регулярные выражения для разделения строки. В то время как explode() разделяет строку на строку. preg_split - гораздо более быстрая альтернатива, если вам нужны регулярные выражения.

 1
Author: Russell Dias, 2010-09-04 05:09:31

Обе функции используются для разделения строки.

Однако Split используется для разделения строки с помощью регулярного выражения.

С другой стороны, функция Explode используется для разделения строки с использованием другой строки.

Например, взорвется ("это", "это строка"); вернет " Является строкой"

Например, Разделить ("+", "Это + строка");

 1
Author: , 2010-09-04 06:40:47

Функция split() разбивает строку на массив с помощью регулярного выражения и возвращает массив.

Функция explode() разбивает строку на строки.

Например:

<?php
    $split_array=split(':','I:P:S');
    $explode_array=split('and','I and P and S');
    print_r($split_array);
    print_r($explode_array);
?>

Результатом будет

Array ( [0] => I [1] => P [2] => S ) 
Array ( [0] => I [1] => P [2] => S )
 1
Author: rohini shinde, 2015-12-02 20:38:00

Оба используются для разделения строки на массив, но разница в том, что split() использует шаблон для разделения, тогда как explode() использует строку. explode() быстрее, чем split(), потому что он не соответствует строке, основанной на регулярном выражении.

 0
Author: Sampath, 2015-12-02 08:13:39