Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] odczyt z pliku
Forum PHP.pl > Forum > Przedszkole
Cypis_01
Teraz problem dotyczy skryptu który powinien otworzyć plik .txt , chociaż plik zawiera treść pokazuje mi się informacji iż plik jest pusty.

  1. <?php
  2.  
  3. $DOCUMENT_ROOT = $HTTP_SERVER_VARS['DOCUMENT_ROOT'];
  4. ?>
  5. <html>
  6. <head>
  7. <title>Usługi - zamówienia klientów</title>
  8. </head>
  9. <body>
  10. <h1>Usługi</h1>
  11. <h2>Zamówienia klientów</h2>
  12. <?php
  13.  
  14. @ $wp = fopen("$DOCUMENT_ROOT/../zamowienia.txt", "r");
  15.  
  16. if (!$wp)
  17. {
  18. echo "<p><strong>Brak zamówień."
  19. ."Proszę spróbować później.</strong></p></body></html>";
  20.  
  21. }
  22.  
  23. while (!feof($wp))
  24. {
  25. $zamowienie = fgets($wp, 999);
  26. echo $zamowienie."<br>";
  27.  
  28. }
  29.  
  30. fclose($wp);
  31. ?>
  32. </body>
  33. </html>
grzegorzr
sprobuj zamienic:
  1. <?php
  2. $HTTP_SERVER_VARS['DOCUMENT_ROOT']
  3. ?>

na
  1. <?php
  2. $_SERVER['DOCUMENT_ROOT']
  3. ?>

sprawdz tez np za pomoca
  1. <pre>
  2. <?php var_dump($_SERVER); ?>
  3. </pre>

czy ta zmienna nie jest pusta. Jesli to nie pomoze to pousuwaj znaczcniki @ i podeslij co ci wyskakuje.
Cypis_01
Zadziałało winksmiley.jpg dzięki bardzo.


aha możesz mi powiedzieć jeszcze dlaczego po zmianie na:

  1. <?php
  2. $_SERVER['DOCUMENT_ROOT']
  3. ?>


zadziałało, a wcześniej nie działało...tzn chodzi mi o to jaka jest różnica między
  1. <?php
  2. $HTTP_SERVER_VARS['DOCUMENT_ROOT']
  3. ?>
a
  1. <?php
  2. $_SERVER['DOCUMENT_ROOT']
  3. ?>
phpion
$HTTP_*_VARS nie jest już stosowane i jest domyślnie wyłączone w konfiguracji (oczywiście możesz włączyć ale po co). Zamiast niego stosuj $_* czyli np.
$HTTP_GET_VARS -> $_GET
itd.
termi
mam pytanie jak odczytac tylko np. 10 linijke z tego pliku questionmark.gif
piotrekkr
Cytat
mam pytanie jak odczytac tylko np. 10 linijke z tego pliku questionmark.gif

  1. <?php
  2. $i=1;
  3. while (!feof($wp) && $i <= 10)
  4. {
  5. $zamowienie = fgets($wp, 999);
  6. echo $zamowienie."<br>";
  7. $i++;
  8. }
  9. ?>
termi
No to mam pytanie następne w jaki sposob mogłyb zapisac 10 linijke w pliku??
piotrekkr
Proste wczytujesz plik kazda linijke do tablicy a pozniej zmieniasz $tablica[10] = 'jakistamzmienionytekst' i zapisujesz ponownie cala tablice do pliku. zajrzyj do funkcji file() i implode().file pomoże ci wczytac kazda linijke pliku do tablicy a implode pozwoli ci zrobic z tablicy jeden wielki string biggrin.gif

Aha mozliwe ze bedziesz musial zmienic $tablica[9] a nie $tablica [10] bo chyba funkcja file indeksuje tablice od zera czyli 10 element bedzie pod indexem 9 ale najlepiej sprawdz w dokumentacji funkcji file.
Hazel
Dokładnie tak, odwołujesz się do elementu tablicy o numerze zdekrementowanym w stosunku do numeru linijki, którą chcesz zapisać.
Czyli $tablica[9].
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.