Autor Zpráva
XYZ
Profil *
Ahoj,
potřeboval bych od vás menší radu. V jednom skriptu uložím 1 do define a v dalším skriptu mám podmínku, že když je tam 1, provede se nějaká funkce a potom se tam uloží 0. jenže v tom souboru mám více konstant a všechny se mi přepíší.
Tady je kod
Skript, který ukládá hodnoty do souboru constant.php:
$myFile = "../constant.php";
		$fh = fopen($myFile, 'w');
		$text = file_get_contents("constant_format.tpl");
		$text = preg_replace("'%SERVERNAME%'",$_POST['adr'],$text);
    $text = preg_replace("'%SERVERUSER%'",$_POST['user'],$text);
    $text = preg_replace("'%SERVERPASS%'",$_POST['pass'],$text);
    $text = preg_replace("'%SERVERDB%'",$_POST['db'],$text);
    $text = preg_replace("'%PODMINKA%',"1",$text");
    fwrite($fh, $text);
    
    A takhle vypadá kod, který se spustí, když je PODMINKA NA 1, dojde k jejímu vynulování, 
    ale ještě předtím se spustí funkce, které s tímto problémem nemají nic společného:
        $myFile = "constant.php";
		$fh = fopen($myFile, 'w');
		$text = file_get_contents("constant_format.tpl");
		$text = preg_replace("'%PODMINKA%'","0",$text);
    fwrite($fh, $text);  
    V souboru constant.php se sice hodnota změní na 0, ale i všechno ostatní se přepíše:
    define("SERVER_NAME","%SERVERNAME%");
define("SERVER_USER","%SERVERUSER%");
define("SERVER_PASS","%SERVERPASS%");
define("SERVER_DB","%SERVERDB%");
define("PODMINKA","0");
    
    Ještě tam je soubor constant_format.php:
    define("SERVER_NAME","%SERVERNAME%");
define("SERVER_USER","%SERVERUSER%");
define("SERVER_PASS","%SERVERPASS%");
define("SERVER_DB","%SERVERDB%");
define("PODMINKA","%PODMINKA%");
Sice bych mohl u toho kde nuluju PODMINKU dát zase že chci uložit všechno, ale přijde mi to zbytečné, neexistuje něco co by k tomu co mám jenom přidalo hodnotu?
    
Mastodont
Profil
Moc to nechápu, ale zřejmě ti vadí, že si přepisuješ, co máš v souboru. Jestli chceš do souboru přidat další data, tak nejjednodušší je file_put_contents a jako třetí parametr dát FILE_APPEND
XYZ
Profil *
Přesně tak, chci přepsat jednu hodnotu, ale ty ostatní se také změní. jak to bude vypadat s tím file_put_contents?
Chci změnit tuto část:
        $myFile = "constant.php";
        $fh = fopen($myFile, 'w');
        $text = file_get_contents("constant_format.tpl");
        $text = preg_replace("'%PODMINKA%'","0",$text);
    fwrite($fh, $text);  

Dík

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