<?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>Blog Desarrollo - Información para desarrolladores &#187; Codigo</title>
	<atom:link href="http://blogdesarrollo.com/category/codigo/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogdesarrollo.com</link>
	<description>Noticias, manuales, recursos, eventos para el desarrollo web.</description>
	<lastBuildDate>Wed, 28 Jul 2010 15:19:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Parsear archivos CVS (PHP)</title>
		<link>http://blogdesarrollo.com/codigo/2010/06/08/parsear-archivos-cvs-php/</link>
		<comments>http://blogdesarrollo.com/codigo/2010/06/08/parsear-archivos-cvs-php/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 14:20:51 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=723</guid>
		<description><![CDATA[$fh = fopen("archivo.csv", "r"); while($line = fgetcsv($fh, 1000, ",")) { echo "salida: {$line[1]}"; }]]></description>
			<content:encoded><![CDATA[<pre name="code" class="php">
$fh = fopen("archivo.csv", "r");
while($line = fgetcsv($fh, 1000, ",")) {
    echo "salida: {$line[1]}";
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2010/06/08/parsear-archivos-cvs-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminar tags html de una cadena (PHP)</title>
		<link>http://blogdesarrollo.com/codigo/2010/04/07/eliminar-tags-html-de-una-cadena-php/</link>
		<comments>http://blogdesarrollo.com/codigo/2010/04/07/eliminar-tags-html-de-una-cadena-php/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 20:03:58 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=673</guid>
		<description><![CDATA[$cadena= strip_tags($cadena);]]></description>
			<content:encoded><![CDATA[<pre name="code" class="php">

$cadena= strip_tags($cadena);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2010/04/07/eliminar-tags-html-de-una-cadena-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Altura minima para los elementos (css)</title>
		<link>http://blogdesarrollo.com/codigo/2010/03/30/altura-minima-para-los-elementos-css/</link>
		<comments>http://blogdesarrollo.com/codigo/2010/03/30/altura-minima-para-los-elementos-css/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 18:05:49 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=646</guid>
		<description><![CDATA[Este es uno de los hacks más sencillos para asignar la altura mínima a algún elemento: selector { min-height:250px; height:auto !important; height:250px; }]]></description>
			<content:encoded><![CDATA[<p>Este es uno de los hacks más sencillos para asignar la altura mínima a algún elemento:</p>
<p><code> </p>
<pre>selector {
        min-height:250px;
        height:auto !important;
        height:250px;
}
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2010/03/30/altura-minima-para-los-elementos-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uso de modrewrite para url amigables (.htaccess)</title>
		<link>http://blogdesarrollo.com/codigo/2009/11/27/uso-de-modrewrite-para-url-amigables-htaccess/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/11/27/uso-de-modrewrite-para-url-amigables-htaccess/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 14:49:10 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=575</guid>
		<description><![CDATA[RewriteRule ^categorias-(.*).html$ index.php?categorias=$1]]></description>
			<content:encoded><![CDATA[<pre name="code" class="Javascript">
RewriteRule ^categorias-(.*).html$ index.php?categorias=$1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/11/27/uso-de-modrewrite-para-url-amigables-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validar Email (Javascript)</title>
		<link>http://blogdesarrollo.com/codigo/2009/11/11/validar-email-javascript/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/11/11/validar-email-javascript/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 15:16:05 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=556</guid>
		<description><![CDATA[function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")&#124;([\w-]+(?:\.[\w-]+)*)&#124;("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)&#124;(@\[?((25[0-5]\.&#124;2[0-4][0-9]\.&#124;1[0-9]{2}\.&#124;[0-9]{1,2}\.))((25[0-5]&#124;2[0-4][0-9]&#124;1[0-9]{2}&#124;[0-9]{1,2})\.){2}(25[0-5]&#124;2[0-4][0-9]&#124;1[0-9]{2}&#124;[0-9]{1,2})\]?$)/i); return pattern.test(emailAddress); }]]></description>
			<content:encoded><![CDATA[<pre name="code" class="php">
function isValidEmailAddress(emailAddress) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/11/11/validar-email-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patrón Factory method en PHP</title>
		<link>http://blogdesarrollo.com/codigo/2009/10/01/patron-factory-method-en-php/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/10/01/patron-factory-method-en-php/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:56:37 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>
		<category><![CDATA[PATRONES]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=527</guid>
		<description><![CDATA[El patrón Factory permita la instancia de objetos en tiempo de ejecución. Es llamado el patrón Factory puesto que es responsable de &#8220;manufacturar&#8221; un objeto. class Example { // The factory method public static function &#038;factory($type) { if (include_once 'Drivers/' . $type . '.php') { $classname = 'Driver_' . $type; return new $classname; } else [...]]]></description>
			<content:encoded><![CDATA[<p>El patrón Factory permita la instancia de objetos en tiempo de ejecución. Es llamado el patrón Factory puesto que es responsable de &#8220;manufacturar&#8221; un objeto. </p>
<pre name="code" class="php">
class Example
{
 // The factory method
 public static function &#038;factory($type)
 {
 if (include_once 'Drivers/' . $type . '.php')
 {
 $classname = 'Driver_' . $type;
 return new $classname;
 } else {
    throw new Exception ('Driver not found');
 }
}
}
</pre>
<p>Al definir este método en una clase se nos permite que los drivers sean cargados al vuelo. Si la clase Example fuera una clase de abstracción de base de datos, cargar un manejador de MySQL y SQLite podría ser hecho como sigue: </p>
<pre name="code" class="php">
 // Load a MySQL Driver
 $mysql = Example::factory('MySQL');

 // Load a SQLite Driver
 $sqlite = Example::factory('SQLite');
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/10/01/patron-factory-method-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patrón Singleton en PHP5</title>
		<link>http://blogdesarrollo.com/codigo/2009/10/01/patron-singleton-en-php5/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/10/01/patron-singleton-en-php5/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:49:48 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>
		<category><![CDATA[PATRONES]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=522</guid>
		<description><![CDATA[El patrón Singleton se aplica a situaciones en las cuales hay la necesidad de tener una sola instancia de una clase. El ejemplo más común de esto es una conexión de base de datos. Tendremos una simple instancia fácilmente accesible a muchos otros objetos. class Example { // Hold an instance of the class private [...]]]></description>
			<content:encoded><![CDATA[<p>El patrón Singleton se aplica a situaciones en las cuales hay la necesidad de tener una sola instancia de una clase. El ejemplo más común de esto es una conexión de base de datos. Tendremos una simple instancia fácilmente accesible a muchos otros objetos. </p>
<pre name="code" class="php">
class Example
{
 // Hold an instance of the class
 private static $instance;
 //A private constructor; prevents direct creation of object

 private function __construct()
 {
  echo 'I am constructed';
 }

 // The singleton method
 public static function singleton()
 {

  if (!isset(self::$instance)) {
   $c = __CLASS__;
   self::$instance = new $c;
  }
  return self::$instance;
 }

 // Example method
 public function bark()
 {
  echo 'Woof!';
 }

 // Prevent users to clone the instance
 public function __clone()
 {
  trigger_error('Clone is not allowed.', E_USER_ERROR);
 }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/10/01/patron-singleton-en-php5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear directorios de manera recursiva (PHP)</title>
		<link>http://blogdesarrollo.com/codigo/2009/09/29/crear-directorios-de-manera-recursiva-php/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/09/29/crear-directorios-de-manera-recursiva-php/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 12:23:28 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=520</guid>
		<description><![CDATA[/** * function dir_recursivo (string $destino) * * Crea un arbol de directorios de manera recursiva * * return boolean */ function dir_recursivo ($destino) { if (is_dir($destino)) { return true; } $dirs = explode('/', $destino); $dir = ''; foreach ($dirs as $part) { if (empty($part) &#124;&#124; ($part == '.')) { continue; } $dir .= '/'.$part; [...]]]></description>
			<content:encoded><![CDATA[<pre name="code" class="php">

      /**
      * function dir_recursivo (string $destino)
      *
      * Crea un arbol de directorios de manera recursiva
      *
      * return boolean
      */

      function dir_recursivo ($destino) {
      if (is_dir($destino)) {
      return true;
      }
      $dirs = explode('/', $destino);
      $dir = '';

      foreach ($dirs as $part) {
      if (empty($part) || ($part == '.')) {
      continue;
      }

      $dir .= '/'.$part;

      if ($part == '..') {
      continue;
      }

      if (!is_dir($dir)) {
      $ok = @mkdir($dir, 0755);
      if (!$ok) {
      return false;
      }
      }
      }
      clearstatcache();
      return is_dir($destino);
      }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/09/29/crear-directorios-de-manera-recursiva-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar un botón si hay almenos dos elementos seleccionados (jQuery)</title>
		<link>http://blogdesarrollo.com/codigo/2009/09/29/mostrar-un-boton-si-hay-almenos-dos-elementos-seleccionados-jquery/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/09/29/mostrar-un-boton-si-hay-almenos-dos-elementos-seleccionados-jquery/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 12:18:40 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=517</guid>
		<description><![CDATA[jQuery(document).ready(function() { // Cuando cambie un select de la página... jQuery('select').change(function () { var sumSelecteds = 0; // ... para cada select con el value seleccionado que no sea -1 ... jQuery('select').each(function (i) { // ... incrementamos un contador if( jQuery(this).attr("value") != -1 ) sumSelecteds++; }); if(sumSelecteds > 1) { // Mostramos todos los TD [...]]]></description>
			<content:encoded><![CDATA[<pre name="code" class="php">
      jQuery(document).ready(function() {
      // Cuando cambie un select de la página...
      jQuery('select').change(function () {
      var sumSelecteds = 0;
      // ... para cada select con el value seleccionado que no sea -1 ...
      jQuery('select').each(function (i) {
      // ... incrementamos un contador
      if( jQuery(this).attr("value") != -1 ) sumSelecteds++;
      });

      if(sumSelecteds > 1) {
      // Mostramos todos los TD cuyo id contenga berserk
      jQuery("td[id*='berserk']").fadeIn(1000);
      // Mostramos todos los TD cuyo name contenga berserk
      jQuery("td[name*='berserk']").fadeIn(1000);
      // Esto hace lo mismo que el anterior
      jQuery('td').each(function (i) {
      jQuery("td[name*='berserk']").fadeIn(1000);
      });
      }

      });
     });
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/09/29/mostrar-un-boton-si-hay-almenos-dos-elementos-seleccionados-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subida segura de imagenes (PHP)</title>
		<link>http://blogdesarrollo.com/codigo/2009/09/15/subida-segura-de-imagenes-php/</link>
		<comments>http://blogdesarrollo.com/codigo/2009/09/15/subida-segura-de-imagenes-php/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 16:57:48 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[Codigo]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=477</guid>
		<description><![CDATA[Creamos el formulario: Seleccionar Archivo: Creamos el archivo upload.php que recibira el POST del formulario if((!empty($_FILES["uploaded_file"])) &#038;&#038; ($_FILES['uploaded_file']['error'] == 0)) { //Es un JPEG and pesa menos de 350Kb $filename = basename($_FILES['uploaded_file']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") &#038;&#038; ($_FILES["uploaded_file"]["type"] == "image/jpeg") &#038;&#038; ($_FILES["uploaded_file"]["size"] < 350000)) { // Seleccionamos la [...]]]></description>
			<content:encoded><![CDATA[<p>Creamos el formulario:</p>
<pre name="code" class="html">
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    Seleccionar Archivo:
<input name="uploaded_file" type="file" />
<input type="submit" value="Upload" />
  </form>
</pre>
<p>Creamos el archivo upload.php que recibira el POST del formulario</p>
<pre name="code" class="php">
if((!empty($_FILES["uploaded_file"])) &#038;&#038; ($_FILES['uploaded_file']['error'] == 0)) {
  //Es un JPEG and pesa menos de 350Kb
  $filename = basename($_FILES['uploaded_file']['name']);
  $ext = substr($filename, strrpos($filename, '.') + 1);
  if (($ext == "jpg") &#038;&#038; ($_FILES["uploaded_file"]["type"] == "image/jpeg") &#038;&#038;
	($_FILES["uploaded_file"]["size"] < 350000)) {

      // Seleccionamos la carpeta en donde se subira el archivo
      $newname = dirname(__FILE__).'/upload/'.$filename;
      // Chequear si ya existe ese archivo en el servidor
      if (!file_exists($newname)) {
        // Mover el archivo
        if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) {
           echo "Subido correctamente el archivo:: ".$newname;
        } else {
           echo "Error: No se puso subir el archivo!";
        }
      } else {
         echo "Error: File ".$_FILES["uploaded_file"]["name"]."  ya existe ";
      }
  } else {
     echo "Error: Solo imagenes .jpg images con un peso menor a 350Kb son aceptados";
  }
} else {
 echo "Error: No se subio ningun archivo";
}
</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/codigo/2009/09/15/subida-segura-de-imagenes-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
