Pegar Código Fonte de Sites Remotos

procurando uma maneira de pegar código fonte de um html externo para poder pegar este código e jogar como um template de um Editor TinyMCE eu achei uma função e modifiquei-a para que possa ser aceito passando como variavel tanto em php como em JavaScript. A função é essa:

PHP:
  1. function get_source($url,$caminho,$show_headers=0)
  2. {
  3. if(preg_match('!^http://!',$url))
  4. $url=substr($url,7,strlen($url));
  5.  
  6. if($start=strpos($url,'/'))
  7. $uri=substr($url,$start,strlen($url));
  8. else
  9. $uri='';
  10.  
  11. $fp=fsockopen($url,80,$errno,$errstr,4);
  12. if(!$fp)
  13. {
  14. echo "<strong><span>Unable to connect to: $url</span></strong>";
  15. return false;
  16. }
  17. else
  18. {
  19. $buffer='';
  20. $headers='';
  21.  
  22. fputs($fp,"GET $caminho HTTP/1.0\r\n");
  23. fputs($fp,"Host: $url\r\n");
  24. //fputs($fp,"Referer: http://www.plebian.com\r\n");
  25. fputs($fp,"User-Agent: sourcegetter\r\n");
  26. //fputs($fp,"Cookie: x=y;a=b\r\n");
  27. fputs($fp,"Connection: close\r\n");
  28.  
  29. fputs($fp,"\r\n");
  30. while(!feof($fp))
  31. {
  32. if(!isset($end_of_headers))
  33. {
  34. $header=fgets($fp,4096);
  35. if($header=="\r\n")
  36. $end_of_headers=1;
  37. $headers.=$header;
  38. }
  39. else
  40. {
  41. $buffer.=fgets($fp,4096);
  42. }
  43. }
  44.  
  45. fclose($fp);
  46.  
  47. if($show_headers)
  48. {
  49. $headers=htmlentities($headers);
  50. $headers=nl2br($headers);
  51.  
  52. echo $headers;
  53. }
  54.  
  55. $buffer=htmlentities($buffer);
  56. $buffer=nl2br($buffer);
  57. $buffer = str_replace(array("
  58. "), " ", $buffer);
  59. $buffer = str_replace(array("\r\n", "\r\n", "\n"), ' ', $buffer);
  60. $buffer = html_entity_decode($buffer);
  61.  
  62. return $buffer;
  63. }
  64. }

A única coisa que vale comentar é que passo duas caminho, uma da Url principal e outra do caminho alternativo, ou seja, da subpasta até achar o arquivo que quero pegar o código.

com esta função você consegue pegar o código fonte de uma página, para usar a função é só fazer assim:

PHP:
  1. $boleto = get_source('www.boletophp.com.br','/boletophp/boleto_bb.php',false);

para ver o resultado é só usar a função echo e ver o que sua variavel contém

PHP:
  1. echo $boleto;

caso queira colocar um TimyMCE via JavaScript é só fazer isso:

JAVASCRIPT:
  1. function addTemplate(){
  2.  
  3. try {
  4.  
  5. tinyMCE.activeEditor.setContent('');
  6. }
  7. catch(e) {
  8. alert("Erro: " + e.description);
  9. }
  10.  
  11. }

qualquer dúvida só postar um comentário, ok!

 

{lang: 'pt-BR'}

You can leave a response, or trackback from your own site.
  • Pingback: Dompdf - Notificação de erro | SaberProgramar.com

  • Renato

    Cara não entendi! É só pegar a página em quero descobrir o Código Fonte e por neste código ai ?

  • http://saberprogramar.com/blog/ janderson

    exatamente renato, com esse código aí vc pega o código fonte de um site(o html final, style, js), o dificil é achar utilidade para o mesmo, no meu caso foi útil pois dependia do código fonte para pegar e jogar dentro de um editor de texto, ou seja, uma espécie de template dinamico...

    Cumps.

  • http://www.nossatvonline.net evandro

    HELP. galera to precisando de uma ajudinha. Preciso de um codigo parecido com esse mais que pegue só as linha especifica do codigo, eu tenha esse codigo aqui :

    $_GET = file("http://www.seusite.com");
    echo $_GET[1];
    echo $_GET[2];
    echo $_GET[3];
    echo $_GET[4];
    echo $_GET[7];
    echo $_GET[20];

    mais só que esse codigo só ta fucinando aqui no localhost, se alguem tiver um codigo semelhante me ajudem pufavorrrrrr

  • Gustavo

    código perfeito funcionando como deveria

    muito obrigado me ajudou muito

  • Pingback: TUTORIAL JAVA + FLEX + IREPORT NA PRÁTICA (11) - redeRIA | Agregador de noticias, artigos, tutoriais Flex, Flash, JavaFX, AJAX e Rich internet applications em geral!

  • Paulo

    Janderson,

    Como faria para pegar apenas determinada parte do codigo fonte e não ele inteiro?
    Por exemplo, a parte entre <div class="x"></div> de determinado código.
    Obrigado pela ajuda e parabéns pelo teu conhecimento.

    Abraço

  • eduardo

    Oi
    sou iniciante em php.
    e gostaria de saber como faço para usar este código?
    se eu tenho que colocar ele num html, ou em algum php..
    por favor

    abraço

Subscribe to RSS Feed Follow me on Twitter!