Corrigir links na página curl

Então, depois de fazer uma pergunta após a pergunta, as pessoas não entendem o que eu pergunto.

 

Execute esse script. Na sua barra de endereços, você verá … wwww.localhost / thisscriptname.php Agora clique em um link. Olhe para a sua barra de endereços. Redireciona para www.mybroadbank.co.za/xyz

Não quero que ele reoriente lá. Eu quero que ele obtenha o conteúdo do link por meio de curl e para exibi-lo em www.localhost / thisscriptnameoranyname.php

Por favor ajude. obrigado

Isso ocorre porque a resposta CURL traz todo o código html desse URL e aplica-se à sua página atual. Assim, todos os links retornados para sua página estão vinculados ao URL de destino (que é http://www.mybroadband.co.za/ ). Isso resulta em algo assim na resposta:

 XYZ ABC 

Assim, quando você clica nesses links, ele irá direcioná-lo para http://www.mybroadband.co.za/something . O que você precisa não deve ser redirecionado para essas páginas, mas, em vez disso, exiba o conteúdo em sua página localhost? Supondo que eu esteja certo.

Então, para resolver este problema, você precisa editar a resposta do CURL na qual você transforma essas tags de âncora HTML (links) acima em:

 XYZ ABC 

Em seguida, basta codificar uma function getPage($link) em Javascript, usando AJAX para solicitar a página de $ link e retornar, assim como o que você fez.

Para explicar o que está acontecendo: faz exatamente o que você quer. Mas o navegador interpreta o HTML para que você veja a página. Se você quiser ver o código HTML atual, use echo htmlspecialchars($curl_response); . Colocá-lo em uma área de texto pode não produzir os resultados corretos.

Se você deseja replace todos os links dentro do código HTML para que ele permaneça em sua página, então é um jogo de bola diferente. Você precisará analisar o código HTML e substituí-los, usando coisas como preg_replace e str_replace.

Remova a marca do header do texto recuperado. Isso faz com que todos os links sejam baseados no site original, e não na sua versão proxied:

 < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- remove this line 

No entanto, se você está apenas passando cegamente pelo texto sem fazer nada, provavelmente deveria colocar isso em um iframe e salvar a largura de banda em seu servidor.