Autor Zpráva
I am
Profil *
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
Pouzi tutu vybornu pomôcku na odladenie regexp.
AM_
Profil
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
I am
RegEx funguje, delas spatne neco jineho.
AM_
Profil
bohyn
regex nefunguje, protože přečte použe část $_['...'], nikoli už hledanou hodnotu.
I am
Profil *
tak to funguje takhle:

preg_match_all("#_\['([a-zA-Z0-9_]*)'\]#", $old, $matches, PREG_SET_ORDER);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: