Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dzielenie łańcucha znaków ...
Forum PHP.pl > Forum > PHP
Liekkio
wymysliłam sobie pewen algoryt, do którego trzeba mi funkcji... ale po przeszukaniu tony manuali (po angielsku - sic!) Stwierdzam, ze albo brakuje mi umiejętności, albo cierpliwości winksmiley.jpg

problem jest taki: mam łańcuch tekstowy w postaci: (zwróćcie uwagę na cudzysowy)

wyraz1 wyraz2 "długie wyrażenie" wyraz3 "inne wyrażenie" wyraz4


i przydałaby się funkcja która rozbije mi ten łańcuch do tablicy, żeby każdy element i każde wyrażenie (całe) było osobnym jej elementem, tj. zgodnie z powyższym przykładem tablica miałaby wyglądać tak:

$tab[0]="wyraz1"
$tab[1]="wyraz2"
$tab[2]="długie wyrażenie"
$tab[3]="wyraz3"
$tab[4]="inne wyrażenie"
$tab[5]="wyraz4"


ktoś ma jakiś pomysł?
dag
Hmm wyrazenia regularne, explode....questionmark.gif
Liekkio
no właśnie nie wiem jak do tego miałaby być zastosowana fcja explode, bo dzielenie łańcucha w oparciu o spacje przy podanym przykładzie się nie sprawdza, a wyrażenia regularne.. cóż.. nawet mój znajomy stwierdził, że to byłby w tym przypadku masochizm (a o php ma z pewnością większe pojęcie ode mnie)
dag
Czemu? Od tego sa wlasnie wyrazenia regularne.

Podstawa jest oczywiscie dobrze opanowana umiejetnosc pisania i poslugiwania sie wyrazeniami regularnymi.

W ostatecznosci mozesz dzielic funkcja explode. Nie tylko po spacjach ale rowniez po cudzyslowiach "".
FiDO
Jaki tam masochizm winksmiley.jpg

  1. <?php
  2.  
  3. $str = 'wyraz1 wyraz2 \"długie wyrażenie\" wyraz3 \"inne wyrażenie\" wyraz4';
  4.  
  5. preg_match_all('#(\")?((?(1)[^\"]+|w+))(?(1)\")#', $str, $m);
  6.  
  7. ?>

Zobacz teraz co masz w $m, zdaje sie, ze pewna czesc tej tablicy Cie zainteresuje ;]

PS. przenosze na php.
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.