<?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>ORIDOKI &#187; PHP</title>
	<atom:link href="http://blog.oridoki.com/category/programacion/hypertext-pre-processor/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.oridoki.com</link>
	<description>PHP, Mysql, Linux, OSX ...</description>
	<lastBuildDate>Wed, 16 Jun 2010 14:19:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Plesk y :/tmp</title>
		<link>http://blog.oridoki.com/2010/02/09/plesk-y-tmp/</link>
		<comments>http://blog.oridoki.com/2010/02/09/plesk-y-tmp/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:40:37 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/2010/02/09/plesk-y-tmp/</guid>
		<description><![CDATA[Bueno estoy probando un servidor con Plesk, y me daba un error muy molesto cuando trataba de seguir los enlaces de sistema a través de apache, el problema viene de una línea de código como esta: “php_admin_value open_basedir &#34;/var/www/vhosts/midominio.com/httpdocs:/tmp&#34; situada en el fichero “/var/www/vhosts/midominio.com/conf/httpd.include” La solución “(aparente)” es comentar esta línea y punto. Sin embargo, [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno estoy probando un servidor con Plesk, y me daba un error muy molesto cuando trataba de seguir los enlaces de sistema a través de apache, el problema viene de una línea de código como esta:</p>
<p><em>“php_admin_value open_basedir &quot;/var/www/vhosts/midominio.com/httpdocs:/tmp&quot;</em></p>
<p>situada en el fichero</p>
<p><em>“/var/www/vhosts/midominio.com/conf/httpd.include”</em></p>
<p>La solución “(aparente)” es comentar esta línea y punto. Sin embargo, Plesk en una de sus rutinas internas va sobreescribiendo periódicamente este fichero con lo que los cambios solo tienen efecto durante un corto periodo de tiempo.</p>
<p>La solución es crear el fichero:</p>
<p>“/var/www/vhosts/bariperfil.com/conf/vhost.conf”</p>
<p>En el que deberemos escribir el siguiente código:</p>
<p><em>&lt;Directory /var/www/vhosts/midominio.com/httpdocs&gt;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; php_admin_value open_basedir none      <br />&lt;/Directory&gt;</em></p>
<p>Para, a continuación forzar que plesk se actualice para el dominio en cuestión, con el siguiente comando:</p>
<p><em>/usr/local/psa/admin/sbin/websrvmng -u &#8211;vhost-name=midominio.com</em></p>
<p>&#160;</p>
<p>Espero que os sirva como a mi! Un quebradero de cabeza menos!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2010/02/09/plesk-y-tmp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buddypress &#8211; Automatizar creacion de grupos</title>
		<link>http://blog.oridoki.com/2009/12/16/buddypress-automatizar-creacion-de-grupos/</link>
		<comments>http://blog.oridoki.com/2009/12/16/buddypress-automatizar-creacion-de-grupos/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 11:38:28 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[MiniCodes]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=283</guid>
		<description><![CDATA[Con esta función podemos crear desde PHP nuestros grupos en PHP. function create_a_group() { $new_group = new custom_group; $new_group->creator_id = 1; $new_group->name = ‘test’; $new_group->slug = ‘test’; $new_group->description = ‘nothing’; $new_group->news = ‘whatever’; $new_group->status = ‘public’; $new_group->is_invitation_only = 1; $new_group->enable_wire = 1; $new_group->enable_forum = 1; $new_group->enable_photos = 1; $new_group->photos_admin_only = 1; $new_group->date_created = current_time(‘mysql’); $new_group->total_member_count [...]]]></description>
			<content:encoded><![CDATA[<p>Con esta función podemos crear desde PHP nuestros grupos en PHP.</p>
<pre name='code' class='php'>
function create_a_group() {

  $new_group = new custom_group;

      $new_group->creator_id = 1;
      $new_group->name = ‘test’;
      $new_group->slug = ‘test’;
      $new_group->description = ‘nothing’;
      $new_group->news = ‘whatever’;
      $new_group->status = ‘public’;
      $new_group->is_invitation_only = 1;
      $new_group->enable_wire = 1;
      $new_group->enable_forum = 1;
      $new_group->enable_photos = 1;
      $new_group->photos_admin_only = 1;
      $new_group->date_created = current_time(‘mysql’);
      $new_group->total_member_count = 1;
      $new_group->avatar_thumb = ’some kind of path’;
      $new_group->avatar_full = ’some kind of path’;

  $new_group -> save();

  groups_update_groupmeta( $id, ‘total_member_count’, 1 );
  groups_update_groupmeta( $id, ‘last_activity’, time() );
  groups_update_groupmeta( $id, ‘theme’, ‘buddypress’ );
  groups_update_groupmeta( $id, ’stylesheet’, ‘buddypress’ );

}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/12/16/buddypress-automatizar-creacion-de-grupos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON parser &#8211; Testea tus ficheros en JSON</title>
		<link>http://blog.oridoki.com/2009/12/03/json-parser-testea-tus-ficheros-en-json/</link>
		<comments>http://blog.oridoki.com/2009/12/03/json-parser-testea-tus-ficheros-en-json/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:31:18 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=281</guid>
		<description><![CDATA[A veces cuando estamos desarrollando con AJAX, y utilizamos JSON como medio de intercambio de datos, se producen errores en el fichero JSON que por lo que sé no son detectados por firebug. Encontré esta web donde &#8216;pegas&#8217; tu JSON y te dice si es valido o no y donde &#8216;peta. Online JSON Parser Espero [...]]]></description>
			<content:encoded><![CDATA[<p>A veces cuando estamos desarrollando con AJAX, y utilizamos JSON como medio de intercambio de datos, se producen errores en el fichero JSON que por lo que sé no son detectados por firebug.<br />
Encontré esta web donde &#8216;pegas&#8217; tu JSON y te dice si es valido o no y donde &#8216;peta.</p>
<p><a href="http://json.parser.online.fr/">Online JSON Parser</a></p>
<p>Espero que os sirva como a mi <img src='http://blog.oridoki.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/12/03/json-parser-testea-tus-ficheros-en-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>En Defensa de los Derechos Fundamentales en Internet</title>
		<link>http://blog.oridoki.com/2009/12/02/en-defensa-de-los-derechos-fundamentales-en-internet/</link>
		<comments>http://blog.oridoki.com/2009/12/02/en-defensa-de-los-derechos-fundamentales-en-internet/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 10:28:19 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=279</guid>
		<description><![CDATA[Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que: [...]]]></description>
			<content:encoded><![CDATA[<p>Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:</p>
<p>1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.<br />
2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.<br />
3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.<br />
4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.<br />
5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.<br />
6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.<br />
7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.<br />
8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.<br />
9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.<br />
10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/12/02/en-defensa-de-los-derechos-fundamentales-en-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery &#8211; Rellenar un calendario datepicker</title>
		<link>http://blog.oridoki.com/2009/10/15/jquery-rellenar-un-calendario-datepicker/</link>
		<comments>http://blog.oridoki.com/2009/10/15/jquery-rellenar-un-calendario-datepicker/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 12:01:36 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=270</guid>
		<description><![CDATA[Buenas, después de mucho buscar, y no encontrar nada de nada, al final, desarrollé este código que inserta en la pagina un datepicker de JQueryUI, y lo rellena con datos servidos en JSON. Igual es una chorrada, pero no he encontrado nada mejor, así que aquí os lo dejo por si queréis echarle un vistazo. [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas,</p>
<p>después de mucho buscar, y no encontrar nada de nada, al final, desarrollé este código que inserta en la pagina un <strong>datepicker </strong>de <strong>JQueryUI</strong>, y lo <strong>rellena</strong> con datos servidos en <strong>JSON</strong>. Igual es una chorrada, pero no he encontrado nada mejor, así que aquí os lo dejo por si queréis echarle un vistazo.</p>
<p>Necesitaremos el siguiente script:</p>
<pre name='code' class='js'>
	$(function() {
		$("#datepicker").datepicker({
			numberOfMonths	: 3,
			monthNames			: ['Gener','Febrer','Març','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
			dayNamesMin			: ['Diu', 'Dill', 'Dim', 'Dim', 'Dij', 'Div', 'Dis'],
			firstDay				: 1,
			currentText			: 'Avui',
			onChangeMonthYear: function(year, month, inst) {
				setTimeout("populateDays("+year+", "+month+")", 500);
			}
		});

	});

	function populateDays(year, month) {
		var months = $("#datepicker .ui-datepicker-group");

		for(var i=0; i<months.length;i++) {
			var thisMonth = (parseInt(month)+i).toString();
			if(thisMonth == 13){
				thisMonth = 1;
				year++;
			} else {
				if(thisMonth == 14) {
					thisMonth = 2;
					year++;
				} else {
					if(thisMonth == 0) {
						thisMonth = 12;
						year--;
					} else {
						if(thisMonth == -1) {
							thisMonth = 11;
							year--;
						}
					}
				}
			}
			$(months[i]).attr("id" , "dpk" + thisMonth + year);

			var days = $("#"+$(months[i]).attr("id")+" .ui-state-default");

			$(days).removeClass("ui-state-highlight");
			$(days).removeClass("ui-state-active");

			$.getJSON("?op=booking.aviability&#038;year="+year+"&#038;month="+thisMonth, function(data){
				console.log(data.days);
					var intdays = $("#dpk"+(parseInt(data.month)).toString() + data.year+" .ui-state-default");

					for(var j=0; j<data.days.length; j++) {
						$(intdays[(data.days[j]-1)]).addClass("ui-state-highlight ui-state-active");
					}
			});
		}
	}
</pre>
<p>A continuación colocamos el objeto html en el lugar que nos interese:</p>
<pre name='code' class='html'>
<div class="ocupacio">
<div id="datepicker"></div>
</div>
</pre>
<p>Y por último necesitaremos un script de parte del servidor que pasandole los paramentros año y mes nos devuelva un array como el siguiente, con los dias en que el calendario contiene algún evento.<br />
Para no aburriros os pongo directamente el tipo de código de salida, y ya os apañais <img src='http://blog.oridoki.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<pre name='code' class='php'>
echo "{'year': 2009, 'month' : 10, 'days' : [3,4,10,11,12,22,23,24,25,26]}";
</pre>
<p>El resultado es algo parecido a esto:<br />
<div id="attachment_271" class="wp-caption aligncenter" style="width: 634px"><img src="http://blog.oridoki.com/wp-content/uploads/2009/10/cal.jpg" alt="Autocompletar Datepicker en Jquery" title="Autocompletar Datepicker en Jquery" width="624" height="194" class="size-full wp-image-271" /><p class="wp-caption-text">Autocompletar Datepicker en Jquery</p></div></p>
<p>Si tenéis alguna duda ya sabéis <img src='http://blog.oridoki.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/10/15/jquery-rellenar-un-calendario-datepicker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Psicocanis Servicio de etología clínica veterinaria</title>
		<link>http://blog.oridoki.com/2009/10/15/psicocanis-servicio-de-etologia-clinica-veterinaria/</link>
		<comments>http://blog.oridoki.com/2009/10/15/psicocanis-servicio-de-etologia-clinica-veterinaria/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 07:18:00 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[etologia]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[psicocanis]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=267</guid>
		<description><![CDATA[Recientemente he lanzado Psicocanis.com una web/blog sobre etología clínica veterinaria, que intenta posicionarse como sitio de referencia en este sector. Espero que os guste]]></description>
			<content:encoded><![CDATA[<p>Recientemente he lanzado <a title="Psicocanis - Servicio de etología clinica veterinaria" href="http://www.psicocanis.com" target="_blank">Psicocanis.com</a> una web/blog sobre <strong><a title="Psicocanis - servicio de etlogía clinica veterinaria." href="http://www.psicocanis.com" target="_blank">etología clínica veterinaria</a></strong>, que intenta posicionarse como sitio de referencia en este sector.</p>
<div id="attachment_268" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.psicocanis.com"><img class="size-medium wp-image-268 " title="Psicocanis - Servicio de etología clinica veterinaria" src="http://blog.oridoki.com/wp-content/uploads/2009/10/psico-300x150.jpg" alt="Psicocanis - Servicio de etología clinica canina" width="300" height="150" /></a><p class="wp-caption-text">Psicocanis - Servicio de etología clinica veterinaria</p></div>
<p>Espero que os guste</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/10/15/psicocanis-servicio-de-etologia-clinica-veterinaria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Array 2 JSON</title>
		<link>http://blog.oridoki.com/2009/10/14/php-array-2-json/</link>
		<comments>http://blog.oridoki.com/2009/10/14/php-array-2-json/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:45:17 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array2json]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=263</guid>
		<description><![CDATA[Genial función en PHP que transforma un array PHP en una salida tipo Json. Genial para PHP4 que no integraba esta funcionalidad de serie. function array2json($arr) { if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality. $parts = array(); $is_list = false; //Find out if the given array is a numerical array $keys [...]]]></description>
			<content:encoded><![CDATA[<p>Genial función en PHP que transforma un array PHP en una salida tipo Json. Genial para PHP4 que no integraba esta funcionalidad de serie.</p>
<pre name='code' class='php'>

function array2json($arr) {
  if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.
  $parts = array();
  $is_list = false; 

  //Find out if the given array is a numerical array
  $keys = array_keys($arr);
  $max_length = count($arr)-1;
  if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1
      $is_list = true;
      for($i=0; $i<count($keys); $i++) { //See if each key correspondes to its position
          if($i != $keys[$i]) { //A key fails at position check.
              $is_list = false; //It is an associative array.
              break;
          }
      }
  } 

  foreach($arr as $key=>$value) {
      if(is_array($value)) { //Custom handling for arrays
          if($is_list) $parts[] = array2json($value); /* :RECURSION: */
          else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */
      } else {
          $str = '';
          if(!$is_list) $str = '"' . $key . '":'; 

          //Custom handling for multiple data types
          if(is_numeric($value)) $str .= $value; //Numbers
          elseif($value === false) $str .= 'false'; //The booleans
          elseif($value === true) $str .= 'true';
          else $str .= '"' . addslashes($value) . '"'; //All other things
          // :TODO: Is there any more datatype we should be in the lookout for? (Object?) 

          $parts[] = $str;
      }
  }
  $json = implode(',',$parts); 

  if($is_list) return '[' . $json . ']';//Return numerical JSON
  return '{' . $json . '}';//Return associative JSON
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/10/14/php-array-2-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Contraseña aleatoria</title>
		<link>http://blog.oridoki.com/2009/10/09/php-contrasena-aleatoria/</link>
		<comments>http://blog.oridoki.com/2009/10/09/php-contrasena-aleatoria/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 11:33:27 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[MiniCodes]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=259</guid>
		<description><![CDATA[Cuando damos de alta usuarios de forma automática a menudo necesitamos poner una contraseña por defecto. Este script PHP nos devuelve una contraseña aleatoria de la longitud en caracteres que le pasemos function getRandomPWD($length = 10){ $password = ""; $possible = "0123456789bcdfghjkmnpqrstvwxyz"; $i = 0; while ($i < $length) { $char = substr($possible, mt_rand(0, strlen($possible)-1), [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando damos de alta usuarios de forma automática a menudo necesitamos poner una <strong>contraseña </strong>por <strong>defecto</strong>. Este script PHP nos devuelve una <strong>contraseña aleatoria</strong> de la longitud en caracteres que le pasemos</p>
<pre name='code' class='php'>

function getRandomPWD($length = 10){
  $password = "";
  $possible = "0123456789bcdfghjkmnpqrstvwxyz";
  $i = 0; 

  while ($i < $length) {
    $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);

    if (!strstr($password, $char)) {
      $password .= $char;
      $i++;
    }
  }
  return $password;
}
</pre>
<p><a href="http://www.laughing-buddha.net/jon/php/password/">Código original</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/10/09/php-contrasena-aleatoria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Diferencia entre dos fechas</title>
		<link>http://blog.oridoki.com/2009/10/08/php-diferencia-entre-dos-fechas/</link>
		<comments>http://blog.oridoki.com/2009/10/08/php-diferencia-entre-dos-fechas/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 09:13:03 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[MiniCodes]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=256</guid>
		<description><![CDATA[Bueno pues igual que en javascript, aquí tenéis la función PHP para calcular los días/noches de diferencia entre dos fechas. function dateDifference($d1, $d2){ $v1 = explode("-", $d1); $date1 = mktime(0, 0, 0, intval($v1[1]), intval($v1[0]), intval($v1[2])); $v2 = explode("-", $d2); $date2 = mktime(0, 0, 0, intval($v2[1]), intval($v2[0]), intval($v2[2])); $dateDiff = $date2 - $date1; return floor($dateDiff/(60*60*24)); }]]></description>
			<content:encoded><![CDATA[<p>Bueno pues igual que en javascript, aquí tenéis la función PHP para calcular los días/noches de diferencia entre dos fechas.</p>
<pre name='code' class='php'>

function dateDifference($d1, $d2){
	$v1 = explode("-", $d1);
  $date1 = mktime(0, 0, 0, intval($v1[1]), intval($v1[0]), intval($v1[2]));

	$v2 = explode("-", $d2);
  $date2 = mktime(0, 0, 0, intval($v2[1]), intval($v2[0]), intval($v2[2]));

  $dateDiff = $date2 - $date1;

  return floor($dateDiff/(60*60*24));
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/10/08/php-diferencia-entre-dos-fechas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: Subir Imagenes con AJAX</title>
		<link>http://blog.oridoki.com/2009/08/12/javascript-subir-imagenes-con-ajax/</link>
		<comments>http://blog.oridoki.com/2009/08/12/javascript-subir-imagenes-con-ajax/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 10:21:28 +0000</pubDate>
		<dc:creator>Adrià Cidre</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.oridoki.com/?p=246</guid>
		<description><![CDATA[Mirando en the Bakery de CakePHP he encontrado una librería genial tanto para JQuery como para prototype, para cargar imagenes con AJAX. Es francamente sencilla de utilizar, y además podemos conseguir unos acabados muy al estilo de web 2.0. eliminando de una vez por todas el input.file de toda la vida que a mi parecer [...]]]></description>
			<content:encoded><![CDATA[<p>Mirando en <a href="http://bakery.cakephp.org">the Bakery</a> de <strong>CakePHP </strong>he encontrado una <a href="http://valums.com/ajax-upload/">librería</a> genial tanto para <a href="http://jquery.com/">JQuery </a>como para <a href="www.prototypejs.org">prototype</a>, para <strong>cargar imagene</strong>s con <strong>AJAX</strong>. </p>
<p>Es francamente sencilla de utilizar, y además podemos conseguir unos acabados muy al estilo de web 2.0. eliminando de una vez por todas el input.file de toda la vida que a mi parecer es horroroso.</p>
<p>Podéis encontrar el articulo original <a href="http://valums.com/ajax-upload/">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oridoki.com/2009/08/12/javascript-subir-imagenes-con-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
