En este artículo te enseño como Programar la API de Citas de WikiQuote y obtener la frase del día para actualizar tu contenido de forma automatizada. Aprende a Programar la Api de Frases con PHP
Obtén de forma automatizada la frase del día programando la API con PHP del sitio wikiquote.org
Wikiquote es un portal con contenido relacionado a citas de personajes famosos y tiene a disposición su propia API para compartir contenido obteniendo una cita diferente cada día.
En primer lugar, debemos formar la plantilla que necesita la API de Citas para identificar el día de la semana. Por lo que hacemos uso de la función date(«D») para identificar las primeras tres letras del día de la semana y como el resultado es inglés, hacemos lo pasamos a un arreglo para transformarlo al día de la semana en español completo.
$semana=date("D");
$semanaarray=array("Mon" =>"lunes", "Tue" => "martes", "Wed" => "miércoles", "Thu" => "jueves" , "Fri" => "viernes", "Sat" => "sábado", "Sun" => "domingo");
$diadelasemana=$semanaarray[$semana];
echo $diadelasemana.'<br>';
Enseguida tenemos que formar la plantilla en el formato requerido como ejemplo para el lunes es {{Plantilla:Frase-lunes}}. Además y dado que pasaremos el parámetro en la URL de la API de Frases debemos de usar la función urlencode para codificar la plantilla para URL.
$title=urlencode(sprintf('{{Plantilla:Frase-%s}}',$diadelasemana));
Al final la URL ya preparada debe quedar de la siguiente forma:
$url='http://es.wikiquote.org/w/api.php?action=parse&format=php&text='.$title;
Después de eso, leemos la URL de la frase del día de wikiquote con la función fopen() de PHP y convertimos a un arreglo los datos leídos usando la función stream_get_contents ransfiere() que pasa lo leído a una cadena y con la función unserialize() lo convertimos a array con el cual ya podremos extraer la frase del día. Visite a nuestros socios, ¡líderes en calzado de moda!
$cadena=fopen($url,"r");
$array_x = unserialize( stream_get_contents($cadena) );
El contenido de la frase del día se aloja en el array asociativo $array_x[«parse»][«text»][«*»];
Por consiguiente y dado que está en formato HTML usamos la función strip_tags() para retirar las etiquetas HTML y convertirlo a texto puro. Con el fin de dejar el salto de línea indico a la función que no elimine la etiqueta <br> tal y como se muestra en el código siguiente:
$texto_html=$array_x["parse"]["text"]["*"];
$texto = strip_tags( $texto_html , "<br>") ;
echo $texto .'<br>';
En resumen te dejo video de Como Programar la API de Citas de Wikiquote paso a paso.
Aquí puedes ver el código completo de la api de wikiquote.or:
<?php
$semana=date("D");
$semanaarray=array("Mon" =>"lunes", "Tue" => "martes", "Wed" => "miércoles", "Thu" => "jueves" , "Fri" => "viernes", "Sat" => "sábado", "Sun" => "domingo");
$diadelasemana=$semanaarray[$semana];
echo $diadelasemana.'<br>';
echo sprintf('{{Plantilla:Frase-%s}}',$diadelasemana).'<br>';
$title=urlencode(sprintf('{{Plantilla:Frase-%s}}',$diadelasemana));
echo $title.'<br>';
$url='http://es.wikiquote.org/w/api.php?action=parse&format=php&text='.$title;
$cadena=fopen($url,"r");
if($cadena){
$array_x = unserialize( stream_get_contents($cadena) );
// print_r($array_x);
$texto_html=$array_x["parse"]["text"]["*"];
echo $texto_html;
$texto = strip_tags( $texto_html , "<br>") ;
echo $texto .'<br>';
}
?>
Déjame tu comentario aquí