| 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: 17 let
|
|||
0