cielos
17.02.2008, 10:34:07
Witam, mam 2 pytania:
1. Czy za pomocą skryptu php mogę ściągnąć plik na serwer z innego serwera? Nie mogę tego pliku otworzyć w skrypcie za pomocą funkcji file, fopen itp. Najprawdopodobniej ma chmody tak ustawione. Czy pomimo tego da się ten plik ściągnąć? Przez przeglądarkę, wpisując link mogę go ściągnąć bez problemu.
2. Czy jest jakiś limit w php na wielkość otwieranego pliku za pomocą funkcji file lub gzfile i czy da się go zmienić?
Serwer na którym skrypty są wywoływane ma wyłączony tryb safe mode.
Pozdrawiam
GrayHat
17.02.2008, 10:53:42
cielos
18.02.2008, 12:10:29
Ok, ale jak wpisuje do robie funkcje fsockopen jako uchwyt do pliku i chce go odczytać to nie idzie. Jak mam to zrobić, żeby odczytać ten plik, albo ściągnąć go? Co mam dokładniej wpisać?
netmare
18.02.2008, 14:05:47
Jeśli możesz zmienić konfigurację serwera, to możesz sobie włączyć allow_url_fopen = On w php.ini.
Jak nie to poczytaj o cURL.
Jeśli nie ma cURL, robisz fsockopen, wysłasz zapytanie HTTP, a następnie odczytujesz odpowiedź.
cielos
18.02.2008, 14:53:24
Czy da się za pomocą cURL otworzyć plik w postaci tabeli?
Do konfiguracji serwera nie mam dostępu.
nowotny
18.02.2008, 15:00:30
Cytat(cielos @ 18.02.2008, 14:53:24 )

Czy da się za pomocą cURL otworzyć plik w postaci tabeli?
Nie rozumiem pytania... co masz na myśli poprzez "plik w postaci tabeli"...?
cielos
18.02.2008, 16:24:49
Chce otworzyć/zapisać ten plik w postaci tabeli, czyli tak jak się otwiera plik za pomocą file()
nowotny
18.02.2008, 16:45:23
Możesz wczytać zawartość do stringa i potem zrobić explode po znakach nowej linii... będziesz miał plik w tablicy...
cielos
18.02.2008, 19:48:24
Niby też prawda

Tylko, że ja pierwszy raz widzę tą funkcje cURL. Pomógłbś mi napisać funkcje odczytującą zawartość pliku z serwera?
nowotny
18.02.2008, 20:07:56
Cytat(cielos @ 18.02.2008, 19:48:24 )

Niby też prawda

Tylko, że ja pierwszy raz widzę tą funkcje cURL. Pomógłbś mi napisać funkcje odczytującą zawartość pliku z serwera?
A co...? manuala i google zamknęli...? :/
Bierzesz funkcję
curl_init" title="Zobacz w manualu PHP" target="_manual, ustawiasz odpowiednie opcje połączenia za pomocą
curl_setopt" title="Zobacz w manualu PHP" target="_manual i wynik
curl_exec" title="Zobacz w manualu PHP" target="_manuala zapisujesz do zmiennej... i masz całą stronę w stringu...
cielos
18.02.2008, 20:31:02
Czy to działa również przy otwieraniu plików tekstowych?
nowotny
18.02.2008, 20:43:30
Jejq... to sobie sprawdź... cURL działa prawie tak jakby to była taka wirtualna przeglądarka... jak wpiszesz sobie dany adres w przeglądarce to po podaniu tego samego adresu w cURLu otrzymasz takie same wyniki...
cielos
20.02.2008, 18:50:08
No więc zacząłem próby z cURL, ale nie wychodzi mi to za bardzo.
Ściągnąłem gotowy skrypt z manuala:
<?php
$ch = curl_init("http://serwer/plik.txt");
$fp = fopen("example_homepage.txt", "w"); curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
Po uruchomieniu wyskakuje mi: "Błąd #7: couldn't connect to host
Gdy wpisuje adres tego pliku w przeglądarce to otwiera mi się bez problemu.
nowotny
20.02.2008, 19:11:05
http://serwer/plik.txt to jest twój localhost czy jakiś plik na serwerze w internecie...?
cielos
20.02.2008, 19:15:55
Plik na serwerze w internecie. Na serwerze innym niż znajduje się strona.
nowotny
20.02.2008, 19:30:12
No to prawdopodobnie musisz jeszcze wysłać jakieś nagłówki... ewentualnie sprawdź sobie jaki konkretnie błąd wyskakuje za pomocą
curl_error" title="Zobacz w manualu PHP" target="_manual lub
curl_errno" title="Zobacz w manualu PHP" target="_manual...
Może być też tak że twój serwer nie pozwala na nawiązywanie połączeń, ale ja nie znam się na tyle na apachu...
cielos
20.02.2008, 19:31:50
Zapomniałem tego wstawić na forum ale w skrypcie mam linijkę z curl_errno i z curl_error i właśnie wyskakuje to co napisałem.
nowotny
20.02.2008, 19:34:12
No to jak możesz to podaj adres do tego pliku... sprawdzimy... inaczej musisz sam kombinować...
cielos
20.02.2008, 19:46:40
nowotny
20.02.2008, 20:09:52
Ten kod co podałeś wcześniej u mnie działa bez problemu na localhoście... Testowałeś na serwerze czy u siebie na localhoście...? Jak na serwerze to najprawdopodobniej coś masz zablokowane...
cielos
20.02.2008, 20:19:24
U mnie na localhoscie wyskakuje, ze funkcja jest zablokowana - mam EasyPHP i widocznie nie ma tego wgranego. Na serwie (cba.pl) nie wyskakuje mi cos takiego, tylko to ten błąd. Wiem, że na serwie jest wyłączona dyrektywa allow_url_fopen czy jakoś tak

To przez to może się tak "walić" ?
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.