Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błąd przy otwieraniu linku
wachcio
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2011

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


Witam

Chcę za pomocą skryptu PHP otworzyć plik txt na moim serwerze w domu z innego serwera (Home.pl). Serwer jest uruchomiony na Raspberry Pi i jest ustawione przekierowanie portów na wewnętrznym ruterze.

Skrypt PHP:
  1. $filePath_temp = "ftp://82.160.79.52:85/nettemp/temperatury.txt";
  2. $dane = fread(fopen($filePath_temp, "r"), filesize($filePath_temp));
  3. $plik = explode(":", $dane);


Niestety sypie błędami:

Warning: fopen(ftp://82.160.79.52:85/nettemp/temperatury.txt) [function.fopen]: failed to open stream: operation failed in /wachcio/nettemp/index.php on line 17

Warning: filesize() [function.filesize]: stat failed for ftp://82.160.79.52:85/nettemp/temperatury.txt in /wachcio/nettemp/index.php on line 17

Warning: fread(): supplied argument is not a valid stream resource in /wachcio/nettemp/index.php on line 17

Co robię nie tak? Może to wina ustawienia serwera na Raspberry? W przeglądarce link otwiera się normalnie...

Ten post edytował wachcio 11.06.2016, 00:14:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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



użyj funkcji

  1. $dane = file_get_contents($filePath_temp);


Możesz pobrać dane z innego serwera o ile masz uprawnienia do pliku.
Go to the top of the page
+Quote Post
wachcio
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2011

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


Niestety otrzymuję coś takiego:

Warning: file_get_contents(ftp://82.160.79.52:85/nettemp/temperatury.txt) [function.file-get-contents]: failed to open stream: operation failed in /wachcio/nettemp/index.php on line 18
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Nie połączyło cię bo żąda hasła, ale funkcja działa, spróbuj dać:

  1. file_get_contents("ftp://user:password@82.160.79.52:85/nettemp/temperatury.txt")
  2. //lub
  3. fopen("ftp://user:password@82.160.79.52:85/nettemp/temperatury.txt", "r");
Go to the top of the page
+Quote Post
wachcio
post
Post #5





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2011

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


Niestety znów porażka. Dostaję odpowiednio następujące kumunikaty:

Warning: fopen(ftp://...@82.160.79.52:85/nettemp/temperatury.txt) [function.fopen]: failed to open stream: FTP server reports 550 Could not get file size. in /wachcio/nettemp/index.php on line 19

i

Parse error: syntax error, unexpected T_VARIABLE in /wachcio/nettemp/index.php on line 21
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #6





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Otwieranie plików ze zdalnego serwera najczęściej jest nieaktywne, dla fopen

ale co innego jest z CURL, http://php.net/manual/pl/book.curl.php

PS. oczywiście plik musi mieć prawa do odczyty dla wszystkich, 666, 655, 755, lub 766

Ten post edytował LowiczakPL 11.06.2016, 10:59:18
Go to the top of the page
+Quote Post
wachcio
post
Post #7





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2011

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


A jak sprawdzić czy mam tę opcję aktywną czy nie?

Przez bezpośredni link w przeglądarce otwiera normalnie

Ten post edytował wachcio 11.06.2016, 13:57:34
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


czemu łączysz się do tego przez ftp?

http://php.net/manual/en/ref.ftp.php
Go to the top of the page
+Quote Post
wachcio
post
Post #9





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.07.2011

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


Mnie jest bez różnicy jak ja uzyskam dostęp do tego pliku. Masz jakąś mniej kłopotliwą metodę?


EDIT:

Problem rozwiązany trochę zakręconą metodą przez kopiowanie:

  1. <?php
  2.  
  3. // define some variables
  4. $local_file = 'temperatury.txt';
  5. $server_file = 'nettemp/temperatury.txt';
  6. $ftp_server = '82.160.79.52';
  7. $ftp_user_name = 'login';
  8. $ftp_user_pass = 'haslo';
  9.  
  10. // set up basic connection
  11. $conn_id = ftp_connect($ftp_server, 85);
  12.  
  13. // login with username and password
  14. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  15.  
  16. // try to download $server_file and save to $local_file
  17. if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
  18. echo "Successfully written to $local_file\n";
  19. } else {
  20. echo "There was a problem\n";
  21. }
  22.  
  23. // close the connection
  24. ftp_close($conn_id);
  25.  
  26. ?>


Później odczyt pliku lokalnie przebiega już bez problemów

Ten post edytował wachcio 13.06.2016, 00:17:35
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: 23.08.2025 - 17:16