2010-09-04 18 views
28

Podręcznik PHP dla split() mówiJaka jest różnica między split() i explode()?

Ta funkcja została DEPRECATED jak PHP 5.3.0. Opieranie się na tej funkcji jest wysoce odradzane ... Zamiast tego należy użyć explode() .

Ale nie mogę znaleźć różnicy między split() i explode(). join() nie jest przestarzałe, więc co daje?

+3

Split daje ci fragmenty smyczków, a eksplodować daje fragmenty maszyn. Eh, prawdopodobnie nie ... :-) –

+0

@Peter Rowell: split daje ci dwa pasma włosów, a eksplodować daje odłamki. – BoltClock

+2

Oto nadchodzę! hehe :) –

Odpowiedz

48

To przestarzała ponieważ

  • explode() jest znacznie szybsze, ponieważ nie dzielone na podstawie wyrażenia regularnego, więc ciąg nie muszą być analizowane przez analizator składni regex
  • preg_split() jest szybsza i używa wyrażeń regularnych pcre dla regex dzieli

join() i implode() są aliasy od siebie i dlatego nie ma żadnych różnic.

+1

+1, który odpowiada na wszystkie jego pytania. – codaddict

+2

Więc zawiedli, kiedy nazwali to, widocznie? Wygląda na to, że powinno się nazywać ereg_split(). –

+1

@hopeseekr: PHP zawsze wymawia nazwy funkcji;) I tak, myślę, że można tak powiedzieć! – BoltClock

4

używa regex, a explode używa stałego łańcucha. Jeśli potrzebujesz regex, użyj preg_split, który używa PCRE (pakiet regex preferowany teraz w standardowej bibliotece PHP).

1

W split() możesz użyć wyrażeń regularnych, aby podzielić ciąg znaków. Podczas gdy explode() dzieli łańcuch z ciągiem. preg_split to znacznie szybsza alternatywa, jeśli potrzebujesz wyrażeń regularnych.

1

Obie funkcje służą do podziału ciągu.

Jednak Split służy do dzielenia ciągu za pomocą wyrażenia regularnego.

Z drugiej strony, Rozbijanie służy do dzielenia ciągu za pomocą innego ciągu.

E.g eksplodować ("to", "to jest ciąg"); powróci „jest ciągiem

np Split ("+", "+ To jest ciąg");

1

Funkcja split() dzieli łańcuch na tablicę za pomocą wyrażenia regularnego i zwraca tablicę.

Funkcja explode() dzieli ciąg na ciąg.

E.G:

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

Wynik będzie

Array ([0] => I [1] => P [2] => S) 
Array ([0] => I [1] => P [2] => S) 
+0

Cześć Johnny Przyjdź ostatnio !! –

+2

Nie jestem pewien, czy rozumiem tę odpowiedź. Nie rozumiem, co jest ilustrowane, w szczególności z tym: '$ explode_array = split ('i', 'I i P and S');' Linia używa również funkcji split() ... –

0

Obydwie służą do podziału ciągu na tablicy, z tą różnicą, że stosuje split() wzorzec dla rozszczepienia podczas explode() wykorzystuje łańcuch. explode() jest szybszy niż split(), ponieważ nie pasuje do łańcucha na podstawie wyrażeń regularnych.

Powiązane problemy