Autor | Zpráva | ||
---|---|---|---|
Krajka Profil * |
#1 · Zasláno: 9. 7. 2015, 06:50:15
Nedaří se mně vyvinout script, kterým bych přepisovat cesty k obrázkům přímo v HTML. Uložení obrázků na FTP sice proběhne, ale přepis všech obrázku v HTML nikoliv. Vždy se přepiše pouze jeden obrázek u všech na stejnou cestu, což je špatně.
Chce to nějak vymyslet, že při dalším cyklu se již použije ten upravený $popis od preg_replace, aby v dalším cyklu mohla proběhnout změna cesty dalšího obrázku. Poradíte, jak bych toho měl docílit. Nápady mně už došli :( $reg_ex_image_Url = '/< *img[^>]*src *= *["\']?([^"\']*)/i'; if(preg_match_all($reg_ex_image_Url, $popis, $url)) { for($c=0; $c<count($url[1]); $c++) { $nazev_noveho_souboru = get_basename($url[1][$c]); $popis = preg_replace($reg_ex_image_Url, '<img src="/data/'.$nazev_noveho_souboru, $popis); // ulozime soubor do cache NEpřímo if (!file_exists('../data/'.$nazev_noveho_souboru)) { $image_file = file_upload("[$c]http://www.example.cz".$url[1][$c]); file_put_contents("../data/".$nazev_noveho_souboru, $image_file); } } } |
||
tiso Profil |
#2 · Zasláno: 9. 7. 2015, 09:52:51
V
preg_match_all() použi flag PREG_OFFSET_CAPTURE , a samotný popis spracovávaj od konca (prehoď poradie vo for cykle).
|
||
Keeehi Profil |
#3 · Zasláno: 9. 7. 2015, 10:04:26
Nebo ten regex v preg_relace můžeš udělat více konkrétní a použít v něm jméno souboru kterým se právě v cyklu zabýváš. Samozřejmě to vyžaduje aby byly jména obrázků unikátní.
|
||
Časová prodleva: 10 let
|
0