Google sugerencia en el motor Flex


Bueno, que no es un buen título para un puesto que conozco, pero eso es lo que tengo.

Esta vez, después de ver un post en (http://www.aboutflex.net) en caso de que el autor había una clase de AIR (http://www.aboutflex.net/flex/flex-class-that-asks-google por sugerencias /) que trabajaron con el motor de búsqueda de google, sugerencias para las palabras y sugerencias a google, como me ha parecido muy interesante decidió entonces tratar de pasar por la restricción de la caja de arena Flash, que no permite el acceso al contenido de otros sitios que no el propio servidor (sólo posible con una crossdomain.xml, que Google no le gusta), que se tradujo en un muy sencillo script (en su final, que las pruebas eran muchas) que permite servir como una puerta de acceso a este servicio de Google.

Mira en el simple código:

Descarga: send.php
<? Php
" http://www.google.com " ; $ Host = "http://www.google.com";
$_GET [ ' q ' ] ; $ Texto = $ _GET [ 'q'];
$_GET [ ' cp ' ] ; $ Len = $ _GET [ 'cp'];

str_replace ( " $ Texto = str_replace ( " " %20 " , $text ) ; ","% 20 ", $ texto);

" /complete/search?hl=en&client=suggest&js=true&q= " . $text . " &cp= " . $len ; $ Instrucción = "/ complete / search? Hl = es & client = sugerir y js = & q = true." $ Texto. "Cp =". $ Len;
$host . $instruction ; $ Url = $ host. $ Instrucción;

si ) phpversion () >= 4.2 ) ((Doble) phpversion ()> = 4.2)
(
' allow_url_fopen ' , ' 1 ' ) ; ini_set ( 'allow_url_fopen','1 ');
)

file_get_contents ( $url ) ; $ S = @ file_get_contents ($ url);
si )) (Empty ($ s))
(
echo "";
)
algo más
(
echo $ S;
)
?>
Descarga: send.php

Simple ¿no?

El nivel de Flex, obtener las sugerencias de clase sólo con el texto siguiente:

Descarga: gsug.as
/ ** EN: Aplicación de Google sugerencias clase es de AIR
* Http: / / www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/
*
* PT: Aplicación de la clase de sugerencias para google AIR
* Http: / / www.aboutflex.net/flex/flex-class-that-asks-google-for-suggestions/
*
* Http: / / www.msdevstudio.com
*
* El send.php podría ser colocado en el mismo camino de la principal. Archivo swf
* * /


paquete msdevstudio com. msdevstudio
(
importación display . Sprite ; flash. pantalla. Sprite;
importación events . Event ; flash. acontecimientos. evento;
importación events . EventDispatcher ; flash. acontecimientos. EventDispatcher;

importación collections . ArrayCollection ; mx. colecciones. ArrayCollection;
importación rpc . events . ResultEvent ; mx. rpc. acontecimientos. ResultEvent;
importación rpc . http . HTTPService ; mx. rpc. http. HTTPService;

( name = " suggested " , type = " flash.events.Event " )] [Event (name = "sugirió", type = "flash.events.Event")]

público clase gsug se extiende Sprite
(
público const String = ' suggested ' Sugerencias: String = 'sugirió'
privado var ArrayCollection = new _dataProvider: ArrayCollection = new ; ArrayCollection ();

público función gsug ()
(
)

público función string : String ) : void { findSuggests (cadena: String): void (
var HTTPService = new pm: = new HTTPService ; HTTPService ();
/ * Utilizar nuestro servidor de secuencias de comandos de send.php para obtener sugerencias * /

url = " send.php?q= " + string + " &cp= " + string . length ; horas. url = "send.php? q =" + + cadena "cp =" + cadena. longitud;

addEventListener ( ResultEvent . RESULT , parseResults ) horas. addEventListener (ResultEvent. resultado, parseResults)

send () horas. enviar ()
)

protegidas función e : ResultEvent ) : void { parseResults (e: ResultEvent): void (

var Array = e . result . split ( ' new Array ' )[ 1 ] . split ( ' , " ' ) ; tmp: Array = e. resultado. Split ( "new Array") [1]. split ('');
new _dataProvider = new ; ArrayCollection ();
es (Var int = 1 ; i < tmp . length - 1 ; i += 2 ){ i: int = 1; i <tmp. longitud - 1; i + = 2) (

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

)
dispatchEvent (nuevo ' suggested ' )) ; Evento ( 'sugirió'));
)

público función obtener : ArrayCollection { DataProvider (): ArrayCollection (
volver _dataProvider;
)

)
)
Descarga: gsug.as

Pueden ver el ejemplo de trabajar aquí con código fuente disponible

Para su uso en aplicaciones de simplemente sustituir el aire:

hs.url = "send.php? q =" + + cadena "cp =" + string.length;

por:

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

Tal vez es útil en algunas aplicaciones!

Abrazar.

la versión en formato pdf disponible temporalmente.
Dejar un comentario o una licencia Trackback

3 Comentarios

  1. 22 de julio de 2008 a las 12:30 PM | Enlace permanente

    Hola Mario,
    PHP usando el puente es una gran idea!
    Voy a usarlo para mi siguiente ejemplo!

  2. 23 de julio de 2008 a horas 10:13 am | Permalink

    Hola,
    Como ya he dicho, he escrito una pequeña aplicación que utiliza el puente y el componente de Adobe Autocompletar;
    este es el enlace

    Déjame saber ¿cuál es su impresión de

    ¡Salud!,
    Fedele

  3. 23 de julio de 2008 a horas 11:37 am | Permalink

    Hola, i te dejó un comentario, pero repito, ahora lo que realmente parece ser muy profesional y útil componente! :)

    ¡Salud!!

Déjanos tu comentario

Su dirección de correo electrónico nunca es publicado o compartido. Los campos obligatorios están marcados con un *