Autor | Zpráva | ||
---|---|---|---|
prochazka.zde.cz Profil * |
#1 · Zasláno: 14. 6. 2006, 19:50:46
dobrý den,
mam takovy probemek. pomoci regulerniho vyrazu si pole rozsekam ale je k dispozici jeho nazev "STRING" kdyz chsi snem pracovat: preg_match_all($re_phrase, $query, $pole); $pocet_prvku = SizeOf($pole); $a=0; $sBufferA = Trim($pole[$a]); tak me to vrati vzdy hodnotu value ale ja chci ten nazev. Jak toho mam docilit? Pripadne jak mam rici funkci preg_match_all aby vysledek ukladala do klice value a ne do string? |
||
Leo Profil |
#2 · Zasláno: 14. 6. 2006, 20:25:20
Nechapu to vubec jen ja nebo jeste nekdo jiny? Leo
|
||
djlj Profil |
#3 · Zasláno: 14. 6. 2006, 20:47:59
Taky to nechápu...
|
||
prochazka.zde.cz Profil * |
#4 · Zasláno: 15. 6. 2006, 05:34:53
kod:
$query = 'amiga +pokus-nevim "ahoj kuk" bez_mezery + \'aaa nnn\'' ; preg_match_all($re_phrase, $query, $pole); $pocet_prvku = SizeOf($pole); $sBufferA = Trim($pole[$a]); $sBufferB = Trim($pole[$a + 1]); spuste si predchozi kod. Pole "POLE" ma 10 prvku. Ale funkco sizoof me rekne ze mam jen jeden prvek. prvek s indexem 0 je string amiga ale me se vrati v promene $sBufferA hodnota 0, cili VALUE a ne STRING v promene sBufferB se nevrati nic protoze value nema zadnou hodnotu i kdyz STRING ma hodnotu +. Co stim? |
||
assassin Profil |
#5 · Zasláno: 15. 6. 2006, 07:18:20
Povedal by som, ze preg_match_all vracia minimalne dvojrozmerne pole...
$match['cislo_masky_v_regularnom_vyraze']['cislo_zhody'] a ked zadas flag PREG_SET_ORDER, tak sa tie dve prvky prehodia... takze ty nemas pocet prvkov, ale pocet masiek v regexpe... |
||
24k Profil * |
#6 · Zasláno: 15. 6. 2006, 15:25:11
co je masiek?
|
||
prochazka.zde.cz Profil * |
#7 · Zasláno: 15. 6. 2006, 17:36:46
to assasin: Moc diky. hodne jsi me pomohl. Jsem si neuvedomil ze je to dvojrozmerne pole. Tak jsem vybec neuvazoval. Sice s tim flagem to take faka ale udelal jsem to takto:
$re_phrase = '([a-zA-Z0-9 \_]+|[+-]|[ ]?["]+[ ]+["]|[ ]?[\']+[ ]+[\'])'; $query = 'amiga +pokus-nevim "ahoj kuk" bez_mezery + \'aaa nnn\'' ; //testovaci string preg_match_all($re_phrase, $query, $pole); $pocet_prvku = SizeOf($pole[0]); $sBufferA = Trim($pole[0][$a]); $sBufferB = Trim($pole[0][$a+1]); uz to faka ok..... |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0