Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Problem z odczytem pliku
zxc__
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Dopiero się uczę, i utknąłem przy odczytywaniu zawartości plików
Mam dwa pliki: cos.txt, którego zawartość chę odczytać i .otwieranie.php, którego kod wygląda tak:

  1. <html>
  2. <head>
  3. <title>wyswietlwyniki</title>
  4. </head>
  5. <body>
  6. <?php
  7. @ $wp = fopen("$_SERVER['DOCUMENT_ROOT']/../pliki/cos.txt", 'rb')
  8.  
  9. if (!$wp) [
  10. echo "<p>Brak</p>";
  11. }
  12.  
  13. while (!feof($wp)) {
  14. $costam = fgets($wp, 999);
  15. echo $costam."<br />";
  16. }
  17.  
  18. fclose($wp);
  19.  
  20. ?>
  21. </body>
  22. </head>


Po czym wyskakuje mi błąd:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\WebServ\httpd\pliki\otwieranie.php on line 7

Mógłby mi ktoś podpowiedzieć, gdzie robię błąd?
Wypróbowałem najróżniejsze kombinacje, i nic.

Ten post edytował zxc__ 5.09.2012, 22:48:44
Go to the top of the page
+Quote Post
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


1. na przyszłość wstawiaj kod w odpowiednie tagi na forum
2. spróbuj tak:
  1. $wp = fopen($_SERVER['DOCUMENT_ROOT'] . "/../pliki/cos.txt", 'rb');

3. prościej by Ci było skorzystać z file_get_contents

po zedytowaniu przez Ciebie kodu widać gdzie jest błąd (IMG:style_emoticons/default/wink.gif)

nie
  1. @ $wp = fopen("$_SERVER['DOCUMENT_ROOT']/../pliki/cos.txt", 'rb')

a
  1. $wp = @fopen("$_SERVER['DOCUMENT_ROOT']/../pliki/cos.txt", 'rb')

poza tym, unikaj takiego zapisu, zamiast maskować błędy nie dopuszczaj do ich powstawania - w tym wypadku sprawdzaj czy plik istnieje za pomocą file_exists

Ten post edytował Pawel_W 5.09.2012, 22:35:21
Go to the top of the page
+Quote Post
zxc__
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Za Twoją radą, zmodyfikowałem linijkę kodu
  1. $wp = @file_get_contents("$_SERVER['DOCUMENT_ROOT'] . /../pliki/cos.txt", 'rb')

Ale to nic nie pomogło...
Błąd jak był, tak jest

Ten post edytował zxc__ 5.09.2012, 22:51:55
Go to the top of the page
+Quote Post
Pawel_W
post
Post #4





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


file_get_contents przyjmuje jeden argument, nie 2 (IMG:style_emoticons/default/wink.gif) poza tym, zmień ciąg na taki jak podałem w pkt. 1
Go to the top of the page
+Quote Post
zxc__
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Ok, zmieniłem. Niestety, nadal to samo.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #6





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


wklej jeszcze raz bo coś mi się wierzyć nie chce (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


brakuje średnika w linii 7 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
abort
post
Post #8





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Wiesz, kiedyś na stareńkim MS-DOSie był taki wirus, nazywał się "dot eater" (swoją drogą, mega wkurzający).
U Ciebie chyba występuje jego mutacja: semicolon eater.

Posprawdzaj, czy wszędzie masz średniki na końcu (więcej nie podpowiem).
Go to the top of the page
+Quote Post
zxc__
post
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Dokładnie, już sam do tego doszedłem (IMG:style_emoticons/default/wink.gif)
Działa, wielkie dzięki za pomoc
Jeszcze tylko jedno pytanie

  1. <html>
  2. <head>
  3. <title>wyswietlwyniki</title>
  4. </head>
  5. <body>
  6. <?php
  7. $wp = @fopen($_SERVER['DOCUMENT_ROOT'] . "/../pliki/cos.txt", 'rb');
  8.  
  9. if (!$wp) {
  10. echo "<p>Brak</p>";
  11. }
  12.  
  13. while (!feof($wp)) {
  14. $costam = fgets($wp, 999);
  15. echo $costam."<br />";
  16. }
  17.  
  18. fclose($wp);
  19.  
  20. ?>
  21. </body>
  22. </head>

Czemu wyświetla mi mój komunikat "Brak" zamiast zawartości pliku cos.txt?

Ten post edytował zxc__ 5.09.2012, 23:11:31
Go to the top of the page
+Quote Post
Pawel_W
post
Post #10





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


usuń @ sprzed fopen, na samym początku daj error_reporting(E_ALL) i się dowiesz w czym problem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zxc__
post
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Wybacz, ale nie mam pojęcia gdzie mam dodać error_reporting...
Po dodaniu na samym początku
  1. echo E_ALL

zmieniło się jedynie to, że pojwiła się liczba 6143 tuż przed komunikatem o błędzie

Ten post edytował zxc__ 5.09.2012, 23:35:41
Go to the top of the page
+Quote Post
Pawel_W
post
Post #12





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


czy ja gdzieś pisałem echo? miałeś dokleić <?php error_reporting(E_ALL); ?> na początku pliku, do tego jeszcze usunąć @ przed fopen
Go to the top of the page
+Quote Post
zxc__
post
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Wybacz, nigdy nie miałem do czynienia z tą funkcją, a że dokładnie nie wytłumaczyłeś, zacząłem kombinować na wszystkie możliwe sposoby
  1. Warning: fopen(C:/Program Files/WebServ/httpd//../pliki/cos.txt) [function.fopen]: failed to open stream: No such file or directory in C:\Program Files\WebServ\httpd\pliki\otwieranie.php on line 10

wiersz 10 czyli tu
  1. $wp = fopen($_SERVER['DOCUMENT_ROOT'] . "/../pliki/cos.txt", 'rb');
Go to the top of the page
+Quote Post
Pawel_W
post
Post #14





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


oj ludzie ludzie... znajomość angielskiego na tym poziomie to podstawa (IMG:style_emoticons/default/smile.gif) a korzystanie z google nie boli... plik który chcesz zassać nie istnieje albo znajduje się w innym katalogu
Go to the top of the page
+Quote Post
zxc__
post
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Znam angielski, całkiem nieźle.
Plik istnieje i jest w tym samym katalogu.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #16





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


C:/Program Files/WebServ/httpd//../pliki/cos.txt

to nie wygląda na poprawną ścieżkę katalogu (IMG:style_emoticons/default/wink.gif) nie będę Ci już mówił w którym miejscu to zmienić
Go to the top of the page
+Quote Post
zxc__
post
Post #17





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.08.2012

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


Dziękuję
Pozornie (jak dla mnie, początkującego) nierozwiązywalny problem został rozwiązany
Już wszystko zrozumiałem, działa jak należy
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: 24.08.2025 - 07:41