Peguei um script que faz uma busca no google e mostra a palavra pesquisada. A pesquisa é feita dentro do site Wikipedia... No EasyPHP roda legal... agora quando ponho no servidor do site, não roda...
$msg = 'Não foi encontrada nenhuma definição para <b>'. $this->define .'</b>. <br />Sugestões:<blockquote>- Verifique que nenhuma palavra contém erros ortográficos.<br>- <a href=http://www.google.pt/search?hl=pt-PT&que='. $this->define .'"> procura na web </a> por documentos que contêm <b>"'. $this->define .'"</b><br></blockquote></body></html>';
$html[] = '<meta name="description" content="Script escrito em PHP que utiliza a funçao define do google para procurar por definições de plavavras" />';
Pergunta
bsmachado
Olá Galera beleza??
Peguei um script que faz uma busca no google e mostra a palavra pesquisada. A pesquisa é feita dentro do site Wikipedia... No EasyPHP roda legal... agora quando ponho no servidor do site, não roda...
O erro da na linha
$fp = fsockopen( 'www.google.com.br', 80, $errno, $errstr, 2 );
Dizendo que não da pra conectar com o Google... se eu alguém souber como arrumo isso.. Ficarei grato... valeu pela atenção
<?php
$google = new google;
$google->form( $_POST );
$google->define( $_POST );
class google {
var $lang = '';
var $num = '';
var $define = '';
function define( $post ) {
if(empty( $post['define'] )) {
die( '</body></html>' );
}
$this->define = $post['define'];
$this->lang = $post['lang'];
$this->num = empty( $post['num'] ) ? 1 : $post['num'];
$data = $this->getData();
if(empty( $data )) {
return false;
}
$defined = $this->parse_data( $data );
if(!$defined) {
$msg = 'Não foi encontrada nenhuma definição para <b>'. $this->define .'</b>. <br />Sugestões:<blockquote>- Verifique que nenhuma palavra contém erros ortográficos.<br>- <a href=http://www.google.pt/search?hl=pt-PT&que='. $this->define .'"> procura na web </a> por documentos que contêm <b>"'. $this->define .'"</b><br></blockquote></body></html>';
die( $msg );
}
echo $defined;
}
function parse_data( $data ) {
$define = explode( '<ul type="disc">', $data );
if(!empty( $define[1] )) {
$define = explode( '</ul>', $define[1] );
preg_match_all( '/<a href="(.*?)">/', $define[0], $links );
foreach( $links[1] as $link ) {
$pattern[] = "/". preg_quote( $link, '/' ) ."/";
$replace[] = "http://www.google.pt". $link;
}
$define = preg_replace( $pattern, $replace, $define[0] );
$define = explode( '<p></p>', $define );
$defined = '';
for($x = 0; $x < $this->num; $x++ ) {
if(count( $define ) >= $this->num) {
$defined .= $define[$x].'<p></p>';
}
}
if(empty( $defined )) {
foreach( $define as $value ) {
$defined .= $value."<p></p>";
}
}
return $this->fix_string( $defined ).'</body></html>';
}
return false;
}
function fix_string ( $string ) {
$pattern = array( 'ã', 'á', 'à ', 'â', 'Â', 'À', 'Ã<81>', 'Ã', 'Ê', 'È', 'É', 'ê', 'é', 'è', 'Ã<8d>', 'ÃŒ', 'Ĩ', 'ÃŽ', 'Ã', 'ì', 'î', 'Ä©', 'ô', 'õ', 'ó', 'ò', 'ô', 'Ô', 'Õ', 'Ó', 'Ó', 'û', 'ú', 'Å©', 'ù', 'u', 'Û', 'Ú', 'Ù', 'Ũ', 'ç', 'Ç' );
$replace = array( 'ã', 'á', 'à', 'â', 'Â', 'À', 'Á', 'Ã', 'Ê', 'È', 'É', 'ê', 'é', 'è', 'Í', 'Ì', 'I~', 'Î', 'í', 'ì', 'î', 'i~', 'ô', 'õ', 'ó', 'ò', 'ô', 'Ô', 'Õ', 'Ó', 'Ó', 'û', 'ú', 'u~', 'ù', 'u', 'Û', 'Ú', 'Ù', 'U~', 'ç', 'Ç' );
return str_replace( $pattern, $replace, $string );
}
function getData () {
$fp = fsockopen( 'www.google.com.br', 80, $errno, $errstr, 2 );
if(!$fp) {
die( "Não foi possivel conectar ao google $errno ($errstr)");
}
$header = 'GET /search?que=define%3A'. urlencode( $this->define ) .'&hl=pt-PT&oi=definel&defl='. $this->lang ." HTTP/1.1\r\n";
$header .= "Host: www.google.com.br\r\n";
$header .= "User-Agent: {$_SERVER['HTTP_USER_AGENT]}\r\n";
$header .= "Referer: http://www.google.com.br/webhp?hl=pt-PT&am...r\n";
$header .= "Connection: close\r\n\r\n";
fwrite( $fp, $header );
$data = '';
while(!feof( $fp )) {
$data .= fgets( $fp, 4000 );
}
fclose( $fp );
return $data;
}
function form ( $value = '' ) {
$html[] = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
$html[] = '<html>';
$html[] = '<head>';
$html[] = '<title>Google Define criado por kingless - </title>';
$html[] = '<meta http-equiv=Content-Type" content="text/html; charset=ISO-8859-1" />';
$html[] = '<meta name="keywords" content="google, define, google define, kingless, defined, php, php5" /> ';
$html[] = '<meta name="description" content="Script escrito em PHP que utiliza a funçao define do google para procurar por definições de plavavras" />';
$html[] = '<style type="text/css">';
$html[] = '#form { font-size: 0.9em; font-family: verdana, arial; margin-left: auto; margin-right: auto; }';
$html[] = '#definir { border: 1px solid silver; }';
$html[] = '.input { border: 1px solid silver; }';
$html[] = 'a:link, a:visited, a:hover, a:active { text-decoration: none; }';
$html[] = '</style>';
$html[] = '</head>';
$html[] = '<body>';
$define = empty( $value['define] ) ? '' : $value['define'];
$num = empty( $value['num'] ) ? 1 : $value['num'];
$form[] = '<form action="" method="post">';
$form[] = '<table id="form"><tr><td>Definir:</td> <td><input class="input" type="text" name="define" value="'. $define .'" /></td></tr>';
$form[] = '<tr><td>Idioma:</td> <td><select class="input" name="lang">';
$form[] = '<option value="pt">Português</option>';
$form[] = '<option value="en">Inglês</option>';
$form[] = '<option value="es">Espanhol</option>';
$form[] = '<option value="fr">Francês</option>';
$form[] = '<option value="nl">Holandês</option>';
$form[] = '<option value="it">italiano</option>';
$form[] = '<option value="es">Espanhol</option>';
$form[] = '<option value="all">Todas as linguas</option>';
$form[] = '</select></td></tr>';
$form[] = '<tr><td># Resultados:</td> <td><input class="input" type="text" name="num" value="'. $num .'" /></td></tr>';
$form[] = '<tr> <td align="right" colspan="2"><input id="definir" type="submit" name="definir" value="definir" /></td></tr></table>';
$form[] = '</form> <br />';
echo implode( "\r\n", $html );
echo implode( "\r\n", $form );
}
}
?>
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.