| 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: 11 let
|
|||
0