Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Com Esse Script.. Roda No Easy Php.. Na Web Não..


bsmachado

Pergunta

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&amp;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

  • 0

Não sei se foi você quem retirou os créditos do script...

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

$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( 'ã', 'á', 'à', 'â', 'Â', 'À', 'Á', 'Ã', 'Ê', 'È', 'É', 'ê', 'é', 'è', 'Í', 'Ì', 'Ĩ', 'Î', 'í', 'ì', 'î', 'ĩ', 'ô', 'õ', 'ó', 'ò', 'ô', 'Ô', 'Õ', 'Ó', 'Ó', 'û', 'ú', 'ũ', 'ù', 'u', 'Û', 'Ú', 'Ù', 'Ũ', 'ç', 'Ç' );

        return str_replace( $pattern, $replace, $string );
    }

    function getData () {

        $fp = fsockopen( 'www.google.pt', 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.pt\r\n";
        $header .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
        $header .= "Referer: http://www.google.pt/webhp?hl=pt-PT&btnG=Pesquisar\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 - blastelf@gmail.com</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

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...