Google Suggestion Engine no Flex Google moteur de suggestion en Flex


Bem, que não é um bom titulo para um post eu sei, mas foi o que se arranjou. Eh bien, ce n'est pas un bon titre pour un poste, je sais, mais c'est ce qu'il a obtenu.

Desta feita, depois de ver um post no  ( http://www.aboutflex.net ) onde o autor apresentava uma class para AIR ( http://www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/ ) que trabalhava com o motor de sugestões do google para buscar as palavras e sugestões ao google, como achei bem interessante decidi então tentar passar pela restrição do sandbox do flash, que não permite acesso a conteudo de outros sites que não do próprio servidor (possivel apenas com um crossdomain.xml, que o google não gosta), que resultou num script bem simples (no seu final, que os testes foram inumeros) que permite servir de gateway para esse serviço do google. Cette fois-ci, après avoir vu sur un poste (http://www.aboutflex.net) où l'auteur avait une classe pour AIR (http://www.aboutflex.net/flex/flex-class-that-asks-google -pour-suggestions /), qui a travaillé avec le moteur de suggestions de recherche Google pour les mots et les suggestions de Google, comme je l'ai trouvé très intéressant alors décidé d'essayer de passer par la limitation de l'Flash bac à sable, qui ne permet pas d'accéder au contenu d'autres sites qui ne sont pas le serveur lui-même (possible uniquement avec un crossdomain.xml, Google, qui n'aime pas), qui a abouti à un script très simple (dans sa version finale, que les essais ont été nombreux) qui permet de servir de point d'accès à ce service de Google.

Vejam o simples código: Regardez le code simple:

Download: send.php Télécharger: send.php
<?php <? Php
$host = " http://www.google.com " ; $ Host = "http://www.google.com";
$text = $_GET [ ' q ' ] ; $ Texte = $ _GET [ 'q'];
$len = $_GET [ ' cp ' ] ; $ Len = $ _GET [ 'cp'];

$text = str_replace ( " $ Texte = str_replace ( " " , " " , $text ) ; ","% 20 ", $ text);

$instruction = " /complete/search?hl=en&client=suggest&js=true&q= " . $text . " &cp= " . $len ; $ Instruction = "/ complet / search? Hl = fr & client = suggérer & JS = & q = true." $ Texte. "& Cp =". $ Len;
$url = $host . $instruction ; $ Url = $ host. $ Instruction;

if si (( double ) phpversion () >= 4.2 ) ((Double) phpversion ()> = 4.2)
{ (
ini_set ( ' allow_url_fopen ' , ' 1 ' ) ; ini_set ( 'allow_url_fopen','1 ');
} )

$s = @ file_get_contents ( $url ) ; $ S = @ file_get_contents ($ url);
if si ( empty ( $s )) (Empty ($ s))
{ (
echo echo "" ; "";
} )
else autre
{ (
echo echo $s ; $ S;
} )
?> ?>
Download: send.php Télécharger: send.php

Simples não? Simple non?

A nivel do Flex, obtemos as sugestões apenas com a seguinte class: Le niveau de Flex, obtenir des suggestions de la seule classe avec le texte suivant:

Download: gsug.as Télécharger: gsug.as
/**EN: Implementation of google sugestions class for AIR from / ** FR: Mise en oeuvre des suggestions de Google est de classe AIR
* http://www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/ * Http: / / www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/
* *
* PT: Implementação da class google sugestions para AIR de * PT: Mise en oeuvre de la classe de google suggestions pour AIR
* http://www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/ * Http: / / www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/
* *
* http://www.msdevstudio.com * Http: / / www.msdevstudio.com
* *
* The send.php sould be placed on the same path of main .swf file * Le send.php pourrait être mis sur le même chemin de la principale. Fichier SWF
* */ * * /


package paquet com . msdevstudio com. msdevstudio
{ (
import d'importation flash . display . Sprite ; flash. afficheur. Sprite;
import d'importation flash . events . Event ; flash. événements. événement;
import d'importation flash . events . EventDispatcher ; flash. événements. EventDispatcher;

import d'importation mx . collections . ArrayCollection ; mx. collections. ArrayCollection;
import d'importation mx . rpc . events . ResultEvent ; mx. rpc. événements. ResultEvent;
import d'importation mx . rpc . http . HTTPService ; mx. rpc. http. HTTPService;

[ Event ( name = " suggested " , type = " flash.events.Event " )] [Event (name = "suggéré", type = "flash.events.Event")]

public public class classe gsug gsug extends s'étend Sprite Sprite
{ (
public public const const SUGGESTED : String = ' suggested ' Suggestion: String = "suggéré"
private privé var var _dataProvider : ArrayCollection = new _dataProvider: = new ArrayCollection ArrayCollection () ; ArrayCollection ();

public public function fonction gsug () gsug ()
{ (
} )

public public function fonction findSuggests ( string : String ) : void { findSuggests (String: String): void (
var var hs : HTTPService = new h: = new HTTPService HTTPService () ; HTTPService ();
/*use our server-side script send.php to get suggestions*/ / * Utiliser notre script côté serveur send.php pour obtenir des suggestions * /

hs . url = " send.php?q= " string " &cp= " string . length ; pm. url = "send.php? q =" string "& cp =" chaîne. longueur;

hs . addEventListener ( ResultEvent . RESULT , parseResults ) pm. addEventListener (ResultEvent. CONSEQUENCE, parseResults)

hs . send () pm. send ()
} )

protected protégés function fonction parseResults ( e : ResultEvent ) : void { parseResults (e: ResultEvent): void (

var var tmp : Array = e . result . split ( ' new Array ' )[ 1 ] . split ( ' , " ' ) ; tmp: Array = e. résultat. Split ( "new Array») [1]. split ('');
_dataProvider = new _dataProvider = new ArrayCollection () ; ArrayCollection ();
for est ( var (Var i : int = 1 ; i < tmp . length - 1 ; i = 2 ){ i: int = 1; i <tmp. longueur - 1; i = 2) (

tmp [ i ] = tmp [ i ] . replace ( ' " ' , "" ) ; tmp [i] = tmp [i]. remplacer ('', "");
tmp [ i ] = tmp [ i ] . replace ( ' \\ x27 ' , " ' " ) ; tmp [i] = tmp [i]. replace ( '\ \ x27', " '");
_dataProvider . addItem ( tmp [ i ]) ; _dataProvider. AddItem (tmp [i]);

} )
dispatchEvent ( new dispatchEvent (nouveau Event ( ' suggested ' )) ; L'événement ( 'suggéré'));
} )

public public function fonction get obtenir dataProvider () : ArrayCollection { DataProvider (): ArrayCollection (
return retour _dataProvider ; _dataProvider;
} )

} )
} )
Download: gsug.as Télécharger: gsug.as

Podem ver o exemplo a funcionar aqui com o código fonte disponivel Ils peuvent voir l'exemple de travailler ici avec le code source disponible

Para usar em aplicações AIR basta substituir: Pour utiliser dans les applications AIR il suffit de remplacer:

hs.url=”send.php?q=” string ”&cp=” string.length; hs.url = "send.php? q =" string "& cp =" string.length;

por: par:

hs.url=”http://www.google.com/complete/search?hl=en&client=suggest&js=true&q=” string ”&cp=” string.length; hs.url = "http://www.google.com/complete/search?hl=en&client=suggest&js=true&q =" string "& cp =" string.length;

Talvez seja util em algumas aplicações! Il est peut-être utile dans certaines applications!

Abraço. Serrer dans ses bras.

versão pdf temporariamente indisponivel. version pdf temporairement indisponible.
Deixe um comentário or Deixe um Trackback Laissez un commentaire ou laisser un Trackback

3 Comentários 3 Commentaires

  1. Julho 22, 2008 às 12:30 pm | Permalink 22 juillet 2008 à 12:30 pm | Permalink

    Hi Mario, Salut Mario,
    using PHP as bridge is a great idea!! PHP en utilisant le pont est une très bonne idée!
    I’ll use it for my next example !! Je vais l'utiliser pour mon prochain exemple!

  2. Julho 23, 2008 às 10:13 am | Permalink 23 juillet 2008 à 10:13 h am | Permalink

    Hi, Salut,
    as I said, I’ve written a little application that use your bridge and the Adobe AutoComplete component; Comme je l'ai dit, j'ai écrit une petite application qui utilisent votre pont et la saisie semi-automatique composant Adobe;
    this is the link il s'agit du lien

    Let me know what is your impression Permettez-moi de savoir quelle est votre impression

    Cheers, À la vôtre,
    Fedele

  3. Julho 23, 2008 às 11:37 am | Permalink 23 juillet 2008 à 11:37 h am | Permalink

    Hi, i left you a comment, but i repeat, now it really seems a professional and very usefull component! Salut, je vous a laissé un commentaire, mais je le répète, maintenant il semble vraiment être très professionnel et élément utile! :)

    Cheers! À la vôtre!

Deixe um comentário Laisser un commentaire

O seu email nunca será publicado ou partilhado. Votre e-mail n'est jamais publié ou partagé. Campos obrigatórios estão marcados com um * Les champs obligatoires sont marqués d'un *

*
*




"));