Operacja na plikach problem

0
<?

define("Localhost","") ;
define("Baza","") ;
define("Haslo","") ;
define("Serwer","") ;
define("Strona","") ;
define("Sklep","") ;

?>

Mam taki plik chcę wczytaj go i zapisać
wczytuję go w ten sposób nie wiem czy dobrze to robię ?

function zapis_ustawien($serwer,$baza,$haslo,$nazwa)
  {
   if ($dir = @opendir(ROOT.'/css')) 
    {
	 while($file = readdir($dir)) {	
	 if($file == 'ust.inc.php')  {
      if(file_exists($plik)) {
       $p = fopen($plik, "r") ;
       $num = fread($p, filesize($plik));
	   fclose($p) ; }}}}
   closedir($dir);
  }

gdzie ROOT ścieżka dostępu do pliku. Mam formularz w którym definiuję zmienne $serwer,$baza,$haslo,$nazwa
i chce te zmienne zapisać do owego pliku
a aby wyglądało po zapisie tak na przykładzie .

<?

define("Localhost","localhost") ;
define("Baza","bazadanych_delta") ;
define("Haslo","chrabia") ;
define("Serwer","delta") ;

?>

Jak to zrobić koś mi powie ??

0

Omfg...

Po pierwsze - odchodzi się od używania php short tags - stosuj <?php ?> zamiast <? ?>.

Jeśli chcesz wczytać plik z kodem PHP (tak jak ten zawierającym define'y), to skorzystaj z gotowej funkcji require_once/require (wygląda to na konfigurację, więc lepiej użyć require niż include - w końcu jak się nie uda zaczytać, to skrypt powinien rzucić error i przerwać). Dzięki temu od razu kod zostanie wykonany i bedziesz miał od razu dostępne te stałe.

Z zapisem nieco gorzej - musisz sobie napisać kawałek funkcji, który zapisze to w takim formacie. Tak czy inaczej - nie wiem czy takie definiowanie konfiguracji przy użyciu stałych jest dobrym pomysłem...

Jeśli to co piszesz, to ma być sklep internetowy (na takowy by wyglądało po liście stałych), to mam 3 lepsze pomysły:

  1. Skorzystaj z gotowej aplikacji (typu Magento (chociaż to trochę kombajn) czy jakiś OSCommerce), jeśli po prostu potrzebujesz sklepu internetowego
  2. Znajdź firmę, która napisze Ci taki sklep
  3. Zatrudnij programistę/programistów, którzy napiszą Ci taki sklep
0

Nie chodzi o include chodzi mi o wczytanie pliku i zapisaniu powrotem z ustawieniami nadanymi przez formularz przez kod php

0
zebrowski1973 napisał(a):

Nie chodzi o include chodzi mi o wczytanie pliku i zapisaniu powrotem z ustawieniami nadanymi przez formularz przez kod php

Mhmmm... no to tak.
Wczytujesz plik, najlepiej linijka po linijce. Każdą linijkę przelatujesz jakimś regexpem lub kombinacją funkcji, które wyciągną Ci nazwę właściwości oraz jego wartość. Po każdorazowym wyciągnięciu konfiguracji danej linijki, zapisujesz ją do tablicy asocjacyjnej, gdzie kluczem jest pierwszy parametr tego "define" z pliku, a wartością drugi parametr.

Na koniec masz tablicę reprezentującą konfigurację z pliku.
Następnie iterujesz jakimś foreachem po tablicy $_POST i aktualizujesz tablicę z konfiguracją. W gruncie rzeczy nie ma znaczenia czy wartość już istnieje czy nie, po prostu ustawiasz klucz-wartość.

Na koniec masz tablicę reprezentującą konfigurację z pliku zaktualizowaną o konfigurację przesłaną formularzem. Teraz zapisujesz ją do pliku.
Iterujesz po tej utworzonej tablicy i zapisujesz do pliku linijka po linijce (albo sobie zbuforuj do jakiejś zmiennej i zapisz od razu cały plik, powinno być wydajniej).
Ciąg jaki zapisujesz to

$string = "define('{$key}', '{$value}');";

Gdzie key to klucz z tablicy z konfiguracją, a $value to wartość (czyli iterujesz robiąc foreach($config as $key=>$value) ).

0

Dziękuję o to mi chodziło. Uważam za temat zamknięty

1 użytkowników online, w tym zalogowanych: 0, gości: 1