Como procurar outra página no PHP

Estou à procura da maneira mais rápida e fácil de arranjar uma página no PHP. Eu não quero que o usuário seja redirecionado, eu só quero que meu script retorne o mesmo conteúdo, código de resposta e cabeçalhos como outra URL remota.

 7
Author: Nathan H, 2011-06-21

3 answers

echo file_get_contents('proxypage'); Isso funcionaria?

Editar:

A primeira resposta foi um pouco curta, e não acredito que vá lidar com cabeçalhos como você gostaria.

No entanto, também pode fazer isto:

function get_proxy_site_page( $url )
{
    $options = [
        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => true,     // return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
        CURLOPT_TIMEOUT        => 120,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
    ];

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $remoteSite = curl_exec($ch);
    $header = curl_getinfo($ch);
    curl_close($ch);

    $header['content'] = $remoteSite;
    return $header;
}

Isto irá devolver-lhe um array contendo muitas informações na página remota. $header['content'] terá tanto o conteúdo do site como os cabeçalhos, $header[header_size] irá conter o comprimento desse cabeçalho para que possa usar substr para os dividir.

Então é só uma questão de usando echo e header para substituir a página.
 10
Author: klennepette, 2018-01-12 14:00:21

Pode usar as funções de cURL do PHP para atingir esta funcionalidade:

Http://www.php.net/curl

// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// grab URL and pass it to the browser
$urlContent = curl_exec($ch);

A partir deste ponto, você obteria a informação do cabeçalho de resposta usando http://www.php.net/curl-getinfo . (existem vários valores que pode obter, todos listados na documentação).

// Check if any error occured
if(!curl_errno($ch))
{
    $info = curl_getinfo($ch);
    header('Content-Type: '.$info['content_type']);
    echo $urlContent;
}
Certifique-se de fechar a maçaneta.
// close cURL resource, and free up system resources
curl_close($ch);
 4
Author: forgueam, 2018-01-12 14:02:01

Você pode obter o html da próxima página com o curl, e depois ecoar a resposta.

 0
Author: Question Mark, 2011-06-21 13:11:10