Autor | Zpráva | ||
---|---|---|---|
I am Profil * |
#1 · Zasláno: 28. 5. 2009, 09:27:17
Ahoj mám řetězec
// Heading $_['heading_title'] = 'Contact Us'; // Text $_['text_address'] = 'Address:'; $_['text_email'] = 'E-Mail:'; $_['text_telephone'] = 'Telephone:'; a potřeboval bych z něj vytahnout heading_title lec tento výraz jsem napsal špatně, kde je chyba? preg_match_all("#\$_\['([a-zA-Z0-9_]*)'\]#", $old, $matches, PREG_SET_ORDER); $result = array(); foreach($matches as $match) { echo $match[1]; } |
||
srigi Profil |
#2 · Zasláno: 28. 5. 2009, 09:53:58
Pouzi tutu vybornu pomôcku na odladenie regexp.
|
||
AM_ Profil |
#3 · Zasláno: 28. 5. 2009, 11:43:17
Nešlo by řetězec prostě protáhnout funkcí eval a pak jednoduše přečíst hodnotu proměnné $_['heading_title'] ?
Samozřejmě záleží, odkud tento řetězec bereš, jestli je to důvěryhodný zdroj a nemusíš se bát, že ti tam podstrčí škodlivý kód. |
||
bohyn Profil |
#4 · Zasláno: 28. 5. 2009, 13:45:43
I am
RegEx funguje, delas spatne neco jineho. |
||
AM_ Profil |
#5 · Zasláno: 28. 5. 2009, 14:45:57
bohyn
regex nefunguje, protože přečte použe část $_['...'], nikoli už hledanou hodnotu. |
||
I am Profil * |
#6 · Zasláno: 28. 5. 2009, 16:16:51
tak to funguje takhle:
preg_match_all("#_\['([a-zA-Z0-9_]*)'\]#", $old, $matches, PREG_SET_ORDER); |
||
Časová prodleva: 15 let
|
0