Autor | Zpráva | ||
---|---|---|---|
huff Profil * |
#1 · Zasláno: 16. 1. 2010, 17:48:13
Čuste. Mám tuto konstrukci:
$tmp_source = preg_replace("/\{mod_(.+)\}/", $instance->loadModule('$1', $md), $tmp_source); Apostrofy jsem tam teď dal jako poslední možnost, a také to nefunguje. Potřebuji vlastně tu proměnnou, kterou mi vrátí první závorka dostat do té funkce jako parametr, ale nejde to, poradíte někdo? |
||
Majkl578 Profil |
#2 · Zasláno: 16. 1. 2010, 17:51:38
K tomu slouží preg_replace_callback.
Příklad: var_dump(preg_replace_callback('~([0-9]+)~', function($matches) { return strrev($matches[1]); }, 'foo 12 bar 5541 baz'));//otočí čísla |
||
huff Profil * |
#3 · Zasláno: 16. 1. 2010, 18:03:33
Majkl578:
Děkuji ale, stále jsem to bohužel nepochopil, nevím kam mám dát co. Mohl bych požádat o podrobnější vysvětlení? |
||
Majkl578 Profil |
#4 · Zasláno: 16. 1. 2010, 18:56:20
Řeknu to jinak a jednoduše, druhý argument funkce preg_replace_callback je callback (funkce nebo metoda objektu), která jako argument dostane pole nalezených hodnot dle regulárního výrazu. Tato funkce/metoda by měla obsahovat i return, které vrátí hodnotu, kterou bude daná položka nahrazena.
|
||
huff Profil * |
#5 · Zasláno: 16. 1. 2010, 19:09:08
Majkl578:
huff: „která jako argument dostane pole nalezených hodnot dle regulárního výrazu.“ v proměnné $matches? |
||
huff Profil * |
Ještě teď mám další problém:
$tmp_source = preg_replace_callback("/\{mod_(.+)\}/", "functions::getMatches", $tmp_source); V tomto regulárním výrazu chci vybraz všechno co je za {mod_, bez poslední složené závory, dělám to evidentně špatně, protože, pokud mám dvě složené žávorky vedle sebe a nejsou odděleny koncem řádku, vezme je to obě. Mohl by jste mi tu někdo prosím upravit ten regulární výraz tak, aby to bylo nějak takto: začínat na "{mod_" vyjmout do závorky to za mod, a končit na "}" Díky. Moderátor Majkl578: Na tento problém navazuje a odpovídá téma Pomoc s regulárním výrazem.
|
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0