Autor Zpráva
prochazka.zde.cz
Profil *
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
Nechapu to vubec jen ja nebo jeste nekdo jiny? Leo
djlj
Profil
Taky to nechápu...
prochazka.zde.cz
Profil *
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
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 *
co je masiek?
prochazka.zde.cz
Profil *
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.....
Toto téma je uzamčeno. Odpověď nelze zaslat.

0