Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrypt nie chce odczytać pliku z folderu
adrian266
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.04.2010

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


Witam, aktualnie przerabiam książkę 'PHP i MySQL, Tworzenie stron Vademecum profesjonalisty wyd IV ' Hellion. Jestem przy trzecim rozdziale, w ktorym jest mowa o operacjach na pikach, tj, wczytywanie,zapis itp. operacje na plikach. Problem pojawia sie w tym skrypcie:

  1. <?php
  2. // utworzenie krótkich nazw zmiennych
  3. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  4.  
  5. $zamowienia = file("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt");
  6. $ilosc_zamowien = count($zamowienia);
  7. if ($ilosc_zamowien == 0) {
  8. echo "<p><strong>Brak zamówień.
  9. Proszę spróbować później.</strong></p>";
  10. }
  11.  
  12. for ($i=0; $i < $ilosc_zamowien; $i++) {
  13. echo $zamowienia[$i]."<br />";
  14. }
  15. ?>


Przy wykonywaniu tego skryptu pojawia mi się alert:

  1. [PHP]Warning: file(D:/WampServer/wamp/www//../zamowienia/zamowienia.txt) [function.file]: failed to open stream: No such file or directory in D:\WampServer\wamp\www\zobaczzamowienia.php on line 5
[/PHP]

Skrypt nie moze wczytać danych z pliku, ktory jest umiweszczony gdzieś głebiej. W przypadku gdy znajduje się w głównym folderze serwera problem ten nie występuje. Niestety, samemu nie udało mi sie dojść co jest przyczyna.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
motyl-pl
post
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

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


spróbuj na jakimś darmowym hostingu z php (IMG:style_emoticons/default/smile.gif)
Bo możliwa:
1. Zła konfiguracja wampa
2. Komunikat wskazuje na błędną ścieżkę do pliku

Kod
   1.
      [PHP]Warning: file(D:/WampServer/wamp/www//../zamowienia/zamowienia.txt) [function.file]: failed to open stream: No such file or directory in D:\WampServer\wamp\www\zobaczzamowienia.php on line 5


failed to open stream: No such file or directory in D:\WampServer\wamp\www\zobaczzamowienia.php on line 5 - nie możliwe otwarcie.. nie ma podanego pliku z wersetu 5 w danym źródle (IMG:style_emoticons/default/smile.gif)

Ten post edytował motyl-pl 7.04.2010, 00:12:22
Go to the top of the page
+Quote Post
AdIoS_Neo
post
Post #3





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

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


  1. <?php
  2. // utworzenie krótkich nazw zmiennych
  3. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  4.  
  5. $zamowienia = file("../zamowienia/zamowienia.txt");
  6. $ilosc_zamowien = count($zamowienia);
  7. if ($ilosc_zamowien == 0) {
  8. echo "<p><strong>Brak zamówień.
  9. Proszę spróbować później.</strong></p>";
  10. }
  11.  
  12. for ($i=0; $i < $ilosc_zamowien; $i++) {
  13. echo $zamowienia[$i]."<br />";
  14. }
  15. ?>
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Komunikat wyraźnie wskazuje, że ścieżka do pliku jest nieprawidłowa. Jeżeli plik zamowienia.txt znajduje się w tym samym katalogu co skrypt, to w linii 5 kod powinien wyglądać tak
  1. $zamowienia = file("zamowienia.txt");
Zapis ten jest równoważny z
  1. $zamowienia = file("./zamowienia.txt");
Zmienna $_SERVER['DOCUMENT_ROOT'] wskazuje na główny katalog serwera (zazwyczaj htdocs). Dwie kropki (..) w ścieżce do pliku wskazują katalog wyżej. Gdzie jest zatem twój plik zamowienia.txt?
Go to the top of the page
+Quote Post
luck
post
Post #5





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


Lub ewentualnie
  1. $zamowienia = file("./zamowienia/zamowienia.txt");
Wszystko zależy od tego, jak jest położony plik zamowienia.TXT względem pliku zamowienia.PHP. W powyższej linijce możesz też wpisać bezpośrednią, pełną ścieżkę do pliku, czyli "D:/WampServer/wamp/.....". Zwróć tylko uwagę na ukośniki w ścieżce: albo "/", albo "\\".
Edit. Chyba długo to pisałem, bo posta kolegi wyżej jeszcze nie było (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował luck 7.04.2010, 07:15:03
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Jeśli chcesz odczytać plik, którego ścieżka zawiera przejście do katalogu wyżej (..), skorzystaj z funkcji realpath.
Go to the top of the page
+Quote Post
adrian266
post
Post #7





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.04.2010

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


Cytat(mortus @ 7.04.2010, 08:05:59 ) *
Komunikat wyraźnie wskazuje, że ścieżka do pliku jest nieprawidłowa. Jeżeli plik zamowienia.txt znajduje się w tym samym katalogu co skrypt, to w linii 5 kod powinien wyglądać tak
  1. $zamowienia = file("zamowienia.txt");
Zapis ten jest równoważny z
  1. $zamowienia = file("./zamowienia.txt");
Zmienna $_SERVER['DOCUMENT_ROOT'] wskazuje na główny katalog serwera (zazwyczaj htdocs). Dwie kropki (..) w ścieżce do pliku wskazują katalog wyżej. Gdzie jest zatem twój plik zamowienia.txt?


Plik 'zobaczzamowienia.php' znajduje się w głównym katalogu, a "zamówienia.txt w folderze 'zamowienia'.
Błąd polegał na tych nieszczęsnych dwóch kropkach , które zauważyłeś.

  1. $zamowienia = file("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt");

Nie zrozumiałem intencji autora i sądziłem , ze te kropki to jakiś element php, w strukturze katalogów , który musi tam być.

Dziękuje wszystkim za pomoc- problem rozwiązany.

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 19:08