Autor | Zpráva | ||
---|---|---|---|
Fisak Profil |
#1 · Zasláno: 6. 5. 2014, 19:46:49
Dobrý den, momentálně řeším automatické aktualizace svého CMS systému. Chtěl bych vědět jestli lze nějakým způsobem stáhnout soubory z jiných adres a umístit/nahradit je na mém hostingu. Například mám na mém hostingu složku se soubory /system/ a soubory config.php, core.php, function.main.php a na adresa.cz/update/system/ mám ty samé soubory. Dokázal by mi někdo poradit jak je stáhnout systémově a nahradit je za ty co mám na svém hostignu popř. je jen přidat? Jestli je to vůbec možné. Předem děkuji za všechny odpovědi.
|
||
abc Profil |
<?php $files = array('config.php', 'core.php', 'function.main.php'); $dlUrl = 'adresa.cz/update/system/'; $saveUrl = '/system/'; foreach ($files as $file){ file_put_contents($saveUrl . $file, file_get_contents($dlUrl . $file)); } Doplnění: Pokud by nefungovalo file_get_contents, tak lze použít např. cURL
Doplnění 2: Pokud je třeba zachovat atomicitu, tak stažené soubory nejprve uložit jako např. config.php.tmp a po úplném uložení do souboru, tak smazat původní a přejmenovat .tmp na spravné
|
||
Fisak Profil |
#3 · Zasláno: 6. 5. 2014, 20:24:31 · Upravil/a: Fisak
No... bohužel to nejde. A s cURL nevím jak by to mělo vypadat.
Na vaše doporučení to nejdříve zkouším s příponou .tmp abych zjistil jestli se to uloží dobře atd. A místo: <?php //nacteni db require_once BASE . ("/system/config.php"); require_once BASE . ("/system/class/class.db.php"); DB::connect(array( 'driver' => _DB_TYPE_, 'host' => _DB_SERVER_, 'username' => _DB_USER_, 'password' => _DB_PASSWD_, 'database' => _DB_NAME_, 'charset' => _DB_CHARSET_, )); //prefix DB::getSubstitutes()->pref = _DB_PREFIX_; <br /> <b>Warning</b>: require_once(BASE/system/config.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in <b>/data/web/virtuals/30303/virtual/www/subdom/insignia/update/syst_file/system/config-db.php</b> on line <b>3</b><br /> <br /> <b>Fatal error</b>: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'BASE/system/config.php' (include_path='.:/data/web/virtuals/30303/virtual') in <b>/data/web/virtuals/30303/virtual/www/subdom/insignia/update/syst_file/system/config-db.php</b> on line <b>3</b><br /> |
||
abc Profil |
|||
Fisak Profil |
#5 · Zasláno: 7. 5. 2014, 12:14:32
Už jsem to zprovoznil ale bohužel soubory s názvem "nejakysoubor.php.ins" to bere jako php soubory a tudíž se mi zkopíruje pouze prázdný soubor. Když udělám to že soubor pojmenuji "nejakysoubor--php.ins" a pak nahradím --php za .php a .ins odstraním tak to funguje normálně.. ale bohužel to se mi zdá jako nešťastné řešení.. jinak:
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; } $files = explode(";", get_file_version()); $dlUrl = 'http://adresa.cz/update/syst_file/'; foreach ($files as $file){ $file = trim($file); if($file != "") { $file_exp = explode(".ins", $file); $file_next = Str_Replace("--", ".", $file_exp[0]); file_put_contents($file_next, file_get_contents($dlUrl . $file)); } } system/config-db--php.ins; system/config-function--php.ins; system/config-plugins--php.ins; system/core--php.ins; system/opconfg--php.ins; |
||
abc Profil |
„ale bohužel to se mi zdá jako nešťastné řešení“
Proč? Vždyť je to jedno, jak se jmenují pomocné soubory... Důležitý je výsledek. Klidně si je pojmenujte všechny config-db.ins a pak jen .ins -> .php |
||
Fisak Profil |
#7 · Zasláno: 7. 5. 2014, 16:56:45
Jedno to je ale pokud mám takhle upravit 100 souborů tak je to pro mě o dost složitější upravovat všude --php.ins než jen přidat .ins a to --php.ins nebo .php.ins tam musí bejt aby skript věděl jaký je to typ souboru.. .php nebo .html nebo .js atd...
|
||
Časová prodleva: 4 dny
|
|||
abc Profil |
#8 · Zasláno: 11. 5. 2014, 18:51:01
„Jedno to je ale pokud mám takhle upravit 100 souborů“
Tak to nedělej ručně? Už to umíš přejmenovat z .php.ins na .php, tak snad není problém udělat si skript, který soubory přejmenuje z .php na .php.ins |
||
Medvídek Profil |
#9 · Zasláno: 11. 5. 2014, 19:38:10
Fisak:
A není lepší si udělat nějaký balíčkovací systém a hodit to do zipu? Zip stáhnete, v php rozbalíte a nakopírujete. |
||
Časová prodleva: 10 let
|
0