Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienne w pliku tekstowym
Forum PHP.pl > Forum > Przedszkole
KadrO
Witam znowu. Otóż mam pewien problem. Posiadam takowy skrypt (poniżej wycinek) :

  1. <?
  2. for($i = 0; $i < 32; $i++){
  3. print "$arr[$i] <br>";
  4.  
  5. if($fd = fopen('s/'.$arr[$i+2], 'r')) {
  6.  
  7. $tresc = fread($fd, filesize('s/'.$arr[$i+2]));
  8.  
  9. ?>
  10. <form action="zapis2.php" method="post">
  11. <textarea rows="20" cols="80" name="fgsafs"><?php print $tresc ?></textarea>
  12. <?
  13.  
  14.  
  15. fclose($fd);
  16.  
  17. }
  18. }
  19. ?>


Zmienne pobierane z tablicy - $arr (pliki z katalogu)

Skrypt ten pobiera zawartość plików tekstowych z całego katalogu (wcześniej określonego) i umieszcza je w <textarea>. Dzięki pętli for i wcześniej wytworzonej tablicy z zawartością katalogu, wyciąga dane z każdego pliku txt. W pliku tekstowym znajduje się coś takiego :

  1. <? print "$mojplik[0]"; ?>


(tablica mojplik to dane pobierane z jeszcze innych plików, zmienne które są już wcześniej określone i mają nadaną wartość, ale to nie jest ważne)

Gdy wczytuję plik do textarea ten cytat czytany jest jako ciąg znaków, a nie jako zmienna. Tzn., chciałbym by ta zmienna od razu po wczytaniu pliku przez skrypt, była zamieniana na tą określoną w skrypcie. Tzn. by wyświetlała się już podmieniona przez wartość zmiennej a nie jako zwykły ciąg znaków.

Wiem że może to być trudne do zrozumienia ale proszę o pomoc i z góry dziękuję.
Pozdrawiam.

CuteOne
eval() ale to zło wcielone ;]
KadrO
Dzięki za radę, ale rozwiązałem już ten problem. Użyłem funkcji include() i trochę skróciłem skrypt. Swoją drogą, teraz zastanawiam się czy da się napisać skrypt który masowo w wyznaczone miejsce we wszystkich plikach w jednym katalogu, zmieniałby treść. Już nad tym pracuję, ale może mógłby ktoś pomóc?
CuteOne
Od tego masz bazy danych - poczytaj o MySQL
KadrO
Cytat(CuteOne @ 28.07.2011, 01:31:24 ) *
Od tego masz bazy danych - poczytaj o MySQL


Chodzi mi raczej o coś w stylu pętli for. która będzie się powtarzać aż do 30 pliku, i w każdym w wyznaczone miejsce będzie wklejać pewien tekst. Póki co mam coś takiego, ale nie wiem czy idę w dobrym kierunku :

  1. if (isset ($_POST['wyslij'])) {
  2.  
  3. for($i = 0; $i < 32; $i++){
  4.  
  5. $pusta = "$mojplik[$i]";
  6. $pusta2 = "$mojplik2[$i]";
  7. $pusta3 = "$mojplik3[$i]";
  8.  
  9. $fdd = include('s/'.$arr[$i+2]);
  10. if($fd = fopen('s/'.$arr[$i+2], 'r')) {
  11. $fdd = stripslashes($fdd);
  12. fwrite($fd, $fdd);
  13. fclose ($fd);
  14. }
  15. }
  16. }
  17. ?>
  18.  
  19. <form action="index.php" method="post">
  20. <table><tr><td><input type="submit" value="wyslij" name="wyslij"></td></tr></table>
  21.  
  22. </form>


Zmienna $pusta to ma być zwykły ciąg znaków a nie nadanie wartości, tablica $arr to zawartość katalogu.
CuteOne
  1. if (isset ($_POST['wyslij'])) {
  2.  
  3. for($i = 0; $i < 32; $i++){
  4.  
  5. $pusta = "$mojplik[$i]";
  6. $pusta2 = "$mojplik2[$i]";
  7. $pusta3 = "$mojplik3[$i]";
  8.  
  9. include('s/'.$arr[$i+2]);
  10.  
  11. if($fd = fopen('s/'.$arr[$i+2], 'w')) {
  12.  
  13. $fdd = stripslashes($fdd);
  14.  
  15. fwrite($fd, $fdd);
  16. fclose ($fd);
  17. }
  18. }
  19. }


a w każdym z tych includowanych plików zamiast:
  1. <? print "$mojplik[0]"; ?>

daj:
  1. <?php $fdd = "$mojplik[0]"; ?>



ps. rozumiesz chyba, że zapisujesz tą samą treść do tego samego pliku? z tą różnicą, że w pliku zamiast <?php $fdd = "$mojplik[0]"; ?> zobaczysz $mojplik[0]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.