Preg_replace - pri zhode zavolat funkciu s parametrom z pola – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Preg_replace - pri zhode zavolat funkciu s parametrom z pola – PHP – Fórum – Programujte.comPreg_replace - pri zhode zavolat funkciu s parametrom z pola – PHP – Fórum – Programujte.com

 

marioff0
Expert
2. 6. 2010   #1
-
0
-

cafte,

od rana sa dusim z tymto:

mam

$array=array(1=>"marioff",2=>"example.com");

$string="My name is %1:s. I am from %2:s.";


potrebujem pomocou preg_replace vymenit %([0-9])+:(.) za data v poli, ktore ale este musia prejst kontrolov v inej funkcii, ktora ju vrati v pripade potreby v zmenenej podobe... cize potrebujem zavolat funckiu kontrola s parametrami (value z $array,\\2)......

preg_replace("/%([0-9])+:(.)/e",kontrola($array[\\1],\\2), $string);


output by mal byt napr: My name is marioff. I am from example.com. Pole nie je globalne, preto potrebujem z neho vytiahnut konkretne value podla kluca \\1 ....

vie mi niekto pomoct?, vyskusal som uz snad vsetko mozne a nechce mi to ist....


Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
KIIV
~ Moderátor
+43
God of flame
2. 6. 2010   #2
-
0
-

co z manualu toto:

preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);

(prevod vsech tagu html na uppercase... hlavne dat funkci do zavorek aby se nevyhodnotila moc brzo - obzvlaste \\1 by asi moc nepochodilo v php)

tj. teoreticky by melo jet preg_replace("/%([0-9])+:(.)/e", "kontrola(\$array['\\1'],'\\2')" , $string);

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
marioff0
Expert
2. 6. 2010   #3
-
0
-

mam to....

ak by niekto nieco podobne potreboval:

preg_replace('/%([0-9])+:(.)/e',"kontrola(\$array['$1'],$2)", $string);



edit: KIIV: nevsimol som si tvoj prispevok, ale zda sa ze sme to zvladli "telepaticky" :) ... nerozumiem preco mi to od rana neslo, asi mi nejaka drobna chyba usla... teraz ma len trosku stve ten modifikator e, ktory ak si dobre pamatam, dost spomaluje tuto funkciu... :(

edit: spomaluje oproti preg_replace_callback...

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Podobná vlákna

[RE] pomoc s preg_replace — založil jatt

Preg_replace - dotaz — založil webdorf

PHP regex - preg_replace — založil Hynek Šturma

Preg_replace u neparovych tagu — založil tribalcz

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý