Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]problem z podmianą linii
Forum PHP.pl > Forum > PHP
jarmiar
witam,

mam taki fragment kodu

  1. <?
  2. $arr = file($plik_konfiguracji);
  3. //podmiana 2 linii
  4. $arr[2] = '$tytul = "'.$tytul_strony.'";'."rn";
  5. $fp = fopen($plik_konfiguracji, 'r+');
  6. fwrite($fp, join('', $arr));
  7. ?>


$plik_konfiguracji = "../konfiguracja.php";

i w tym pliku mam jakieś linie

Kod
$tytul = "tytułek mojej stronki";
linia2
linia3
linia4
linia5


dlaczego ten skrypt zamiast podmienić tą linijkę to tworzy nową zaraz pod tą?

tak wygląda mój plik po wykonaniu się skryptu

Kod
<?
$tytul = "tytułek mojej stronki";
$tytul = "tytułek mojej stronki";
linia2
linia3
linia4
linia5
?>


może wie ktoś jak zrobić żeby tylko podmieniało wybraną linijkę, ale nie dopisywało kolejnej! questionmark.gif
mild
Z tego co widzę masz w $arr zawartość pliku konfiguracyjnego, a w $arr[2] dodajesz jeszcze jedną linię. Dlatego przy zapisie linie się powtarzają.
jarmiar
Cytat(mild @ 20.05.2007, 10:32:42 ) *
Z tego co widzę masz w $arr zawartość pliku konfiguracyjnego, a w $arr[2] dodajesz jeszcze jedną linię. Dlatego przy zapisie linie się powtarzają.


no dobra, zwróciłem na to uwagę. ale dlaczego mi się teraz powiela dwukortnie plik konfiguracyjny?

przykład

Kod
-------
początek
jakaś linia
druga linia
3 linia
4 linia
zakończenie
--------
-------
początek
jakaś linia
druga linia
3 linia
4 linia
zakończenie
--------



może ktoś wie jak zrobić żeby się tylko podmieniały zawartości wybranych linii
mild
Sprawdź czy to na pewno ma być $arr[2] (3 linia, liczymy od 0 tongue.gif) bo u mnie to co napisałeś działa.
Jak chcesz użyj print_r($arr), zobaczysz jak tablica wygląda.
jarmiar
wiem że od zera się liczy i tak też zrobiłem, ale mi się ten plik duplikuje!!

dlaczego tak się dzieje?

daję listing z pliku zapisującego:

  1. <?
  2. function zapisz_glowne_ustawienia()
  3. {
  4. //informacje o stronie
  5. $tytul_strony = $_POST['tytul_strony'];
  6. $adres_strony = $_POST['adres_strony'];
  7. $slowa_kluczowe = $_POST['slowa_kluczowe'];
  8. $opis_strony = $_POST['opis_strony'];
  9. //konfiguracja admina
  10. $nazwa_admina = $_POST['nazwa_admina'];
  11. $haslo_admina = $_POST['haslo_admina'];
  12. //powtórzenie hasła
  13. $haslo_admina2 = $_POST['haslo_admina2'];
  14. $miejscowosc_admina = $_POST['miejscowosc_admina'];
  15. $plik_konfiguracji = "../konfiguracja.php";
  16. $plik_profilu_admina = "../uzytkownicy/admin.php";
  17. if(!empty($tytul_strony) && !empty($adres_strony) && !empty($slowa_kluczowe) && !empty($opis_strony) && !empty($nazwa_admina) && !empty($haslo_admina) && !empty($haslo_admina2) && !empty($miejscowosc_admina))
  18.  {
  19. //zamiana tytuły strony
  20. $arr = file($plik_konfiguracji);
  21. //podmiana 10 linii
  22. $arr[9] = '$tytul = "'.$tytul_strony.'";'."rn";
  23. $fp = fopen($plik_konfiguracji, 'r+');
  24. fwrite($fp, join('', $arr));
  25. //zmiana opisu strony
  26. $arr2 = file($plik_konfiguracji);
  27. //podmiana 12 linii
  28. $arr2[11] = '$opis = "'.$opis_strony.'";'."rn";
  29. $fp = fopen($plik_konfiguracji, 'r+');
  30. fwrite($fp, join('', $arr2));
  31. //zmiana słów kluczowych
  32. $arr3 = file($plik_konfiguracji);
  33. //podmiana 13 linii
  34. $arr3[12] = '$slowa = "'.$slowa_kluczowe.'";'."rn";
  35. $fp = fopen($plik_konfiguracji, 'r+');
  36. fwrite($fp, join('', $arr3));
  37. //zmiana adresu strony
  38. $arr4 = file($plik_konfiguracji);
  39. //podmiana 14 linii
  40. $arr4[13] = '$adres_serwisu = "'.$adres_strony.'";'."rn";
  41. $fp = fopen($plik_konfiguracji, 'r+');
  42.  
  43.  
  44.  
  45. //zmiana nazwy admina
  46. $arr5 = file($plik_konfiguracji);
  47. //podmiana 17 linii
  48. $arr5[16] = '$login_administratora = "'.$nazwa_admina.'";'."rn";
  49. $fp = fopen($plik_konfiguracji, 'r+');
  50. fwrite($fp, join('', $arr5));
  51. //zmiana hasła admina
  52. if($haslo_admina == $haslo_admina2)
  53.  {
  54.  $arr6 = file($plik_konfiguracji);
  55. fwrite($fp, join('', $arr4));  //podmiana 18 linii
  56.  $arr6[17] = '$haslo_administratora = "'.$haslo_admina.'";'."rn";
  57.  $fp = fopen($plik_konfiguracji, 'r+');
  58.  fwrite($fp, join('', $arr6));
  59.  }
  60.  else
  61.  {
  62.  echo "Pole hasło i powtórz hasło muszą być identyczne";
  63.  }
  64. //zmiana miejscowości admina
  65.  $arr_admin = file($plik_profilu_admina);
  66.  $arr_admin[1] = 'Miejscowość: "'.$miejscowosc_admina.'";'."rn";
  67.  $fp = fopen($plik_profilu_admina, 'r+');
  68.  fwrite($fp, join('', $arr_admin));
  69. }
  70. else
  71. {
  72. echo "Wszystkie pola są wymagane!";
  73. die();
  74. }
  75. }
  76. if(zapisz_glowne_ustawienia())
  77. {
  78. echo "Ustawienia zostały zmienione";
  79. }
  80. else
  81. {
  82. echo "Wystąpił błąd przy zapisue ustawień<br>Sprawdź czy masz ustawione prawidłowe chmody do plików";
  83. }
  84. ?>
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.