Archive for the ‘Funções’ Category

Pegar Código Fonte de Sites Remotos

abril 18th, 2009, posted in Funções, JavaScript, PHP

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 "<b><font color=\"red\">Unable to connect to: $url</font></b>";
  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("<br />"), " ", $buffer);
  58.         $buffer = str_replace(array("\r\n", "\r\n", "\n"), ' ', $buffer);
  59.         $buffer = html_entity_decode($buffer);
  60.  
  61.         return $buffer;
  62.     }
  63. }

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('<? echo $boleto ?>');
  6.     }
  7.     catch(e) {
  8.         alert("Erro: " + e.description);
  9.     }
  10.  
  11.  
  12. }

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


Popularity: 10% [?]