<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>emmgfx &#187; PHP</title>
	<atom:link href="http://www.emm-gfx.net/etiqueta/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emm-gfx.net</link>
	<description>Y ahora sin más; construye y destruye.</description>
	<lastBuildDate>Sun, 22 Jan 2012 11:24:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP: Ordenar array por el valor de un campo</title>
		<link>http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/</link>
		<comments>http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 08:20:28 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[burbuja]]></category>
		<category><![CDATA[campo]]></category>
		<category><![CDATA[ordenar]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1592</guid>
		<description><![CDATA[Recomiendo investigar: usort en php.net, bubble sort, ordenamiento por burbuja en wikipedia y la fuente. function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) { $position = array(); $newRow = array(); foreach ($toOrderArray as $key => $row) { $position[$key] = $row[$field]; $newRow[$key] = $row; } if ($inverse) { arsort($position); } else { asort($position); } $returnArray = array(); [...]]]></description>
			<content:encoded><![CDATA[<p>Recomiendo investigar: <a href="http://es.php.net/usort">usort en php.net</a>, <a href="http://www.metalshell.com/source_code/118/Bubble_Sort.html" title="bubble sort">bubble sort</a>, <a href="http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja">ordenamiento por burbuja en wikipedia</a> y la <a href="http://notasweb.com/articulo/php/ordenar-array-multidimensional-por-un-campo-con-php.html">fuente</a>.</p>
<pre>function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) {
    $position = array();
    $newRow = array();
    foreach ($toOrderArray as $key => $row) {
            $position[$key]  = $row[$field];
            $newRow[$key] = $row;
    }
    if ($inverse) {
        arsort($position);
    }
    else {
        asort($position);
    }
    $returnArray = array();
    foreach ($position as $key => $pos) {
        $returnArray[] = $newRow[$key];
    }
    return $returnArray;
}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/" title="RMDIR recursivo en PHP">RMDIR recursivo en PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar si un directorio está vacío con PHP</title>
		<link>http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/</link>
		<comments>http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 18:42:39 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[directorio]]></category>
		<category><![CDATA[is_empty]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1588</guid>
		<description><![CDATA[$directorio = '/tu/ruta/'; $is_empty = (bool) (count(scandir($directorio)) == 2); $is_empty será true o false según si está vacío o no. Articulos relacionadosPHP: Ordenar array por el valor de un campo (0)ucfirst de PHP en Javascript (0)Comprobar validez de un dominio con PHP (2) (0)Enviar el log de errores de PHP por email (0)Obtener la URL [...]]]></description>
			<content:encoded><![CDATA[<pre>$directorio = '/tu/ruta/';
$is_empty = (bool) (count(scandir($directorio)) == 2);</pre>
<p><code>$is_empty</code> será <code>true</code> o <code>false</code> según si está vacío o no.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/" title="RMDIR recursivo en PHP">RMDIR recursivo en PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ucfirst de PHP en Javascript</title>
		<link>http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/</link>
		<comments>http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 07:19:14 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[mayúsculas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ucfirst]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1551</guid>
		<description><![CDATA[function ucfirst(string){ return string.charAt(0).toUpperCase() + string.slice(1); } Por ejemplo: foo = 'hello world!'; foo = ucfirst(foo); // Hello world! bar = 'HELLO WORLD!'; bar = ucfirst(bar.toLowerCase()); // Hello world! Si la cadena esta entera en mayúsculas y se quiere tener sólo la primera, priemero se debería pasar toda a minúscula y después cambiar la primera. [...]]]></description>
			<content:encoded><![CDATA[<pre>function ucfirst(string){
   return string.charAt(0).toUpperCase() + string.slice(1);
}</pre>
<p>Por ejemplo:</p>
<pre>foo = 'hello world!';
foo = ucfirst(foo);             // Hello world!

bar = 'HELLO WORLD!';
bar = ucfirst(bar.toLowerCase()); // Hello world!</pre>
<p>Si la cadena esta entera en mayúsculas y se quiere tener sólo la primera, priemero se debería pasar toda a minúscula y después cambiar la primera.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar validez de un dominio con PHP (2)</title>
		<link>http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/</link>
		<comments>http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 07:58:37 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[checkdnsrr]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[dominio]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Registro]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1540</guid>
		<description><![CDATA[Hace un año y medio más o menos escribí un articulo sobre como comprobar que un dominio existía. Pero ahí lo explicaba con una función hecha a mano. Ahora acabo de ver que también se puede hacer con una función nativa y resulta mucho más sencillo. Además es capaz de comprobar un tipo de registro [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un año y medio más o menos escribí un <a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/">articulo sobre como comprobar que un dominio existía</a>. Pero ahí lo explicaba con una función hecha a mano. Ahora acabo de ver que también se puede hacer con una función nativa y resulta mucho más sencillo. Además es capaz de comprobar un tipo de registro especifico (A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT o ANY).<span id="more-1540"></span></p>
<pre>checkdnsrr('www.viciana.me') // Devuelve true
checkdnsrr('www.brrrr.es') // Devuelve false</pre>
<p>Y un ejemplo de uso práctico para ver como se podría comprobar si un email existe (hasta cierto punto).</p>
<pre>$mail = 'josep@viciana.me';
$dominio = explode('@',$mail);
if(checkdnsrr($dominio[1])){
	echo 'existe';
}else{
	echo 'no existe';
}</pre>
<p>Si interesa saber más sobre la comprobación de registros especificos, recomiendo leer la <a href="http://es2.php.net/checkdnsrr">documentación oficial</a>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/servidor-dedicado-con-ip-dinamica/" title="Servidor dedicado con IP dinámica.">Servidor dedicado con IP dinámica.</a> (5)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enviar el log de errores de PHP por email</title>
		<link>http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/</link>
		<comments>http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 12:29:15 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Control de errores]]></category>
		<category><![CDATA[Función]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1125</guid>
		<description><![CDATA[Tener noticias de los errores que puedan surgir en una web, sobretodo cuando acaba de ser puesta en producción y necesita una atención especial para confirmar que todo funciona bien, o cuando se acaba de realizar algún cambio en el servidor, puede ser un punto muy importante. Para recibir los errores por email, hay que [...]]]></description>
			<content:encoded><![CDATA[<p>Tener noticias de los errores que puedan surgir en una web, sobretodo cuando acaba de ser puesta en producción y necesita una atención especial para confirmar que todo funciona bien, o cuando se acaba de realizar algún cambio en el servidor, puede ser un punto muy importante.</p>
<p>Para recibir los errores por email, hay que hacer dos cosas:<span id="more-1125"></span></p>
<ol>
<li>Preparar una función con las instrucciones en caso de ocurrir un error.</li>
<li>Decirle a PHP que tiene que ejecutar la función creada cuando sucedan errores.</li>
</ol>
<p>La primera parte, la función, sería algo así</p>
<pre>function errorPersonalizado($numeroerror, $cadenaerror){
    echo "&lt;div&gt;&lt;strong&gt;Error:&lt;/strong&gt; [$numeroerror] $cadenaerror&lt;/div&gt;";
    error_log("Error: [$numeroerror] $cadenaerror",1,"webmaster@elsitio.net","From: logerrores@elsitio.net");
}
</pre>
<p>La segunda parte, donde se le dice a PHP que tiene que ejecutar la función <code>errorPersonalizado</code> cuando ocurran errores, es sólo una linea:</p>
<pre>set_error_handler("errorPersonalizado");</pre>
<p>Por defecto, <code>set_error_handler</code> ejecuta <code>error_log()</code>.</p>
<p>Personalmente, creo que la mejor idea para controlar el log de errores en cada caso es&#8230;</p>
<ul>
<li>Para webs/aplicaciones <strong>en producción: No mostrar los errores en la misma página</strong>, por seguridad; y guardarlos en un archivo de logs que vaya &#8220;rotando&#8221; para que no acabe dando problemas cuando alcance tamaños complicados para el sistema de archivos. Los errores se pueden ocultar usando <code>error_reporting(0)</code>.</li>
<li><strong>Cuando se está desarrollando</strong>, lo más cómodo es <strong>tener los errores bien visibles</strong>, que aparezcan en la misma página cuando sucedan (este es el comportamiento por defecto).</li>
<li>Cuando cualquier tipo de error puede ser importante, lo mejor es utilizar este pequeño truco para enviar los errores por email y así mantenernos informados con más frecuencia, normalmente esto no es necesario cuando la programación está en desarrollo.</li>
</ul>
<p>Más información en la <a href="http://es.php.net/manual/en/ref.errorfunc.php" target="_blank">documentación oficial de PHP</a> y en <a href="http://www.w3schools.com/php/php_error.asp" target="_blank">w3schools</a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 105px; width: 1px; height: 1px;">http://www.w3schools.com/php/php_error.asp</div>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/" title="Eliminar caracteres raros de una cadena con PHP">Eliminar caracteres raros de una cadena con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obtener la URL que se esta visitando con PHP</title>
		<link>http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/</link>
		<comments>http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 09:40:47 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1045</guid>
		<description><![CDATA[Con esta función, se puede saber la URL que se está visitando&#8230; y no hay nada más que decir, sólo la función y un ejemplo. function selfURL(){ $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; [...]]]></description>
			<content:encoded><![CDATA[<p>Con esta función, se puede saber la URL que se está visitando&#8230; y no hay nada más que decir, sólo la función y un ejemplo.</p>
<pre>function selfURL(){
   $s        = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
   $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
   $port     = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
   return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
}
function strleft($s1, $s2){
   return substr($s1, 0, strpos($s1, $s2));
}</pre>
<p>En realidad son dos, pero van juntas. Y para usarla es bastante sencillo.</p>
<pre>
echo selfURL(); /* http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/ */
</pre>
<p>Puede no parecer demasiado util, pero a mi me ha venido bien varias veces.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar DNI / NIF con PHP</title>
		<link>http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/</link>
		<comments>http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 22:28:27 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[DNI]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[NIF]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=964</guid>
		<description><![CDATA[Esta función es capaz de comprobar si el NIF tiene un formato correcto o no, es decir, si la letra indicada es la que corresponde a la cadena de 8 números. Que devuelva un resultado positivo no quiere decir que sea un número que exista, sólo que el formato es correcto. function comprobar_nif($nif){ $letras = [...]]]></description>
			<content:encoded><![CDATA[<p>Esta función es capaz de comprobar si el NIF tiene un formato correcto o no, es decir, si la letra indicada es la que corresponde a la cadena de 8 números. Que devuelva un resultado positivo no quiere decir que sea un número que exista, sólo que el formato es correcto.<span id="more-964"></span></p>
<pre>function comprobar_nif($nif){
   $letras = explode(',','T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E');
   if (
      (strlen($nif)!=9) ||
      (!is_long($entero=intval(substr($nif,0,8)))) ||
      (!in_array($letra=strtoupper(substr($nif,8,1)),$letras)) ||
      ($letra!=$letras[$entero%23])
      ){
         return false;
      }else{
         return true;
      }
}
</pre>
<p>Si le indicamos <code>00000000T</code> devolverá <code>true</code>, aunque no creo que exista (este es el número que uso para hacer pruebas). Y creo que el uso es bastante sencillo, sería algo como esto</p>
<pre>if(comprobar_nif('00000000T')){
   echo 'Correcto';
}else{
   echo 'Incorrecto';
}
</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/" title="Eliminar caracteres raros de una cadena con PHP">Eliminar caracteres raros de una cadena con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mostrar una fecha sin mostrarla, de forma amigable, con PHP</title>
		<link>http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/</link>
		<comments>http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 19:16:05 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[nicetime]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=874</guid>
		<description><![CDATA[Mostrar el tiempo de forma amigable, como Facebook o Twitter es una buena idea, sobretodo sobre todo si el lapso de tiempo entre el actual y el que se quiere mostrar no es demasiado largo. Si en vez de mostrar &#8220;14/11/1988 10:30&#8243; mostramos &#8220;Hace 21 años&#8221; puede parecer un poco exagerado y en ese caso [...]]]></description>
			<content:encoded><![CDATA[<p><a class="fancy" href="http://www.emm-gfx.net/wp-content/uploads/2010/02/tiempo.gif">Mostrar el tiempo de forma amigable, como Facebook o Twitter</a> es una buena idea, <span style="text-decoration: line-through;">sobretodo</span> sobre todo si el lapso de tiempo entre el actual y el que se quiere mostrar no es demasiado largo. Si en vez de mostrar &#8220;14/11/1988 10:30&#8243; mostramos &#8220;Hace 21 años&#8221; puede parecer un poco exagerado y en ese caso yo mostraría algo como &#8220;Hace 21 años (el 14/11/1988)&#8221;. Pero si es algo que se actualiza con más frecuencia, como los estados de Twitter, Facebook y cualquier otra red social, donde es normal que no pasen más de 4 horas entre cada actualización y muy pocas veces pasa de un día, es mejor poner &#8220;Hace 34 minutos&#8221; que poner la hora en que se hizo, resulta más entendible para el usuario y da una imagen de dinamismo que el modo convencional no es capaz. Y el motivo es sencillo, cuando el usuario ve &#8220;a las 13:30&#8243; lo que hace es mirar la hora actual y calcular el lapso de tiempo&#8230; es decir, que mostrando la fecha de forma amigable lo que hacemos es evitarle al usuario la necesidad de pensar.<span id="more-874"></span></p>
<p>En Intenta han publicado <a href="http://www.webintenta.com/funcion-para-determinar-el-tiempo-transcurrido-en-PHP.html">su propia versión</a> del <em>snippet</em> que iba a publicar yo hoy mismo &#8211; <span style="color: #888888;">se me ha adelantado por unas horas&#8230;</span> &#8211; , pero a su manera.  Y como el mío es algo diferente &#8211; <span style="color: #888888;">los dos parten de la misma función <code>nicetime()</code></span> &#8211; lo publico igualmente.</p>
<p>En cualquier caso, la función original la escribió un tal yasmary en los <a href="http://www.php.net/manual/en/function.time.php#89415">comentarios de la documentación</a> de php, y esto es una adaptación para que se pueda utilizar tanto con fechas formateadas como con el <em>epoch time</em> de <em>unix</em> y <strong>en castellano</strong>.</p>
<p>Para utilizarla, sería algo como esto:</p>
<pre>echo nicetime('1988-11-14');
# Mostraría "Hace 21 años"
echo nicetime('2010-02-12');
# Mostraría "Dentro de 2 días"
echo nicetime('1234567890');
# Mostraría "Hace 1 año";
</pre>
<p>Esta es <strong>la función</strong>, y el ejemplo de resultado se puede ver a la derecha (en el globo azul de Twitter).</p>
<pre>function nicetime($date){
   if(empty($date)){
      return "Fecha no especificada";
   }
   $periods    = array("segundo", "minuto", "hora", "d&amp;iacute;a", "semana", "mese", "a&amp;ntilde;o", "d&amp;eacute;cada");
   $lengths    = array("60","60","24","7","4.35","12","10");

   $now            = time();
   if(is_int($date)){
      $unix_date   = $date;
   }else{
      $unix_date   = strtotime($date);
   }

   if(empty($unix_date)) {
      return "Fecha incorrecta";
   }
   if($now &gt; $unix_date) {
      $difference  = $now - $unix_date;
      $tense       = "Hace ";
   }else{
      $difference  = $unix_date - $now;
      $tense       = "Dentro de ";
   }
   for($j = 0; $difference &gt;= $lengths[$j] &amp;&amp; $j &lt; count($lengths)-1; $j++) {
      $difference /= $lengths[$j];
   }
   $difference = round($difference);
   if($difference != 1) {
      $periods[$j].= "s";
   }
   return "{$tense} $difference $periods[$j] ";
}
</pre>
<div class="cuadro-amarillo"><strong>Nota 12 mayo 2010:</strong><br />
Parece que <a href="http://alexwhinfield.com/lightweight-php-seconds-ago-script/" target="_blank">Alex Whinfield ha publicado un script parecido pero más sencillo</a>, aunque lo que más me ha llamado la atención es uno de los comentarios en que le avisan de que wordpress incluye una función para esto llamada <code>human_time_diff()</code>, de manera que algunas veces no sería necesario incluir nuestra propia función <img src='http://www.emm-gfx.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La función str_replace() de PHP en Javascript</title>
		<link>http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/</link>
		<comments>http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:02:02 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[str_replace]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=855</guid>
		<description><![CDATA[La función str_replace() de PHP tiene un uso muy sencillo, se le entregan 3 parámetros; la cadena a buscar, la cadena por la que se substituirá, y la cadena sobre la que se va a trabajar. Por ejemplo&#8230; $cadena = 'Prefiero el helado de frutas del bosque'; echo $cadena; // Prefiero el helado de frutas [...]]]></description>
			<content:encoded><![CDATA[<p>La función <code>str_replace()</code> de PHP tiene un uso muy sencillo, se le entregan 3 parámetros; la cadena a buscar, la cadena por la que se substituirá, y la cadena sobre la que se va a trabajar. Por ejemplo&#8230;</p>
<pre>$cadena = 'Prefiero el helado de frutas del bosque';
echo $cadena;
// Prefiero el helado de frutas del bosque

$cadena = str_replace('frutas del bosque','pistacho',$cadena);
echo $cadena;
// Prefiero el helado de pistacho
</pre>
<p>Más información sobre <code>str_replace()</code> en la <a href="http://es.php.net/str_replace">página de PHP</a>.</p>
<p>Para hacerlo <strong>en Javascript</strong> se haría así:</p>
<pre>cadena = 'Prefiero el helado de frutas del bosque';
alert(cadena);
// Prefiero el helado de frutas del bosque

cadena = cadena.replace(/frutas del bosque/g,"pistacho");
alert(cadena);
// Prefiero el helado de pistacho
</pre>
<p>Si sólo se quiere cambiar la primera coincidencia, en vez de utilizar <code>/frutas del bosque/g</code> debería ser <code>"frutas del bosque"</code>. El cambio entre <code>//g</code> y <code>""</code> es aparentemente absurdo y me ha costado varias horas de trabajo&#8230; pero de errores se aprende.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/" title="Detectar petición AJAX con PHP">Detectar petición AJAX con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalar mcrypt en Ubuntu 8.04.3 server LTS</title>
		<link>http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/</link>
		<comments>http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:58:43 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[mcrypt]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu 8.04]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=810</guid>
		<description><![CDATA[Estoy repreparando el servidor personal que utilizo para proyectos de desarrollo. Lo he hecho desde cero por que la vez anterior lo hice hace tiempo y sin dejar nada documentado sobre lo que se hacía, de manera que con el tiempo y mi pobre memória he acabado olvidándome de casi todas las contraseñas que puse&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right;" src="http://www.emm-gfx.net/wp-content/uploads/2010/01/mcrypt2.png" alt="mcrypt logo" />Estoy repreparando el servidor personal que utilizo para proyectos de desarrollo. Lo he hecho desde cero por que la vez anterior lo hice hace tiempo y sin dejar nada documentado sobre lo que se hacía, de manera que con el tiempo y mi pobre memória he acabado olvidándome de casi todas las contraseñas que puse&#8230; por eso he hecho copias de seguridad de todo y he vuelto a reinstalar el sistema. Quería instalar debian, como tenía antes, pero aún no sé por qué no me aceptaba el disco&#8230; y por eso he usado un Ubuntu Server&#8230; que tampoco está mal, y menos para mí que no sé demasiado de esto.<span id="more-810"></span></p>
<p>El caso es que necesitaba el paquete mcrypt, y no sé por qué no estaba en los repositorios que venían&#8230; por lo que he leido eso acaba siendo un problema para bastante gente que como yo ha buscado ayuda&#8230; (que al final ha resultado estar <a href="http://packages.ubuntu.com/hardy/amd64/php5-mcrypt/download">en la misma página de ubuntu</a>). Lo que he tenido que hacer es, añadir un nuevo repositorio en el archivo sources.list para que busque ahí el paquete que necesito, php5-mcrypt.</p>
<p><strong>Editamos el archivo sources.list</strong></p>
<pre>nano /etc/apt/sources.list</pre>
<p><strong>Y se añade la linea</strong><br />
(si nuestro servidor es amd64, si es otro visita la <a href="http://packages.ubuntu.com/hardy/php5-mcrypt">página de ubuntu</a> para buscar el tuyo)</p>
<pre>http://packages.ubuntu.com/hardy/amd64/php5-mcrypt/download</pre>
<p><strong>Actualizamos la lista de paquetes:</strong></p>
<pre>apt-get update</pre>
<p><strong>Y ahora ya se puede instalar el paquete que quería:</strong></p>
<pre>apt-get install php5-mcrypt</pre>
<p>Ahora sólo queda reiniciar Apache para que tenga sentido el trabajo hecho:</p>
<pre>/etc/init.d/apache2 restart</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/servidor-dedicado-con-ip-dinamica/" title="Servidor dedicado con IP dinámica.">Servidor dedicado con IP dinámica.</a> (5)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMDIR recursivo en PHP</title>
		<link>http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/</link>
		<comments>http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 12:35:32 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[exec]]></category>
		<category><![CDATA[Recursividad]]></category>
		<category><![CDATA[rmdir]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=802</guid>
		<description><![CDATA[Para eliminar directorios con php se utiliza la función rmdir(), el problema es que esa función no permite borrar carpetas que contengan algo, ya sea otras carpetas vacías o archivos. Se pueden hacer funciones para eliminar carpetas y su contenido utilizando sólo php, de hecho en el manual de rmdir en php.net se pueden ver [...]]]></description>
			<content:encoded><![CDATA[<p>Para eliminar directorios con php se utiliza la función <code>rmdir()</code>, el problema es que esa función no permite borrar carpetas que contengan algo, ya sea otras carpetas vacías o archivos.</p>
<p>Se pueden hacer funciones para eliminar carpetas y su contenido utilizando sólo php, de hecho en el <a href="http://es2.php.net/rmdir">manual de rmdir en php.net</a> se pueden ver algunas en los comentarios, pero no es eso lo que me interesa. Lo que voy a explicar es cómo hacerlo utilizando comandos del sistema (en unix, los de windows no tengo ni idea).<span id="more-802"></span></p>
<p>La cosa es sencilla, para ejecutar comandos del sistema se utiliza la función <code>exec()</code> de PHP.</p>
<p>Por ejemplo:</p>
<pre>echo '&lt;ol&gt;';
if(exec('rm -frv /el/directorio/a/borrar/',$salida)){
   foreach($salida as $line){
      echo '&lt;li&gt;'.$line.'&lt;/li&gt;';
   }
}else{
   echo '&lt;li&gt;Error al eliminar archivos&lt;/li&gt;';
}
echo '&lt;/ol&gt;';</pre>
<p>Como se ve, he utilizado el comando rm con las opciones <code>-frv</code>, la <code>f</code> es para forzar (ignora archivos inexistentes), la <code>r</code> para que sea recursivo y la <code>v</code> (de verbose) para que explique lo que esta haciendo. Si queréis, en la wikipedia hay <a href="http://en.wikipedia.org/wiki/Rm_%28Unix%29">mas información</a> sobre el comando <code>rm</code>.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comprobar la validez de un dominio con PHP</title>
		<link>http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/</link>
		<comments>http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 19:04:21 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=748</guid>
		<description><![CDATA[Una sencilla función para verificar que un nombre de dominio existe. Es la función que utilizo en saberpagerank.es para verificar que el dominio introducido es correcto, podéis encontrar una demostración de allí. function getAddrByHost($host, $timeout = 3) { $query = `nslookup -timeout=$timeout -retry=1 $host`; if(preg_match('/\nAddress: (.*)\n/', $query, $matches)){ return trim($matches[1]); }else{ return false; } return [...]]]></description>
			<content:encoded><![CDATA[<p>Una sencilla función para verificar que un nombre de dominio existe. Es la función que utilizo en <a href="http://www.saberpagerank.es">saberpagerank.es</a> para verificar que el dominio introducido es correcto, podéis encontrar una demostración de allí.</p>
<pre lang="php" line="1">
function getAddrByHost($host, $timeout = 3) {
   $query = `nslookup -timeout=$timeout -retry=1 $host`;
   if(preg_match('/\nAddress: (.*)\n/', $query, $matches)){
      return trim($matches[1]);
   }else{
      return false;
   }
   return $host;
}
</pre>
<p>Y no hay mucho más que añadir, el nombre de dominio se le pasa en el primer parámetro, es decir, para utilizar la función se haría algo así:</p>
<pre lang="php" line="1">
if(!getAddrByHost('www.dominioabsurdo.lol')){
   die('El dominio parece incorrecto <img src='http://www.emm-gfx.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ');
}
</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eliminar posición de un array en PHP</title>
		<link>http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/</link>
		<comments>http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 10:08:00 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=482</guid>
		<description><![CDATA[Para borrar variables se utiliza unset(), también para eliminar posiciones de un array, pero si sólo se usa unset() la posición no se elimina del todo, sigue existiendo pero esta vacía. No sé si lo estoy explicando bien, pero con los ejemplos se entiende mejor. Es bastante sencillo, no es algo complicado de hacer, sólo [...]]]></description>
			<content:encoded><![CDATA[<p>Para borrar variables se utiliza <code>unset()</code>, también para eliminar posiciones de un array, pero si sólo se usa <code>unset()</code> la posición no se elimina del todo, <strong>sigue existiendo</strong> pero esta vacía. No sé si lo estoy explicando bien, pero con los ejemplos se entiende mejor. Es bastante sencillo, no es algo complicado de hacer, sólo hay que entenderlo.<br />
Por ejemplo, con este array:</p>
<pre lang="PHP" line="1">
$array = 'ni sus,manos son,tan blancas,ni son,blancas sus,palomas';
$array = explode(',',$array);
</pre>
<pre lang="text" line="1">
Array
(
    [0] => ni sus
    [1] => manos son
    [2] => tan blancas
    [3] => ni son
    [4] => blancas sus
    [5] => palomas
)
</pre>
<p>Si se hace</p>
<pre lang="php" line="1">
unset($array[4]);
</pre>
<p>Quedará algo como:</p>
<pre lang="text">
Array
(
    [0] => ni sus
    [1] => manos son
    [2] => tan blancas
    [3] => ni son
    [5] => palomas
)
</pre>
<p>Es decir, el elemento no existe pero su posición en el array no se ha adaptado, hace un salto del 3 al 5 y en ocasiones lo ideal sería que el 4 se eliminara y el siguiente (el 5) pasara a ocupar su posición.</p>
<p>Para eso se puede utilizar la función <code>array_values()</code>, por ejemplo:</p>
<pre lang="php" line="1">
$array = array_values($array);
</pre>
<p>Haría que el resultado fuera:</p>
<pre lang="text">
Array
(
    [0] => ni sus
    [1] => manos son
    [2] => tan blancas
    [3] => ni son
    [4] => palomas
)
</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/06/regex-i-solo-letras-numeros-y-espacios/" title="RegEx I, sólo letras, números y espacios.">RegEx I, sólo letras, números y espacios.</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Encontrar todos los links de una página con PHP</title>
		<link>http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/</link>
		<comments>http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 10:49:42 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=343</guid>
		<description><![CDATA[No hay mucho que decir sobre esto&#8230; sólo dejar el código: $html = file_get_contents('http://www.example.com'); $dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a"); for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); echo $url.''; } Visto en css-tricks Articulos relacionadosObtener la URL que se esta visitando [...]]]></description>
			<content:encoded><![CDATA[<p>No hay mucho que decir sobre esto&#8230; sólo dejar el código:</p>
<pre lang="PHP" line="1">
$html = file_get_contents('http://www.example.com');
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
   $href = $hrefs->item($i);
   $url = $href->getAttribute('href');
   echo $url.'';
}
</pre>
<p>Visto en <a href="http://css-tricks.com">css-tricks</a></p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursividad en mkdir de PHP</title>
		<link>http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/</link>
		<comments>http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:09:11 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[mkdir]]></category>
		<category><![CDATA[Recursividad]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=255</guid>
		<description><![CDATA[No en todas las versiones de PHP se puede hacer un mkdir recursivo directamente, mkdir('/1/2/3/'); aunque es lo ideal, en versiones antiguas (la opción se añadió en la 5.0) no se podía. Si en tu servidor hay instalada una versión vieja de PHP y no tienes la posibilidad de actualizarlo tu mismo, puedes utilizar una [...]]]></description>
			<content:encoded><![CDATA[<p>No en todas las versiones de PHP se puede hacer un <strong>mkdir recursivo</strong> directamente, <code>mkdir('/1/2/3/');</code> aunque es lo ideal, en versiones antiguas (la opción se añadió en la 5.0) no se podía. Si en tu servidor hay instalada una versión vieja de PHP y no tienes la posibilidad de actualizarlo tu mismo, puedes utilizar una función propia que haga el mkdir recursivo. En el manual oficial de php se explica a fondo como utilizar correctamente la función oficial, con los permisos y recursividad que se necesiten.</p>
<p>Como por ejemplo:</p>
<pre lang="php" line="1">
function mkdir_recursivo($pathname, $mode){
	umask(0);
	is_dir(dirname($pathname)) || mkdir_recursive(dirname($pathname), $mode);
	return is_dir($pathname) || mkdir($pathname, $mode);
}</pre>
<p>Un ejemplo de uso de esta función sería:</p>
<pre lang="php" line="1">
$ruta = 'carpeta/subcarpeta/subsubcarpeta/';
mkdir_recursivo($ruta,0777);
</pre>
<p>Donde <code>0777</code> hay que poner los permisos que se quieran (con el 0 delante).</p>
<p>En cualquier caso, recomiendo leer el manual oficial y visitar estos enlaces para entender y poder escoger la opción que convenga.</p>
<ul>
<li><a href="http://es2.php.net/mkdir">Manual oficial de PHP: mkdir</a></li>
<li><a href="http://www.mombu.com/php/php/t-33140-recursive-mkdir-doesnt-work-when-path-includes-a-non-existent-root-folder-1010858.html">Mkdir recursivo no funciona cuando el path incluye una carpeta raíz inexistente.</a></li>
</ul>
<p>Suerte.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/01/rmdir-recursivo-en-php/" title="RMDIR recursivo en PHP">RMDIR recursivo en PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/" title="Eliminar caracteres raros de una cadena con PHP">Eliminar caracteres raros de una cadena con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detectar petición AJAX con PHP</title>
		<link>http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/</link>
		<comments>http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:31:18 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=185</guid>
		<description><![CDATA[Con PHP se puede saber si una página se carga a través de una petición AJAX, puede ser útil para hacer que un contenido se vea sólo si se esta cargando con AJAX. O todo lo contrario, bloquear el contenido para estas peticiones. Para detectarlo se utiliza la variable de servidor $_SERVER['HTTP_X_REQUESTED_WITH']: if( !empty($_SERVER['HTTP_X_REQUESTED_WITH']) &#038;&#038; [...]]]></description>
			<content:encoded><![CDATA[<p>Con PHP se puede saber si una página se carga a través de una petición AJAX, puede ser útil para hacer que un contenido se vea sólo si se esta cargando con AJAX. O todo lo contrario, bloquear el contenido para estas peticiones.</p>
<p>Para detectarlo se utiliza la variable de servidor <code>$_SERVER['HTTP_X_REQUESTED_WITH']</code>:</p>
<pre lang="PHP" line="1">
if(
   !empty($_SERVER['HTTP_X_REQUESTED_WITH']) &#038;&#038;
   strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
){
   # Ejecuta si la petición es a través de AJAX.
}else{
   # Ejecuta si la petición NO es a través de AJAX.
}
</pre>
<p>Y poco más que contar.</p>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/09/aprender-jquery-1-que-es-y-por-que-usarlo/" title="Aprender jQuery, 1: Qué és y por qué usarlo.">Aprender jQuery, 1: Qué és y por qué usarlo.</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/07/acentos-y-tildes-en-javascript/" title="Tildes en Javascript">Tildes en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/base64-encode-y-decode-en-javascript/" title="Base64 (encode y decode) en Javascript">Base64 (encode y decode) en Javascript</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2009/07/detectar-peticion-ajax-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Encriptar y desencriptar cadena con PHP</title>
		<link>http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/</link>
		<comments>http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 15:06:46 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Criptografía]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Función]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=511</guid>
		<description><![CDATA[Cualquier programador Web ha podido necesitar pasar datos por $_GET &#8211; en la url &#8211; , es una forma fácil y cómoda de pasar valores de una página a otra, pero… en algunos casos puede no ser recomendable y habría que tener un mínimo de precaución, y para estos casos &#8211; y otros muchos &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Cualquier programador Web ha podido necesitar pasar datos por <code>$_GET</code> &#8211; en la url &#8211; , es una forma fácil y cómoda de pasar valores de una página a otra, pero… en algunos casos puede no ser recomendable y habría que tener un mínimo de precaución, y para estos casos &#8211; y otros muchos &#8211; se puede utilizar esta clase que un día vi &#8211; no se donde, si lo supiese pondría la fuente &#8211; y sobre la que me veo obligado a escribir, mas que nada para tenerla presente yo mismo y darla a conocer a quien pueda necesitarla.<span id="more-511"></span></p>
<p>Ya de paso, esto puede servirnos en algún que otro caso para evitar inyecciones SQL, y así evitar que alguien nos mangonee lo que no debe.</p>
<p><strong>Primero: Encriptar</strong></p>
<pre>function encrypt($string, $key) {
   $result = '';
   for($i=0; $i&lt;strlen($string); $i++) {
      $char = substr($string, $i, 1);
      $keychar = substr($key, ($i % strlen($key))-1, 1);
      $char = chr(ord($char)+ord($keychar));
      $result.=$char;
   }
   return base64_encode($result);
}</pre>
<p>Se utiliza un código secreto, que es el que se pone en <code>$key</code> y que cuando desencriptemos necesitaremos saberlo para que lo haga correctamente.</p>
<p>Para encriptar una cadena escribimos</p>
<pre>$cadena_encriptada = encrypt("LA CADENA A ENCRIPTAR","LA CLAVE");
</pre>
<p><strong>Segundo: Desencriptar</strong></p>
<pre>function decrypt($string, $key) {
   $result = '';
   $string = base64_decode($string);
   for($i=0; $i&lt;strlen($string); $i++) {
      $char = substr($string, $i, 1);
      $keychar = substr($key, ($i % strlen($key))-1, 1);
      $char = chr(ord($char)-ord($keychar));
      $result.=$char;
   }
   return $result;
}
</pre>
<p>Y para desencriptar la cadena escribimos</p>
<pre>$cadena_desencriptada = decrypt("LA CADENA ENCRIPTADA","LA CLAVE QUE SE USÓ PARA ENCRIPTARLA");
</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/" title="Eliminar caracteres raros de una cadena con PHP">Eliminar caracteres raros de una cadena con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/06/regex-i-solo-letras-numeros-y-espacios/" title="RegEx I, sólo letras, números y espacios.">RegEx I, sólo letras, números y espacios.</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Comprobar estado de un servidor mediante PHP</title>
		<link>http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/</link>
		<comments>http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 08:47:19 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Función]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=465</guid>
		<description><![CDATA[Quienes gestionen varias páginas en diferentes servidores, pueden necesitar hacer un pequeño test a los servidores cada poco tiempo para comprobar que están funcionando correctamente, o almenos que están funcionando, una opción es visitar las páginas, evidentemente, pero cuando el número de servidores crece no es en absoluto práctico, de manera que muchas veces resulta [...]]]></description>
			<content:encoded><![CDATA[<p>Quienes gestionen varias páginas en diferentes servidores, pueden necesitar hacer un pequeño test a los servidores cada poco tiempo para comprobar que están funcionando correctamente, o almenos que están funcionando, una opción es visitar las páginas, evidentemente, pero cuando el número de servidores crece no es en absoluto práctico, de manera que muchas veces resulta casi obligado buscar alternativas, o en este caso fabricarla uno mismo.</p>
<p><strong>Objetivo: Script para detectar si un servidor está caído, o no.<span id="more-465"></span></strong></p>
<p>Bien, el script consta de 3 partes, y 2 son básicas, que son la parte HTML y la parte PHP, la parte CSS podemos obviarla, pero siempre viene bien un poco de coloreado para tener una mejor visión.</p>
<p>Aquí se me hace bastante dificil separar los 3 códigos, por que van bastante &#8220;fusionados&#8221;, de manera que pondré por un lado la función que se encargará de averiguar el estado, la lista de servidores y por último el modo de repasar cada servidor.</p>
<p><strong>Parte 1/3: Función</strong></p>
<pre lang="php">function test($url,$tiempo){
   $check = @fsockopen($url, 80, $errno, $errstr, $tiempo);
   if($check){
      echo "&lt;li&gt;Online: $url&lt;/li&gt;";
   }else{
      echo "&lt;li&gt;Offline: $url&lt;/li&gt;";
   }
}</pre>
<p>Es bastante simple ¿no? por un lado recibe <code>$url</code>, que será el dominio o dirección IP &#8211; <span style="color: #ababab;">por ejemplo: emm-gfx.net o 255.255.255.255</span> &#8211; y por otro recibe la variable <code>$tiempo</code>, que será el tiempo de espera hasta &#8220;darse por vencido&#8221; y pasar al siguiente servidor, si este tiempo es superado, se dará por supuesto que el servidor está offline.</p>
<p>Ahora estaría bien tener una lista de servidores a revisar, en un array por ejemplo, yo lo he hecho de esta manera:</p>
<p><strong>Parte 2/3: Lista de servidores</strong></p>
<pre lang="php">$servidores = array(
   0=&gt;'emm-gfx.net',
   1=&gt;'emmsoftware.net',
   2=&gt;'blacksphere.es',
   3=&gt;'google.com',
   4=&gt;'dominioabsurdo.lol',
   5=&gt;'92.43.17.6',
   6=&gt;'255.255.255.255'
);</pre>
<p><strong>Parte 3/3: Ejecutar la función en cada uno de los servidores</strong></p>
<pre lang="php">$total = count($servidores);
$inicio = 0;
while($inicio &lt; $total){
   echo test($servidores[$inicio],$tiempo);
   $inicio++;
}</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/eliminar-posicion-de-un-array-en-php/" title="Eliminar posición de un array en PHP">Eliminar posición de un array en PHP</a> (2)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/05/php-cookies/" title="PHP: Cookies">PHP: Cookies</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/11/str_replace-de-php-en-javascript/" title="str_replace() de PHP en Javascript">str_replace() de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2009/09/encontrar-todos-los-links-de-una-pagina-con-php/" title="Encontrar todos los links de una página con PHP">Encontrar todos los links de una página con PHP</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eliminar caracteres raros de una cadena con PHP</title>
		<link>http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/</link>
		<comments>http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 08:43:24 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Función]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1401</guid>
		<description><![CDATA[Esta función es casi elemental cuando se trabaja con formularios en PHP, si no elemental, es importante conocerla. Bueno esta función mismamente no, por que es una que me he hecho yo mismo pero supongo que habrán cientos similares… en cualquier caso, aquí pongo la mía, para guardarla en algún sitio y poder reutilizarla cuando [...]]]></description>
			<content:encoded><![CDATA[<p>Esta función es casi elemental cuando se trabaja con formularios en PHP, si no elemental, es importante conocerla.</p>
<p>Bueno esta función mismamente no, por que es una que me he hecho yo mismo pero supongo que habrán cientos similares… en cualquier caso, aquí pongo la mía, para guardarla en algún sitio y poder reutilizarla cuando la necesite, y ya de paso quizá ayudar a alguien.<span id="more-1401"></span></p>
<p>Función para eliminar caracteres raros (como acentos y simbolos) de una cadena:</p>
<pre>function quitar_caracteres_raros($cadena){
   $caracteres = 'À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬  ® ¯ ° ± ² ³´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ × ÷ " \' &amp; &lt; &gt;';
   $caracteres = explode(' ',$caracteres);
   $nchar      = count($caracteres);
   $base       = 0;
   while($base&lt;$nchar){
      $cadena = str_replace($caracteres[$base],'_',$cadena);
      $base++;
   }
   return $cadena;
}</pre>
<p>Así, si tenemos una variable con una cadena como por ejemplo:</p>
<pre>$titulo = 'Bitácora Josep Viciana';</pre>
<p>Y le aplicamos la función:</p>
<pre>$titulo = quitar_caracteres_raros($titulo);</pre>
<p>Ahora al mostrar el valor de la variable mostraría &#8220;Bit_cora Josep Viciana&#8221;, compatible con nombres de carpetas, URL, bases de datos… etc.</p>
<p>Los caracteres que se eliminan son los que están en la variable <code>$caracteres</code>, que son estos.</p>
<p><strong>EDIT:<br />
</strong> Si lo que se quiere es sólo quitar acentos pero dejar las letras, se puede utilizar esto:</p>
<pre>$cadena = strtr($cadena, "áäàéëèíïìóöòúüùñ", "aaaeeeiiiooouuun");</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2009/12/comprobar-la-validez-de-un-dominio-con-php/" title="Comprobar la validez de un dominio con PHP">Comprobar la validez de un dominio con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2009/08/recursividad-en-mkdir-de-php/" title="Recursividad en mkdir de PHP">Recursividad en mkdir de PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2008/11/encriptar-y-desencriptar-cadena-php/" title="Encriptar y desencriptar cadena con PHP">Encriptar y desencriptar cadena con PHP</a> (9)</li><li><a href="http://www.emm-gfx.net/2008/07/comprobar-estado-de-un-servidor-mediante-php/" title="Comprobar estado de un servidor mediante PHP">Comprobar estado de un servidor mediante PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2008/07/eliminar-caracteres-raros-de-una-cadena-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convertir Hexadecimal a RGB con PHP</title>
		<link>http://www.emm-gfx.net/2008/06/convertir-hexadecimal-a-rgb-con-php/</link>
		<comments>http://www.emm-gfx.net/2008/06/convertir-hexadecimal-a-rgb-con-php/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 07:16:02 +0000</pubDate>
		<dc:creator>Josep Viciana</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[conversor]]></category>
		<category><![CDATA[Hexadecimal]]></category>
		<category><![CDATA[RGB]]></category>

		<guid isPermaLink="false">http://www.emm-gfx.net/?p=1325</guid>
		<description><![CDATA[Veo en PHPClasses un articulo que muestra cómo convertir un código de color hexadecimal (#cc0000) a RGB (rgb(255,255,255)) y que si nos paramos a leer un poco se puede ver como también lo convierte a la inversa, de rgb a hexadecimal. Aquí el código: &#60;?php /** * This is an example on using Color to [...]]]></description>
			<content:encoded><![CDATA[<p>Veo en PHPClasses un articulo que muestra <strong>cómo convertir un código de color hexadecimal</strong> (<span style="color: #888888;">#cc0000</span>) <strong>a RGB</strong> (<span style="color: #888888;">rgb(255,255,255)</span>) y que si nos paramos a leer un poco se puede ver como también lo convierte a la inversa, de rgb a hexadecimal.</p>
<p>Aquí el código:</p>
<pre>&lt;?php
/**
* This is an example on using Color to get similar
* colors based on a supplied hex or rgb color.
*/
$hsv = Color::hex2hsv("#00CCFF");
//$hsv = Color::rgb2hsv(0, 204, 255);
for ($i = 0; $i &lt; 5; $i++) {
   $rS = mt_rand(0, 100);
   $rV = mt_rand(0, 100);
   $bg = "#".Color::hsv2hex($hsv['h'], $rS, $rV);
   //$rgb = Color::hsv2rgb($hsv['h'], $rS, $rV);
   //$bg = "rgb(".$rgb['r'].", ".$rgb['g'].", ".$rgb['b'].")"
   echo "&lt;div style=\"width:100px;height:100px;background-color:".$bg.";\"&gt; &lt;/div&gt;\n";
}
/**
* You can do the same but for random hues keeping the same by
* keeping the supplied saturation and value, random saturation
* by keeping the hue and value, and this will also work using
* the HSL methods, if you prefer to work with those values.
*/
?&gt;</pre>
<p>Que podriamos resumir en:</p>
<pre>&lt;?php
$hsv = Color::hex2hsv("#00CCFF");
for ($i = 0; $i &lt; 5; $i++) {$rS = mt_rand(0, 100);
   $rV = mt_rand(0, 100);
   $bg = "#".Color::hsv2hex($hsv['h'], $rS, $rV);
   echo "&lt;div style=\"width:100px;height:100px;background-color:".$bg.";\"&gt; &lt;/div&gt;\n";
}
?&gt;</pre>
<h2  class="related_post_title">Articulos relacionados</h2><ul class="related_post"><li><a href="http://www.emm-gfx.net/2011/09/php-ordenar-array-por-el-valor-de-un-campo/" title="PHP: Ordenar array por el valor de un campo">PHP: Ordenar array por el valor de un campo</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/09/comprobar-si-un-directorio-esta-vacio-con-php/" title="Comprobar si un directorio está vacío con PHP">Comprobar si un directorio está vacío con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/07/ucfirst-de-php-en-javascript/" title="ucfirst de PHP en Javascript">ucfirst de PHP en Javascript</a> (0)</li><li><a href="http://www.emm-gfx.net/2011/06/comprobar-validez-de-un-dominio-con-php-2/" title="Comprobar validez de un dominio con PHP (2)">Comprobar validez de un dominio con PHP (2)</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/03/enviar-el-log-de-errores-de-php-por-email/" title="Enviar el log de errores de PHP por email">Enviar el log de errores de PHP por email</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/obtener-la-url-que-se-esta-visitando-con-php/" title="Obtener la URL que se esta visitando con PHP">Obtener la URL que se esta visitando con PHP</a> (0)</li><li><a href="http://www.emm-gfx.net/2010/02/comprobar-dni-nif-con-php/" title="Comprobar DNI / NIF con PHP">Comprobar DNI / NIF con PHP</a> (3)</li><li><a href="http://www.emm-gfx.net/2010/02/mostrar-una-fecha-sin-mostrarla-de-forma-amigable-con-php/" title="Mostrar una fecha sin mostrarla, de forma amigable, con PHP">Mostrar una fecha sin mostrarla, de forma amigable, con PHP</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/str_replace-de-php-en-javascript-2/" title="La función str_replace() de PHP en Javascript">La función str_replace() de PHP en Javascript</a> (1)</li><li><a href="http://www.emm-gfx.net/2010/01/instalar-mcrypt-en-ubuntu-8-04-3-server-lts/" title="Instalar mcrypt en Ubuntu 8.04.3 server LTS">Instalar mcrypt en Ubuntu 8.04.3 server LTS</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.emm-gfx.net/2008/06/convertir-hexadecimal-a-rgb-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

