← Tutoriais

[PHP] Google Define

Lida 2489 vezes

Offline

kingless 
Membro
Mensagens 857 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2 Level 1

Este script que criei vai buscar definições de palavras ao google... é uma ferramenta muito boa.

Download:
http://www.kingless.net/download.php?filename=define.php

Source Code:
http://www.kingless.net/download.php?filename=define.php;source

Demo:
http://www.kingless.net/define.php

Código: [Seleccione]

<?php
        
///////////////////////////////////////////
       /////         Google Define      ////// 
      ////  By kingless - blastelf@gmail.com //// 
     ///////////////////////////////////////////   
    /// Este script vai buscar definições   /// 
   // de palavras ao google.        // 
  ///////////////////////////////////////////

$google = new google;

$google->form&#40; $_POST &#41;;

$google->define&#40; $_POST &#41;;

class google &#123;

var $lang '';
var $num '';
var $define '';

function define&#40; $post &#41; &#123;

if&#40;empty&#40; $post['define'&#93; &#41;&#41; &#123;
die&#40; '</body></html>' &#41;;
&#125;

$this->define $post['define'&#93;;
$this->lang $post['lang'&#93;;

$this->num = empty&#40; $post['num'&#93; &#41; ? 1 &#58; $post['num'&#93;;

$data $this->getData&#40;&#41;;

if&#40;empty&#40; $data &#41;&#41; &#123;
return false;
&#125;

$defined $this->parse_data&#40; $data &#41;;

if&#40;!$defined&#41; &#123;
$msg  'Não foi encontrada nenhuma definição para <b>'$this->define .'</b>. <br />Sugestões&#58;<blockquote>- Verifique que nenhuma palavra contém erros ortográficos.<br>- <a href="http&#58;//www.google.pt/search?hl=pt-PT&amp;q='$this->define .'"> procura na web </a>  por documentos que contêm <b>"'$this->define .'"</b><br></blockquote></body></html>';

die&#40; $msg &#41;;
&#125;

echo $defined;
&#125;

function parse_data&#40; $data &#41; &#123;

$define explode&#40; '<ul type="disc">', $data &#41;;

if&#40;!empty&#40; $define[1&#93; &#41;&#41; &#123;
$define explode&#40; '</ul>', $define[1&#93; &#41;;

preg_match_all&#40; '/<a href="&#40;.*?&#41;">/', $define[0&#93;, $links &#41;;

foreach&#40; $links[1&#93; as $link &#41; &#123;
$pattern[&#93; = "/". preg_quote&#40; $link, '/'  &#41; ."/";
$replace[&#93; = "http&#58;//www.google.pt". $link;
&#125;

$define preg_replace&#40; $pattern, $replace, $define[0&#93; &#41;;

$define explode&#40; '<p></p>', $define &#41;;

$defined '';

for&#40;$x = 0; $x < $this->num; $x++ &#41; &#123;
if&#40;count&#40; $define &#41; >= $this->num&#41; &#123;
$defined .= $define[$x&#93;.'<p></p>';
&#125;
&#125;

if&#40;empty&#40; $defined &#41;&#41; &#123;
foreach&#40; $define as $value &#41; &#123;
$defined .= $value."<p></p>";
&#125;
&#125;

return $this->fix_string&#40; $defined &#41;.'</body></html>';
&#125;

return false;
&#125;

function fix_string &#40; $string &#41; &#123;
$pattern = array&#40; 'ã', 'á', 'à', 'â', 'Â', 'À', 'Ã<81>', 'Ã', 'Ê', 'È', 'É', 'ê', 'é', 'è', 'Ã<8d>', 'ÃŒ', 'Ĩ', 'ÃŽ', 'í', 'ì', 'î', 'Ä©', 'ô', 'õ', 'ó', 'ò', 'ô', 'Ô', 'Õ', 'Ó', 'Ó', 'û', 'ú', 'Å©', 'ù', 'u', 'Û', 'Ú', 'Ù', 'Ũ', 'ç', 'Ç' &#41;;

$replace = array&#40; 'ã', 'á', 'à', 'â', 'Â', 'À', 'Á', 'Ã', 'Ê', 'È', 'É', 'ê', 'é', 'è', 'Í', 'Ì', '&#296;', 'Î', 'í', 'ì', 'î', '&#297;', 'ô', 'õ', 'ó', 'ò', 'ô', 'Ô', 'Õ', 'Ó', 'Ó', 'û', 'ú', '&#361;', 'ù', 'u', 'Û', 'Ú', 'Ù', '&#360;', 'ç', 'Ç' &#41;;

return str_replace&#40; $pattern, $replace, $string &#41;;
&#125;

function getData &#40;&#41; &#123;

$fp fsockopen&#40; 'www.google.pt', 80, $errno, $errstr, 2 &#41;;

if&#40;!$fp&#41; &#123;
die&#40; "Não foi possivel conectar ao google $errno &#40;$errstr&#41;"&#41;;
&#125;

$header 'GET /search?q=define%3A'urlencode&#40; $this->define &#41; .'&hl=pt-PT&oi=definel&defl='. $this->lang ." HTTP/1.1\r\n";
$header .= "Host&#58; www.google.pt\r\n";
$header .= "User-Agent&#58; &#123;$_SERVER['HTTP_USER_AGENT'&#93;&#125;\r\n";
$header .= "Referer&#58; http&#58;//www.google.pt/webhp?hl=pt-PT&btnG=Pesquisar\r\n";
$header .= "Connection&#58; close\r\n\r\n";

fwrite&#40; $fp, $header &#41;;

$data '';

while&#40;!feof&#40; $fp &#41;&#41; &#123;
$data .= fgets&#40; $fp, 4000 &#41;;
&#125;

fclose&#40; $fp &#41;;

return $data;
&#125;

function form &#40; $value = '' &#41;  &#123;

$html[&#93; = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
$html[&#93; = '<html>';
$html[&#93; = '<head>';
$html[&#93; = '<title>Google Define criado por kingless - blastelf@gmail.com</title>';
$html[&#93; = '<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />';
$html[&#93; = '<meta name="keywords" content="google, define, google define, kingless, defined, php, php5" /> ';
$html[&#93; = '<meta name="description" content="Script escrito em PHP que utiliza a funçao define do google para procurar por definições de plavavras" />';
$html[&#93; = '<style type="text/css">';
$html[&#93; = '#form &#123; font-size&#58; 0.9em; font-family&#58; verdana, arial; margin-left&#58; auto; margin-right&#58; auto; &#125;';
$html[&#93; = '#definir &#123; border&#58; 1px solid silver; &#125;';
$html[&#93; = '.input &#123; border&#58; 1px solid silver; &#125;';
$html[&#93; = 'a&#58;link, a&#58;visited, a&#58;hover, a&#58;active &#123; text-decoration&#58; none; &#125;';
$html[&#93; = '</style>';
$html[&#93; = '</head>';
$html[&#93; = '<body>';

$define = empty&#40; $value['define'&#93; &#41; ? '' &#58; $value['define'&#93;;
$num = empty&#40; $value['num'&#93; &#41; ? 1 &#58; $value['num'&#93;;

$form[&#93; = '<form action="" method="post">';
$form[&#93; = '<table id="form"><tr><td>Definir&#58;</td> <td><input class="input" type="text" name="define" value="'. $define .'" /></td></tr>';
$form[&#93; = '<tr><td>Idioma&#58;</td> <td><select class="input" name="lang">';
$form[&#93; = '<option value="pt">Português</option>';
$form[&#93; = '<option value="en">Inglês</option>';
$form[&#93; = '<option value="es">Espanhol</option>';
$form[&#93; = '<option value="fr">Francês</option>';
$form[&#93; = '<option value="nl">Holandês</option>';
$form[&#93; = '<option value="it">italiano</option>';
$form[&#93; = '<option value="es">Espanhol</option>';
$form[&#93; = '<option value="all">Todas as linguas</option>';
$form[&#93; = '</select></td></tr>';
$form[&#93; = '<tr><td># Resultados&#58;</td> <td><input class="input" type="text" name="num" value="'. $num .'" /></td></tr>';
$form[&#93; = '<tr> <td align="right" colspan="2"><input id="definir" type="submit" name="definir" value="definir" /></td></tr></table>';
$form[&#93; = '</form> <br />';

echo implode&#40; "\r\n", $html &#41;;
echo implode&#40; "\r\n", $form &#41;;
&#125;
&#125;
?>