Autor Zpráva
Krajka
Profil *
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
V preg_match_all() použi flag PREG_OFFSET_CAPTURE, a samotný popis spracovávaj od konca (prehoď poradie vo for cykle).
Keeehi
Profil
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í.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0