Bir sunucu üzerinde başka bir sayfaya dinamik HTML çıktısı alma (belki? Izle)

4 Cevap php

Ben alakalı eğer, benim iş için MVC framework CodeIgniter'ı kullanıyorum.

Benim sayfa / kontrolörleri birinde, (bir e-posta veya bülten olarak kullanmak için) bir dize olarak sitede başka bir sayfaya tarafından çıkarılan HTML yakalamak istiyorum. Denedim:

$string = file_get_contents('http://www.examplesite.com/path/to/page');

Ama $string sadece belgelerine başarısız demektir diyor ki, false olur. Trajik bir şeyler eksik olmalı ...

4 Cevap

Ben en azından çalışan biraz daha iyi bir çözüm var. Bunu böylece CodeIgniter görünümüne çağrısı için üçüncü bir argüman sağlar:

$string = $this->load->view('path/to/view', '', true);

Bu hala denetleyicisi aramaları çoğaltarak benim ilk endişe gidermek değil, ama en azından daha iyi olur. Bu hala kullanılıyor tam olarak hangi kontrolör bilmek beni gerektirir unutmayın.

Belki cURL kullanarak deneyebilirsiniz. Burada bir örnek görebilirsiniz: http://www.php.net/manual/en/curl.examples-basic.php

fopen_wrappers muhtemelen sunucuda devre dışı bırakılır. Kullanmayı deneyin Curl

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_URL,'http://www.examplesite.com/path/to/page');
$html = curl_exec($ch);

Sen kendi soru cevap var gibi görünüyor. Eğer keyfi bir sayfa yüklemek sağlayacak aşağıdaki yaptığını düşünebilirsiniz:

/* index method inside example controller */
function index($url) {
    $content = $this->load->view(urldecode($url), '', true);
}

// requesting this page generates string output for a specified url
$url = urlencode('/relative/path/to/view/');
http://www.example.com/index.php/example/index/ . $url;