PHP: Averiguar el sistema operativo del servidor web

PHP posee la constante PHP_OS que devuelve el sistema operativo. Para los sistemas operativos Linux PHP_OS devuelve la cadena "Linux", pero para los sistemas windows nos puede devolver (dependiendo del tipo de sistema) por lo menos tres valores: WINNT, WIN32, Windows.

Esto no es un gran problema. Todo lo que tenemos que hacer es convertir en mayúsculas la cadena entera y comprobar que las tres primeras letras son "WIN". A continuación podemos ver una sencilla función que determina si el sistema operativo del servidor es Windows, Linux o cualquier otro.

function serverOS()
{
    $sys = strtoupper(PHP_OS);
 
    if(substr($sys,0,3) == "WIN")
    {
        $os = 1;
    }
    elseif($sys == "LINUX")
    {
        $os = 2;
    }
    else
    {
        $os = 3;
    }
 
    return $os;
}

La función devuelve 1 para Windows, 2 para Linux y 3 para otros sistemas operativos.

Visto en yourinspirationweb.com » »

Convertir un color de formato hexadecimal a RGB con PHP

A veces puede resultar útil convertir un color en formato hexadecimal, como por ejemplo #336699, a un formato RGB, como por ejemplo (51,102,153).

En esta entrada se muestra una función que realiza esta conversión en PHP.

function hex2rgb($hex){
	$hex = ereg_replace("#", "", $hex);
        $color = array();

        if(strlen($hex) == 3) {
        $color['r'] = hexdec(substr($hex, 0, 1) . $r);
        $color['g'] = hexdec(substr($hex, 1, 1) . $g);
        $color['b'] = hexdec(substr($hex, 2, 1) . $b);
        }
        else if(strlen($hex) == 6) {
        $color['r'] = hexdec(substr($hex, 0, 2));
        $color['g'] = hexdec(substr($hex, 2, 2));
        $color['b'] = hexdec(substr($hex, 4, 2));
        }

        return $color;
}

Ejemplo de uso:

$color = hex2rgb('336699');
echo "R:". $color['r']."
";
echo "G:". $color['g']."
";
echo "B:". $color['b']."
";

Lo que nos devolvería:

R:51
G:102
B:153

Crear un fichero CSV utilizando PHP/MYSQL

Como complemento al post "Generar archivo CSV desde una array de PHP", en este caso vamos a ver como crear una exportación a un fichero CSV de una tabla MySQL

<?php
$db_host = 'localhost';
$db_usuario = 'root';
$db_password = ";
$db_basedatos = 'mytestdatabase';
$db_tabla = 'clientes';
$$nombre_fichero = 'clientes.csv';
$dblink = mysql_connect($db_host, $db_usuario, $db_password) or die("No puede conectar " . mysql_error());
mysql_select_db($db_basedatos) or die("No puede conectar.");
$result = mysql_query("SHOW COLUMNS FROM ".$db_tabla."");
$i = 0;
if (mysql_num_rows($result) > 0) {
	while ($row = mysql_fetch_assoc($result)) {
		$salida_cvs .= $row['Field'].",";
		$i++;
	}
}
$salida_cvs .= "\n";
$values = mysql_query("SELECT * FROM ".$db_tabla."");
while ($rowr = mysql_fetch_row($values)) {
	for ($j=0;$j<$i;$j++) {
		$salida_cvs .= $rowr[$j].", ";
	}
	$salida_cvs .= "\n";
}

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$nombre_fichero.".csv");
print $salida_cvs;
exit;
?>

Generar archivo CSV desde una array de PHP

Sencilla pero muy útil función PHP para generar un archivo .csv a partir de una array. La función acepta 3 parámetros: los datos, el delimitador del csv (el valor predeterminado es una coma) y el encapsulador del csv (el valor por defecto es una comilla doble).

function generateCsv($data, $delimiter = ',', $enclosure = '"') {
       $handle = fopen('php://temp', 'r+');
       foreach ($data as $line) {
               fputcsv($handle, $line, $delimiter, $enclosure);
       }
       rewind($handle);
       while (!feof($handle)) {
               $contents .= fread($handle, 8192);
       }
       fclose($handle);
       return $contents;
}

Visto en CatsWhoCode » »

jQuery: inyectar una parte de un documento

La función de .load() es una de las formas más sencillas de AJAX en jQuery, pero es realmente potente. Para aquellos que no estén familiarizados pueden consultar el siguiente tutorial en este mismo blog: Ajax con jQuery: el método load(). Cuando se ejecuta, se carga la URL solicitada e inyecta el HTML resultante en el elemento contenido en ese objeto:

$('#caja').load('/noticias/top.html');

Se trata de una forma muy simple de hacer llamadas AJAX. Una función interesante que a menudo no se utiliza, es la capacidad de inyectar sólo un fragmento de dicho documento, en lugar de toda la página, en nuestro elemento:

$('#caja').load('/noticias/top.html div#deportes');

Esto realizaría una petición XMLHttpRequest para la URL solicitada, analiza el documento devuelto, encuentra sólo el elemento solicitado y lo agrega al elemento seleccionado.