Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: explode ale inaczej...
Forum PHP.pl > Forum > Przedszkole
slash^
Witam

czy da się zrobić explode`a, aby rozdzielał string na tablicę poprzez nie jeden, a dwa różne znaki ?

np.
explode ('/', 'ab/cd/ef/'); zrobi mi [0]=> ab [1]=> cd [2] => ef

a chce otrzymac cos takiego, aby ze stringa:

'ab/cd\ef/gh' stalo sie [0]=> ab [1] => cd [2] => ef [3] => gh,

czyli krótko mowiąc znaki / i \ były pomijane a to co pomiedzy nimi wartosciami poszczegolnych rekordow tabeli...
Kuziu
najpierw użyj strreplace do zamiany znaków "/" na "\" a potem użyj explode lub split jak wolisz
tiraeth
  1. <?php
  2. $string = 'ab/cd/efghij/kl';
  3. $string = str_replace(&#092;"\", \"/\", $string);
  4. $array = explode(&#092;"/\", $string);
  5. ?>


zwróci tablicę smile.gif
bregovic
Nie możesz użyć do tego explode" title="Zobacz w manualu PHP" target="_manual - zato możesz zrobić tak:
  1. <?php
  2. $strData=&#092;"ab/cdef/gh\";
  3. $strData=str_replace('', '/', $strData);
  4. $arrData=explode('/', $strData);
  5. ?>

Możesz też użyć wyrażeń regularnych - ale nie używaj ich jeśli da sie je ominąć.

---Edit:
Tiraeth - byłeś szybszy tongue.gif
dr_bonzo
  1. <?php
  2. $strData=&#092;"ab/cdef/gh\";
  3. $Data_1 = explode( &#092;"\", $strData );
  4.  
  5. foreach ( $Data_1 as $i )
  6. {
  7. $new_tab = explode( &#092;"/\", $Data_1 );
  8. foreach ( $new_tab as $z )
  9. {
  10. $wynik[] = $z;
  11. }
  12. }
  13.  
  14. print_r( $wynik );
  15. ?>

Hmmm... jednak regexpy wygladaja lepiej smile.gif
slash^
dzięki za podpowiedzi smile.gif
bregovic
IMO uzywanie regexów w tym wypadku to przerost formy nad treścą. Armata na komara.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.