Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generator - Przenoszenie plików z edycją w locie
Adi32
post
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witajcie.

Napisałem generator stron, który z severa głównego przenosi odpowiednie pliku wg. wcześniej wypełnionego formularza jednak wystąpił mały problem gdyż niektórych plików nie da się wybrać ze zbioru tylko trzeba edytować.

Tak więc powiedzmy, że przykładowo kopiujemy plik php:

config.php

i jego zawartość:
  1. <?php
  2.  
  3. $cfg['MySQL.Host'] = "{$host}";
  4. $cfg['MySQL.Username'] = "{$user}";
  5. $cfg['MySQL.Password'] = "{$pass}";
  6. $cfg['MySQL.Database'] = "{$db}";
  7. $cfg['index'] = "{$_index}";
  8.  
  9. ?>


Chciałbym, żeby tablica $cfg była bez zmian, a zmienne w {} (klamerkach, może to być inny znak wyróżniający) były pobierane z tego co wklepane w formularz.

Wynikają 2 pytania.

1. Jak w ogóle edytować plik w locie?

Pliki przesyłam pętlą rekurencyjną którą sobie napisałem, metoda to:

  1. ftp_put($conn, $remote.$file_name, $source.$file_name, FTP_ASCII)


2. Jak edytować konkretne elementy w kodzie?

Mam nadzieję, że da się coś zrobić...


Poradziłem sobie. Temat można skasować, chyba że kogoś interesuje rozwiązanie...


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Ilware
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 31
Dołączył: 14.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Wczytujesz cały plik np funkcją file_get_contents( sciezka ), następnie definiujesz sobie jakoś zmienne do zamiany w nim, proponuje {{}} bo jedna może się pomylić a następnie po wczytaniu pliku dajesz

  1. $body = file_get_contents( sciezka );
  2. $zamian['HOST.NAME'] = $Name;
  3. $zamian['USER.NAME'] = $Name;
  4. // itd
  5. //na koniec zamiana
  6. foreach( $zamian as $nazwaZmiennej => $wartosc){
  7. $sBody = str_replace( '{{'.$nazwaZmiennej .'}}', $wartosc, $body );
  8. }


w pliku robisz

  1. <?php
  2.  
  3. $cfg['MySQL.Host'] = "{{HOST.NAME}}";
  4. $cfg['MySQL.Username'] = "{{USER.NAME}}";
  5. itd.
  6. ?>


po tym zapisujesz zmiany w pliku


--------------------
Jeżeli pomogłem kliknij "Pomógł" :)
Go to the top of the page
+Quote Post
Adi32
post
Post #3





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź ale wcześniej poradziłem sobie jak napisałem, tylko złączyło mi posty w jeden.

Mój sposób jest bardzo podobny:

  1. preg_replace('/s\{(.*?)\}/e',"sess('\\1')",$this->dane);


  1. function sess($cos)
  2. {
  3. $sss = edytuj::getInstance();
  4. return $sss->sess($cos);
  5. }


  1. public function sess($cos)
  2. {
  3. return $_SESSION[$cos];
  4. }


a w przenoszonym pliku:

  1.  
  2. $cfg['MySQL.Host'] = "s{baza_server}";
  3. $cfg['MySQL.Username'] = "s{baza_user}";
  4. $cfg['MySQL.Password'] = "s{baza_haslo}";
  5. $cfg['MySQL.Database'] = "s{baza_nazwa}";


literka s przed {} oznacza, że będzie to string. Zakładam, że będę w przyszłości używał jeszcze innych typów (wstawianie zmiennych w czystej postaci itd).

Dzięki i pozdrawiam.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 03:31