Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

preg_replace sa nizom vrednosti

[es] :: PHP :: preg_replace sa nizom vrednosti

[ Pregleda: 1756 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

boccio
Boris Krstović
Spoonlabs.com
nbgd

Član broj: 7594
Poruke: 2458
*.vdial.verat.net

Sajt: bocc.io


+771 Profil

icon preg_replace sa nizom vrednosti19.01.2004. u 17:09 - pre 246 meseci
imam još jednu molbu za regex-ove...ovaj kod što sad pišem ih traži više nego što mi je ukupno u životu trebalo. posle ovog ili sedam da naučim regex-ove ko čovek, ili bataljujem sve i kupujem traktor... ovako ne ide, odoše mi i kosa i živci...

dakle, ako neko može da mi ispravi jednu prokletu liniju, skakaću od sreće...

imam niz reči koje treba da napravim linkovima. oni su u HTML "templejtu" obeleženi % "tagom"

dakle, imam sledeće:
Code:

$dest_keywords = array();
        
for ($i=0; $i<count($search_results[0]); $i++) {
    $dest_keywords[$i] = $search_results[1][$i];
}

ovde se $dest_keywords populiše linkovima (samo čista imena, posle im treba dodati .htm i anchor)

a onda treba u svako od 8 pojavljivanja %link_destination% taga da sukcesivno ubacim po jedan link iz niza.
Code:

for ($n=1; $n<9; $n++) {

$template_1 = preg_replace('/\%destination_link%/', 
    "<a href=\"http://www.pera.com/$dest_keywords[$n].htm\">$dest_keywords[$n]</a>", 
    $template_1); 
}    

međutim - šipak...na svih 8 se pojavljuje poslednji link u nizu. pretpostavljam zato što u on u svakoj iteraciji menja sve, tako da ostaje samo zadnji link iz poslednje iteracije. ali ne znam kako to da ispravim...pokušao sam bez for petlje sa $dest_keywords[$n++], i truba. regex to neće da parsuje :(



Jeff, one day you’ll understand that it’s harder to be kind than clever.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.vdial.verat.net

Sajt: localhost


+5 Profil

icon Re: preg_replace sa nizom vrednosti19.01.2004. u 20:04 - pre 246 meseci
1) da li si uopšte siguran da je niz $dest_keywords lepo popunjen? možda je greška u njegovom popunjavanju..


2) nije mi baš jasno kako se pojavljuje poslednji link u nizu, kada bi prvo pozivanje preg_replace() trebalo da zameni SVA pojavljivanja, a drugo pozivanje (i ostala) ne bi trebali da nađu ništa šta bi zamenili..

ovo možeš sprečiti dodavanjem još $limit parametra funkciji preg_replace() (vidi http://php.net/preg_replace) koji bi označavao da svaki put želiš da odradiš maximum jednu zamenu..


3) pogledaj multi korisnu funkciju preg_replace_callback() (vidi http://php.net/preg_replace_callback). tvoja callback funkcija će biti pozvana za svaki nađeni deo texta koji odgovara paternu, pa joj možeš raditi šta želiš ;)

 
Odgovor na temu

boccio
Boris Krstović
Spoonlabs.com
nbgd

Član broj: 7594
Poruke: 2458
*.ptt.yu

Sajt: bocc.io


+771 Profil

icon Re: preg_replace sa nizom vrednosti19.01.2004. u 21:21 - pre 246 meseci
resio sam problem sa limit. hvala na pomoci :)


Jeff, one day you’ll understand that it’s harder to be kind than clever.
 
Odgovor na temu

[es] :: PHP :: preg_replace sa nizom vrednosti

[ Pregleda: 1756 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.