He creado esta API para que todo aquel que lo desee pueda crear su propio diccionario balear - español en su web. El uso es totalmente libre y lo único que pido a cambio es un simple enlace a esta web y que se indique que se está usando esta API.
Su uso es realmente sencillo. Los parámetros se pasan por GET y son procesados por la base de datos, generando una respuesta JSON. La base de datos los procesará como expresiones regulares MYSQL a menos que no encuentre algún parámetro excepto el comodín "%", en cuyo caso los procesará como "LIKE"
Parece complicado, pero en realidad es muy sencillo y lo mejor es poner unos ejemplos:
https://diccionariobalear.com.es/api/?es=^eje$ | nos devolverá eje "Sólo la palabra que se haya buscado, sensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=eje | nos devolverá eje "Como el caso anterior, pero insensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=%eje% | nos devolverá eje, peje, ejercicio, ejército, etc. "Cualquier palabra/frase que contenga en cualquier parte la palabra eje, insensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=%eje | nos devolverá eje, esqueje, etc "Cualquier palabra/frase que termine por eje, insensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=eje% | nos devolverá eje, ejercicio, ejército, etc "Cualquier palabra/frase que empiece por eje, insensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=.eje | nos devolverá peje, esqueje, etc "Cualquier palabra/frase que Contenga almenos un caracter a la izquierda de eje, sensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=eje. | nos devolverá ejercicio, pejesapo, tejer, etc "Cualquier palabra/frase que Contenga almenos un caracter a la derecha de eje, sensible a acentos/tildes." |
https://diccionariobalear.com.es/api/?es=eje|carro | nos devolverá eje, peje, carro, macarrones, etc "Cualquier palabra/frase que contenga eje o carro, sensible a acentos/tildes." |
Si deseamos buscar en balear el método es exactamente el mismo pero con la variable GET "bal".
Por ejemplo: https://diccionariobalear.com.es/api/?bal=abreEn realidad se pueden usar infinidad de condiciones al realizar la búsqueda con patrones regulares. Aquí hemos visto un uso muy básico. Para todo aquel que quiera profundizar más en el tema, puede visitar esta web
Interesa tener claras dos cosas:
1ª - Si se usa la búsqueda por el método de expresiones regulares, ésta será sensible a las tildes/acentos y para solventarlo habrá que recurrir a condiciones más complejas, por lo que recomiendo el uso exclusivo del método LIKE, que será más que suficiente para la mayoría de necesidades.
2ª - Bajo ningún concepto se pueden mezclar, es decir, si usas el comodí "%", en dicha consulta no cabe ninguna expresión regular, o obtendrás un bonito error. Así mismo también encontrarás errores si las expresiones regulares que insertes no son correctas. Por ejemplo "??eje" devolverá un error.
if(!isset($_GET['es']) && !isset($_GET['bal'])) {$dato = "?bal=abre";} // en el ejemplo si no hay datos en el GET, se procesa la palabra balear "abre"
elseif(isset($_GET['es'])) {$dato = "?es=".$_GET['es'];} // en el ejemplo si se encuentra la palabra en español, se ignora todo lo demás y se procesa
else {$dato = "?bal=".$_GET['bal'];} // en el ejemplo si no se cumple lo anterior, se entiende que es balear
// leemos el contenido que devuelve el diccionario y decodificamos el JSON
$datos = file_get_contents("https://diccionariobalear.com.es/api/".$dato);
// Por alguna razón, por ejemplo la versión de PHP, pueden generarase caracteres basura antes del JSON, esto los eliminará
$datos = trim($datos, "\xEF\xBB\xBF");
$resultados = json_decode($datos, true);
// evitamos el error del foreach si el array está vacío
if(!empty($resultados)) {
$cont = 0; // Opcional para obtener el total de resultados
// Para el ejemplo usaré una tabla, debe iniciarse y terminarse fuera del foreach obviamente.
echo "<table>";
// recorremos el array multidimensional
foreach ($resultados as $resultados => $resultados_array)
{
$cont += 1; // Opcional para obtener el total de resultados
echo "<tr><td><b>Baléà: </b></td><td>".$resultados_array['balea']."</td><td><b>Español: </b></td><td>".$resultados_array['espanol']."</td></tr>"; // presentamos en pantalla los resultados dentro de la tabla
} // cerramos el foreach
echo "</table>"; // cerramos la tabla
echo "<br />Se han encontrado ".$cont." resultados"; // Opcional para obtener el total de resultados
} // Fin del evitar error del foreach
else {echo "No se encontraron resultados";} // se muestra si no hay resultados