Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Otwieranie Pliku
Forum PHP.pl > Forum > Przedszkole
marcim
Witam!
Mam taki problem, otóż mam sobie zainstalowanego krasnala (system Windows XP), i uczę się php. Napisałem skrypt (pierwszy dotyczący otwierania plików .txt):
  1. <?php
  2. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  3. $wp = fopen("$DOCUMENT_ROOT/../zamowienia/zamowienie.txt" , 'r');
  4. echo $wp;
  5.  
  6. ?>
i nie otwiera pliku zamowienia.txt który znajduję się w tej lokalizacji:
C:\usr\krasnal\www\ksiazka\zamowienia\zamowienia.txt.Wyświetla taki komunikat:

  1. <?php
  2. Warning: fopen(c:/usr/apache/httpd/html//../zamowienie.txt) [function.fopen]: failed to open stream: No such file or directory in c:us
    rkrasnalwwwksiazkaaaa.php on line 12
  3. ?>


jak zrobić żeby to zaczęło działać, czy mam może coś źle poustawiane w komputerze?

Pozdrawiam! i witam wszystkich smile.gif
suchy1
Dopiero sie ucze php ale wydaje mi sie ze masz zla sciezke do pliku. Zobacz czy bedzie dzialac w ten sposob:

  1. <?php
  2. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  3. $wp = fopen("C:usrkrasnalwwwksiazkazamowieniazamowienia.txt" , 'r');
  4. print $wp;
  5.  
  6. ?>


Pozdrawiam
marcim
Też tak próbowałem, wyświetlało mi się :
Resource id #3
siemakuba
no skoro zwraca ci Resource id #3 to znaczy że plik został otwarty poprawnie. Tyle że fopen" title="Zobacz w manualu php" target="_manual nie zwróci zawartości plku ale uchwyt do pliku (file resource), który to wskazuje na dany plik i dzięki niemu możesz wykonywać różne operacje na tymże właśnie pliku.

zajrzyj do manuala, funkcje obsługi plików: http://pl.php.net/manual/pl/ref.filesystem.php
Z twojego posta nie wynika niestety co chcesz dalej robić z tym plikiem, ale wszystkie potrzebne do tego funkcje znajdziesz na pewno w rozdziale manuala, który wskazałem.

pozdr.
marcim
Ok dzięki, plik został otworzony, a jak wyświetlić jego zawartość? i jak mam rozumieć $_SERVER['DOCUMENT_ROOT'], do czego to ma mi posłużyć?(czy to jest takie coś jak np c:/ tylko że to jest główny katalog serwera?)
Gość
Poszukaj w manualu jak dziala funckja fread.
Co do $_SERVER['DOCUMENT_ROOT'] to okresla katalog glowny, w ktorym znajduje sie dokument - przydaje sie gdy uzywasz sciezek wzglednych i potem bedziesz przenosil dokumenty na inny serwer.
em1X
a kto powiedział, że pliki trzeba otwierać z bezwzględną ścieżką ? :roll2:

jeżeli plik tekstowy znajduje się katalog wcześniej od miejsca, gdzie jest twój skrypt
wystarczy

  1. <?php
  2. $fp = fopen('../plik.txt');
  3. ?>
marcim
Nie rozumiem, katalog wcześniej czy w tym samym katalogu? A i jak zrobić żeby w krasnalu działało $_SERVER['DOCUMENT_ROOT']
siemakuba
Cytat
Nie rozumiem, katalog wcześniej czy w tym samym katalogu?

No to gdzie znajduje się twój plik to chyba sam wiesz najlepiej? Musisz sie zdecydować tylko, czy chcesz podawać ścieżkę bezwzględną do niego czy względną. $_SERVER['DOCUMENT_ROOT'] możesz sobie darować jeżeli będzie to ścieżka względna.
Cytat
Ok dzięki, plik został otworzony, a jak wyświetlić jego zawartość?
Podałem ci wszcześniej link do manuala gdzie są opisane funkcje operujące na plikach. Wystarczy tam zajrzeć i poszukać. Przykładów jest tam aż nadto żeby je tu przytaczać / przepisywać. Poszukaj, popróbuj, a jak nie dasz rady to daj znać :)

pozdr.
em1X
C:\usr\krasnal\www\ to twój folder główny serwera, zerowy, początkowy, nazywaj go sobie jak chcesz tongue.gif

PRZYKŁAD

Jezeli twoj skrypt znajduje sie w:
C:\usr\krasnal\www\program1\php\
a plik tekstowy w:
C:\usr\krasnal\www\program1\

oznacza to, ze plik ktory chcesz otworzyc znajduje sie katalog wczesniej.. chyba logiczne?
wystarczy wiec napisac

  1. <?php
  2. include('../plik.txt');
  3. ?>


. (kropka) oznacza aktualny katalog
.. (dwie kropki) oznaczają katalog poprzedni

starczy tego niańczenia cool.gif
marcim
Ok dzięki, wreszczie chyba wsyztsko rozumiem
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.