Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak pobrać zawartość strony, przy wyłączonym file_get_contents(), fopen()
Kokocky
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.09.2008

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


Jak mogę pobrać kod HTML jakiejś strony przez PHP, skoro serwer ma wyłączone funkcje file_get_contetns i fopen() (cURLa nie sprawdzałem, ale najprawdopodobnie też)?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
konrados
post
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


No to sprawdź curla, bo nie masz powodów by sądzić, że jest wyłączony.

A tu masz przykładową funkcję (ściąga plik $remote i zapisuje do pliku $local):

  1. //func. dla uploadowania z url'a
  2. function curl_download($remote, $local) {
  3. $cp = curl_init($remote);
  4. $fp = fopen($local, "wb");
  5. if(!$fp){
  6. echo "Couldn't open target file</br>";
  7. }
  8. curl_setopt($cp, CURLOPT_FILE, $fp);
  9. curl_setopt($cp, CURLOPT_HEADER, 0);
  10. curl_exec($cp);
  11. //echo "<br>Error is : ".curl_error ( $cp);
  12. curl_close($cp);
  13. fclose($fp);
  14. exit();
  15. }


Ten post edytował konrados 16.11.2010, 00:15:20
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jakoś mi się nie chce wierzyć by file_get_contents()/fopen() były zablokowane. Zapewne zablokowany jest tylko dostęp do protokołów HTTP(s)/FTP(s), a to zapewne wiąże się z ogólną blokadą portu #80. curl, fsockopen, fopen, skorzystanie z zewnętrzonego programu - to są najpopularniejsze metody.
Go to the top of the page
+Quote Post
marrrecki
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Lublin

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


czasami file_get_contents() blokowane jest "ze względów bezpieczeństwa" pod kątem linkowania do adresów http://. fopen() potrafią nawet wyłączyć.
Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(marrrecki @ 16.11.2010, 08:19:08 ) *
czasami file_get_contents() blokowane jest "ze względów bezpieczeństwa" pod kątem linkowania do adresów http://. fopen() potrafią nawet wyłączyć.

file_get_contents nie ma tu nic do rzeczy - chodzi o wyłączenie dyrektywy allow_url_fopen w ustawieniach PHP.
Go to the top of the page
+Quote Post
marrrecki
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Lublin

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


Masz rację. Zapomniałem jak się ta dyrektywa nazywa, i napisałem jak chłopu na miedzy smile.gif. Dzięki za przypomnienie.
Go to the top of the page
+Quote Post
thek
post
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Dokładnie wczoraj miałem identyczny problem po przeniesieniu serwisu na inny serwer. Okazało się, że dyrektywa allow_url_fopen jest ustawiona na false i część serwisu zwyczajnie się nie wyświetla. Na początku yślałem, że tylko file_get_contents jest bloknięty, ale gdy fopen się wysypało to właśnie curl mnie uratował. Jeśli jednak chcesz nie tyle zapisać do pliku co jako zmienną do ewentualnej obróbki tworzyć to zrezygnuj z CURLOPT_FILE, a postaw na CURLOPT_RETURNTRANSFER i dla pewności CURLOPT_FOLLOWLOCATION. Zresztą zobacz sobie parametry dla curla w curl_setopt


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Kokocky
post
Post #8





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.09.2008

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


Niestety curl nie działa (niema funkcji curl_init() na serwerze). Jest jakiś inny sposób?

Ten post edytował Kokocky 16.11.2010, 15:54:24
Go to the top of the page
+Quote Post
konrados
post
Post #9





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Zmień usługodawcęsmile.gif Albo się z nim skontaktuj.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 21:20