Archivo de la categoría: PHP

Todo lo relacionado con la programación en PHP

Detección de Genero con Gender API o Genderize.io

A la hora de detectar el genero de una persona en base al nombre, nos podemos ayudar de dos servicios web, gender API y Genderize.io. Los dos funcionan estupendamente, y los dos tienen un limite de peticiones, y funcionan los dos muy rápidos, y tienen los  dos un funcionamiento prácticamente igual. He creado un gist que usa los dos servicios, por defecto usa Gender API, y que esta configurado para España, aunque se puede cambiar para cualquier país cambiando el código de país.

Mas info: https://gender-api.com y https://genderize.io

Anuncios

Uso de array_map para codificar los valores de un Array

En alguna situación nos podemos encontrar con la necesidad de tener que codificar todos los valores de un array. Un método largo seria por medio de un foreach o el for, o podemos usar array_map para aplicar una función a todos lo valores contenidos en el array.

 

$encodedArray = array_map("utf8_encode", $decodedArray);

Mas Info: http://php.net/manual/es/function.array-map.php

¿Como saber cuando cae el domingo de pascua de un año en particular con PHP? – Funciones curiosas de PHP

Hace poco que ha pasado la Semana Santa y las fechas en las que cae es algo que nos preguntamos cada año, es muy típica la conversación – ¿Oye el año que viene cuando cae Semana Santa?, puff ni idea.

Hagamos un poco de historia:

La fecha del Domingo de Pascua fue definida por el Concilio de Nicea en el año 325 D.C. como el domingo después de la primera luna llena que cae en o después del Equinocio de Primavera. El equinoccio se asume que cae en el 21 de marzo, por lo que el cálculo se reduce a determinar la fecha de la luna llena y la fecha del siguiente domingo.

Para poder calcular cuando cae ese Domingo en un año en particular, podemos usar 2 funciones con PHP, easter_days() y easter_date().

easter_date

Obtener la fecha Unix para la medianoche de Pascua de un año dado


<span class="type">int</span> <span class="methodname">easter_date</span> ([ <span class="methodparam"><span class="type">int</span> <code class="parameter">$year</code><span class="initializer"> = date("Y")</span></span> ] )

Si no le pasamos ningún parámetro nos devuelve la fecha Unix del domingo de pascua del año actual. Esta función tiene un problema, y es nos devolverá un error si en año no esta en el rango de 1970 y 2037, lo cual es lógico si nos devuelve la fecha Unix. Para calcular cuando cae el domingo de Pascua en años anteriores o posteriores a ese rango utilizaremos easter_days.

easter_days

Obtener el número de días despúes del 21 de marzo en el cuál cae Pascua para un año dado


<span class="type">int</span> <span class="methodname">easter_days</span> ([ <span class="methodparam"><span class="type">int</span> <code class="parameter">$year</code><span class="initializer"> = date("Y")</span></span> [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$method</code><span class="initializer"> = CAL_EASTER_DEFAULT</span></span> ]] )

+ información: http://php.net/manual/es/function.easter-date.php http://php.net/manual/es/function.easter-days.php

Agregar mas de un destinatario al enviar Mails con Zend_Mail – Zend Framework

Supongamos el siguiente ejemplo de Zend_Mail


$mail = new Zend_Mail()

$mail->setBodyText('This is the text of the mail.');

$mail->setFrom('somebody@example.com', 'Some Sender');

$mail->addTo('somebody_else@example.com', 'Some Recipient');

$mail->addCc('somebody_else@example.com', 'Some Recipient');

$mail->addBcc('somebody_else@example.com', 'Some Recipient');

$mail->setSubject('TestSubject');

$mail->send();

Si queremos agregar mas de un destinatario al addTo(), addCc() y al addBcc() lo podemos hacer por medio de un array de direcciones de correo. En el caso del addTo() y el addCc(), estas arrays pueden ser asociativas, y en estas la key es el nombre del destinatario. Es decir:


$toRecipients = array('Some Recipient' => 'somebody_else@example.com', 'Other' => 'other@example.com');

$hideRecipients = array('one@example.com', 'two@example.com');

$mail->addTo($toRecipients);

$mail->addCc($toRecipients);

$mail->addBcc($hideRecipients);

+ Información: http://framework.zend.com/manual/1.12/en/zend.mail.adding-recipients.html

Función para eliminar los espacios no deseados dentro de un texto

Alguna vez nos podemos encontrar con que a la hora de que el usuario introduzca texto en nuestra aplicación, este de una manera “no voluntaria” nos ponga espacios en blanco extra. Esto lo podemos solucionar de una manera simple con un trim() o ltrim() o rtrim(), ¿pero que pasa si los espacios extras estan dentro del texto? Para esto he creado una función la cual nos deja solo un espacio entre palabras.

PHP CURL POST & GET Examples – Submit Form using PHP CURL

Sourabh Jain

In PHP CURL POST tutorial, I have explained how to send HTTP GET / POST requests with PHP CURL library.

Below are the examples covered in this article.
1) Send HTTP GET Request with CURL
2) Send HTTP POST Requests with CURL
3) Send Random User-Agent in the Requests
4) Handle redirects (HTTP 301,302)
5) Handle Errors.

Why we need PHP CURL ?
To send HTTP GET requests, simply we can use file_get_contents() method.

1
file_get_contens('http://hayageek.com')

But sending POST request and handling errors are not easy with file_get_contents().

Sending HTTP requests is very simple with PHP CURL.You need to follow the four steps to send request.

step 1). Initialize CURL session

1
$ch= curl_init();

step 2). Provide options for the CURL session

1
2
3
curl_setopt($ch,CURLOPT_URL,"http://hayageek.com");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//curl_setopt($ch,CURLOPT_HEADER, true); //if you want headers

CURLOPT_URL ->…

Ver la entrada original 619 palabras más

Configurar visualización resultados Xdebug

A la hora de depurar en PHP una de las opciones que mas uso es el var_dump, el cual me da un volcado en pantalla de la variable que le pasamos. Esta función, usada sin Xdebug nos devuelve un volcado en texto plano el cual es un poco dificil de interpretar, aunque siempre podemos usarla en combinación con las etiquetas pre. Si tenemos activado el Xdebug, no hace falta ponerlo entre las etiquetas pre ya que la salida viene formateada.

Tomemos el siguiente ejemplo:


$variables = array(
 'uno' => array(
 'blanco' => array(
   'arriba' => array(
     'hola'
    ),
   'abajo' => array(
     'adios'
    )
   )
 )
);

var_dump($variables);

Si ejecutamos el var_dump sin tener Xdebug habilitado nos mostrara lo siguiente:

Captura de pantalla 2014-03-23 a la(s) 20.47.08Si lo ejecutamos con Xdebug habilitado

Captura de pantalla 2014-03-23 a la(s) 20.48.25Si veis, los valores de la tercera array anidada no se muestran, esto es debido a que los niveles de profundidad del Xdebug están establecidos como máximo a 3. Esto podemos modificarlo para que muestre los niveles de profundidad que nos interesen con estableciendo la variable xdebug.var_display_max_depth. En este ejemplo voy a establecer el nivel de profundidad a 4. El máximo valor que podemos establecer es 1023, y si no queremos poner limite la establecemos a -1. Para que esto funcione lo mas rápido es establecer su valor por medio del ini_set al principio del script.


ini_set('xdebug.var_display_max_depth', 4);

Ahora la visualización sera así

Captura de pantalla 2014-03-23 a la(s) 20.53.39

http://www.xdebug.com/docs/display