2009-10-21 6 views
6

Estoy desarrollando una página web en la que estoy aceptando palabras de entrada del usuario, y cuando el usuario envía esas palabras, quiero mostrar la definición de esas palabras, o enlaces de wikipedia de esas palabras para obtener más definición sobre esa palabra - algo así como lo siguiente:PHP: ¿script de definición de palabras?

digamos que el usuario enetered 5 palabras:

toast, egg, beans, coffee, tea 

ahora quiero mostrar como ellos:

toast › slices of bread that have been toasted 
egg › animal reproductive body consisting of an ovum or embryotogether with nutritive and protective envelopes 
beans › a small skullcap <link to wikipedia>read more on wikipedia</link> 
coffee › a beverage consisting of an infusion of ground coffee beans 
tea › a beverage made by steeping tea leaves in water <link to wikipedia>read more on wikipedia</link> 

por esas palabras para los que no hay ningún artículo en la wikipedia, no el enlace wiki se mostraría.

¿Alguien me puede sugerir alguna secuencia de comandos PHP de código abierto o paquete que haría esto por mí? Alternativamente, agradecería cualquier sugerencia sobre cómo hacer esto en PHP.

Estoy más interesado en obtener datos de otro sitio web directamente que en el almacenamiento de definiciones de palabras en mi base de datos.

Estoy usando PHP y MySQL.

Respuesta

5

Explotar entrada desinfectado de usuario en palabras individuales mediante el uso de explode() función y luego usar Wikipedia API (ver api.php) para obtener definiciones o enlaces de wiki.
Debería haber otros servicios web aparte de Wikipedia que proporcionan acceso API, solo Google. También this podría ser una buena guía si quieres hacerlo en Javascript.

En general, una API bien formada no depende del idioma. Por lo general, es XML o JSON (ver API Data formats, PHP serializado incluido), para el caso XML se puede utilizar la biblioteca nativa PHP SimpleXML (Guía here) o SimplePie. acaba de obtener & parse!

+1

Esto sólo está disponible para .NET, lo necesito para PHP :( – Prashant

+0

actualmente sólo ayudan para C# en esa página, no para php. – Natrium

+5

enlace ya se ha corregido. – sepehr

5

Le sugiero que utilice la definición de las palabras seleccionadas para Google Define. cuando escribe define: beans, obtendrías una lista de definición de la palabra de google. Estos resultados de búsqueda de Google provienen de varias fuentes, pero el primero es en su mayoría correcto.

Debe utilizar la API de búsqueda de Google para buscar esta palabra, analizar el XML y mostrar el primer resultado al usuario.

Puede utilizar Google API de búsqueda de este tutorial

Citando del Google Search API Documentation

El Google API de búsqueda AJAX es una librería Javascript que le permite incrustar Búsqueda de Google en sus páginas web y otras aplicaciones web. Para Flash, y otros entornos sin Javascript, , la API expone una interfaz RESTful en bruto que devuelve resultados cifrados con JSON que se procesan fácilmente por la mayoría de los idiomas y tiempos de ejecución.


Ejemplo: definen: Vaca a Google Search API volvería detrás muchas definiciones. Obtenga el primer elemento del resultado de búsqueda, analízalo y muéstrelo junto a la palabra.

+0

Sí @Manish, esto será bueno porque Google tiene definiciones de casi todas las palabras. Permítanme probarlo le hará saber si funciona ... – Prashant

+0

Sí. Es por eso que estoy diciendo usar Google. En segundo lugar, cuando termine, dígame si funciona o no. De todos Google APIs que he usado, Search one siempre fue omitido. –

+0

Hola @Manish: Lo intenté pero la consulta 'define: computer' con la palabra' define' no funciona y no devuelve ningún resultado. He verificado esto en ejemplos de muestra. Vaya a http://www.google.com/uds/samples/apidocs/tabbed.html y busque 'define: computer' y haga clic en la pestaña web, no está dando ningún resultado. Creo que google no provi soporte dedicado para buscar definiciones desde su API de búsqueda – Prashant

Cuestiones relacionadas