Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z file_get_contents i while :/
Forum PHP.pl > Forum > Przedszkole
fish2000
jak w temacie, ale lepiej to opiszę
próbuję zrobić skrypt, który będzie mi zliczał sumę MB z linków wrzuconych w textarea
na razie jestem przy wyciąganiu danych z linków, i tu mam właśnie problem
mam taki kod

  1. <?php
  2. echo &#092;"\";
  3. $link=$_POST['linki'];
  4. $link=explode(&#092;"\n\", $link);
  5.  
  6. if($_POST['slij'])
  7.    {
  8.    print_r($link);
  9.    $a=0;
  10.    while($link[$a])
  11.        {
  12.        $zrodlo=file_get_contents($link[$a]);
  13.        preg_match('| (.*?)|', $zrodlo, $wielkosc[$a]);
  14.        $a++;
  15.        }
  16.    print_r($wielkosc);
  17.    }
  18. ?>

i wywala mi błąd:
Cytat
Warning: file_get_contents(http://odsiebie.com/pokaz/1406372---bb6e.html
) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in C:\Program Files\WebServ\httpd\odsiebie\index.php on line 18

dodam, że ostatni link jaki wrzucę normalnie przekształca mi sie w to co chcę, ale przy wcześniejszych wywala błąd :/

a tu fota
Kod
http://i40.tinypic.com/25sr629.png


mógłby ktoś pomóc?
Villentre
Witaj,

zerknij na to: http://pl2.php.net/manual/pl/function.file-get-contents.php
Cytat
Jeśli włączona jest dyrektywa konfiguracyjna fopen wrappers, możliwe jest podanie jako nazwy pliku adresu URL. Zobacz opis funkcji fopen() aby dowiedzieć się jak przekazać nazwę pliku, oraz fopen wrappers aby uzyskać listę obsługiwanych protokołów.


Na moje oko masz niepoprawnie skonfigurowany serwer.
Fifi209
Pewnie darmowy hosting i mają zablokowane otwieranie url przez takie właśnie funkcje...

Sprawdź (jeżeli dobrze pamiętam) czy masz faktycznie wyłączone:
allow_url_fopen
fish2000
Cytat(fifi209 @ 14.06.2009, 10:16:36 ) *
Pewnie darmowy hosting i mają zablokowane otwieranie url przez takie właśnie funkcje...

na razie testuje to na własnym komputerze poprzez webserv (podobny do krasnala)


sprawdziłem plik php.ini i ta opcja jest włączona
Cytat
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On

dodatkowo przerobiłem trochę skrypt z file_get_contents na fopen, lecz błąd jest bardzo podobny
Cytat
Warning: fopen(http://odsiebie.com/pokaz/1407755---3c55.html
) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in C:\Program Files\WebServ\httpd\odsiebie\index.php on line 22

dziwna sprawa :/


tak jak mówiłem, ostatni link z textarea przerabia mi tak jak chcę, lecz przy wcześniejszych wywala błędy :/
Fifi209
Znak nowej linii to:
(linux)
\n

(dla windowsa & linuxa)
\r\n

A nie
\n\
fish2000
o dzięki kolego teraz gra i buczy
dzięki wielkie winksmiley.jpg
domator
Witam,
Panowie mam identyczny problem jaki przedstawił (przed laty) kolega w pierwszym poście.

Ustawienia serwera:
safe_mode = off, allow_url_fopen = on

Wywala mi:
Kod
Warning: file_get_contents(http://adres.pl/tralala.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found


i również w pętli (tylko) ostatni link zostaje poprawnie pobrany.

Co muszę zmienić? Kod na pewno jest dobry, bo na innym hostingu mi działa, a na innym już nie. Jakie parametry serwera są jeszcze istotne dla poprawnego wykonania zapytania?

Będę wdzięczny za wskazówki. Pozdrawiam
by_ikar
Cytat
404 Not Found

Adres który próbujesz "otworzyć" przy pomocy file_get_contents zwraca błąd 404 - brak pliku. Co musisz zmienić? Podać adres do strony która nie zwraca 404. Wklej link który próbujesz otworzyć do przeglądarki i sprawdź czy podany adres jest prawidłowy.
domator
Pisałem, że działa na innym hostingu :-)

A czy strona istnieje to sprawdzałem w pierwszej kolejności. ZAWSZE wykonuje tylko ostatnie zapytanie pętli poprawnie.

EDYTA: Dla potomnych, pomogło dodanie trim:
Kod
file_get_contents(trim($url));


...dziwne, że na jednym hoście działa bez tego, a na drugim już nie. Pewnie zależy czy stoi na Linuxie czy Windowsie tj. różny znak dla nowej linii (jak wspomniał @Fifi209)
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.