Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[PHP] Includowanie z innego serwera - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: [PHP] Includowanie z innego serwera (/thread-php-includowanie-z-innego-serwera)



[PHP] Includowanie z innego serwera - koorde - 22-05-2008

Chcę, aby plik umieszczony na jednym serwerze został dołączony do strony na innym serwerze. Kod:
Kod PHP:
<? include('http://www.serwer-z-plikiem.pl/plik.txt'); ?>
I wszystko działa, jeśli plik pobiera strona postawiona na serwerze OVH. Bo strony postawione na 8p.pl robią jakiś dziwny błąd: w miejscu, w którym miała pojawić się treść pliku plik.txt urywa się kod strony (widoczne w kodzie źródłowym). I moje pytanie: jak zrobić, by można było includować plik z innego serwera?


RE: [PHP] Includowanie z innego serwera - Radek - 22-05-2008

Aktywowana musi zostać opcja allow_url_fopen. Natomiast dla PHP 5 allow_url_include. Wszystko oczywiście w php.ini chyba, że serwer pozwala manipulować ustawieniami konfiguracji via .htaccess a Ty nie masz dostępu do serwera jak root to wtedy możesz zastosować taki workaround.

Pozdrawiam.


RE: [PHP] Includowanie z innego serwera - koorde - 23-05-2008

Rozwiązałem to inaczej:

Kod PHP:
<?

$stopka 
file_get_contents('http://www.jakis-serwer.pl/plik.txt');
print 
$stopka;

?>

i wszystko ładnie śmiga Big Grin


RE: [PHP] Includowanie z innego serwera - Radek - 26-05-2008

Śmiga do momentu gdy się nie wysypie z powodu błędu o nieistniejącym pliku. Try {} catch nie zadziała.

Z tego też powodu polecam wykorzystać curla:

Kod:
function get_file_content($url)
    {
        $hCurl = curl_init($url);
        
        curl_setopt($hCurl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($hCurl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($hCurl, CURLOPT_TIMEOUT, 5);
    
        $content   = curl_exec($hCurl);
        $response = curl_getinfo($hCurl);
        
        if($response['http_code'] == 200)
        {
            return $content;
        }
        
        return false;
    }

Pozdrawiam.