Autor Zpráva
Fisak
Profil
Dobrý den, použil jsem tento skript:

        $files = array('config-db.ins', 'config-function.ins');
        $dlUrl = 'http://adresa.cz/update/syst_file/';
 
        foreach ($files as $file){
        $file_exp = explode(".ins", $file);
          file_put_contents($file_exp[0].".php", file_get_contents($dlUrl . $file)); 
        }
což funguje ale když to chci brát z jiného souboru a rozdělovat pomocí explode do polí tak to nefunguje..

        $files = explode(";", get_file_version());
        $dlUrl = 'http://adresa.cz/update/syst_file/';
 
        foreach ($files as $file){
        $file_exp = explode(".ins", $file);
          file_put_contents($file_exp[0].".php", file_get_contents($dlUrl . $file)); 
        }
nevěděl by prosím někdo co s tím? Předem děkuji za odpovědi..


Respektive ukáže se mi tam jen jeden výsledek a to ten první.
Tori
Profil
Co za funkci je get_file_version? Není tam kromě středníku i jiný oddělovač (středník + \n)? (Jinak podle jejího názvu není zrovna zřejmé, že by měla vracet nějaký seznam souborů.)
Fisak
Profil
function get_file_version() {
    
  $content = file_get_contents('http://adresa.cz/update/syst_file.ins');
  $echo_database = preg_replace('#[^0-9\a-z\-\_\;\/\.]#ui', '', $content);
  return $echo_database;
    
    
}
a syst_file.ins:
system/config-db.ins;
system/config-function.ins;
system/config-plugins.ins;
system/core.ins;
system/opconfg.ins;
Radek9
Profil
Fisak:
Jak poznamenala Tori, je tam ještě nový řádek. Vždycky tu proměnnou $file prožeň funkcí trim() a ověř, jestli ta proměnná není prázdná (kvůli středníku na konci).
Tori
Profil
Fisak:
V reguláru je navíc lomítko před a-z, takže se to asi bere jako 0x0A - "z", takže v povoleném rozsahu jsou i zalomení řádku a neodstraní se. Jinak většina escapování mi tam připadá zbytečná, ale je to jen můj názor.
Jan Tvrdík
Profil
Tori:
Jinak většina escapování mi tam připadá zbytečná
Většina? Já bych řekl, že všechno escapování je tam zbytečné, akorát spojovník se musí dát na konec:

preg_replace('#[^0-9a-z_;/.-]#i', '', $content);

Případně to jde ještě zjednodušit na:

preg_replace('#[^\w;/.-]#', '', $content);

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: