Instalar cURL en Ubuntu

La librería cURL es un elemento necesario para ejecutar algunas aplicaciones web, por ejemplo el sistema de ecommerce Magento. Esta librería permite acceder a nuestras aplicaciones mediante protocolos estándar como http, ftp, https, etc.

Si nuestra instalación de PHP no dispone de cURL y nuestro servidor LAMP esta en Ubuntu la instalación de esta componente es tan fácil como ejecutar la siguiente orden en un terminal.

sudo apt-get install php5-curl

Y tras unos segundos para completarse la instalación deberemos reiniciar el servidor Apache con:

sudo /etc/init.d/apache2 restart

Listar un directorio en #PHP

Función que permite listar el contenido de un directorio con php:

function list_files($dir)
{
 if(is_dir($dir))
 {
 if($handle = opendir($dir))
 {
 while(($file = readdir($handle)) !== false)
 {
 if($file != "." && $file != ".." && $file != "Thumbs.db"/*pesky windows, images..*/)
 {
 echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a><br>'."\n";
 }
 }
 closedir($handle);
 }
 }
}

Cómo se usa?

<?php
 list_files("images/");
?>

PHP- Función NextDate

Calcula la fecha siguiente sumándole N días a una fecha

function nextDate($fecha,$dias) { 
$diaActual = substr($fecha,8,2); 
$mesActual = $mesProx = substr($fecha,5,2); 
$anioActual = $anioProx = substr($fecha,0,4); 
$diaProx = $diaActual + $dias; 
$diasMes = cal_days_in_month(CAL_GREGORIAN, $mesActual, $anioActual); 
if ($diaProx > $diasMes) { 
$diaProx = $dias - ($diasMes - $diaActual); 
$mesProx = $mesActual + 1; 
if ($mesProx > 12) { 
$mesProx = "01"; 
$anioProx = $anioActual + 1; 
} 
$diasProxMes = cal_days_in_month(CAL_GREGORIAN, $mesProx, $anioProx); 
if ($diaProx > $diasProxMes) { 
$dias = $diaProx - $diasProxMes; 
$diaProx = (strlen($diaProx) == 1)?"0".$diaProx:$diaProx; 
$mesProx = (strlen($mesProx) == 1)?"0".$mesProx:$mesProx; 
return nextDate($anioProx."-".$mesProx."-".$diasProxMes,$dias); 
} 
}
$diaProx = (strlen($diaProx) == 1)?"0".$diaProx:$diaProx; 
$mesProx = (strlen($mesProx) == 1)?"0".$mesProx:$mesProx; 
return $anioProx."-".$mesProx."-".$diaProx; 
}

Convertir Segundos a Texto en PHP

Esta función retorna la duración de un periodo de tiempo en días, horas, minutos y segundos.

Ejemplo: “10 days, 5 hours, 34 minutes, 8 seconds”

function secsToStr($secs) {
 if($secs>=86400){$days=floor($secs/86400);$secs=$secs%86400;$r=$days.' day';if($days<>1){$r.='s';}if($secs>0){$r.=', ';}}
 if($secs>=3600){$hours=floor($secs/3600);$secs=$secs%3600;$r.=$hours.' hour';if($hours<>1){$r.='s';}if($secs>0){$r.=', ';}}
 if($secs>=60){$minutes=floor($secs/60);$secs=$secs%60;$r.=$minutes.' minute';if($minutes<>1){$r.='s';}if($secs>0){$r.=', ';}}
 $r.=$secs.' second';if($secs<>1){$r.='s';}
 return $r;
}

Str_pad añadir ceros a la izquierda en PHP

Para generar números con ceros a la izquierda se utiliza la función str_pad:

Ejemplo:

Generando un número de 6 posiciones con 3 ceros a la izquierda,

//Si el número = 1 entonces el resultado será: 000001
//Si el número = 113 entonces el resultado será: 000113
$indicador = $wpdb->get_var("SELECT MAX(id) FROM $tabla"); 
// Seleccionamos el num MAX de id de la tabla
$indicador = $indicador + 1; 
//Incrementamos el valor de ID ya que nos hemos traído el máximo pero insertaremos el que sigue.
$num_contrato = "CV-".date("Y").str_pad($indicador, 6, "000", STR_PAD_LEFT); 
// Generamos la clave del contrato utilizando para el número consecutivo la función str_pad
echo "Num_Contrato: $num_contrato"; 

Resultado: Num_Contrato: CV-2012000113