[ boccio @ 19.01.2004. 17:09 ] @
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 :(


[ -zombie- @ 19.01.2004. 20:04 ] @
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š ;)
[ boccio @ 19.01.2004. 21:21 ] @
resio sam problem sa limit. hvala na pomoci :)