<?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>Nullable Blog [Ignoranto.Info] &#187; PHP</title>
	<atom:link href="http://ignoranto.info/contenidos/programacion/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ignoranto.info</link>
	<description>grbr.says(&#34;a little bit of everything and a lot of nothing&#34;);</description>
	<lastBuildDate>Sat, 24 Jul 2010 01:42:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Como hacer un Whois Domain Search LookUp</title>
		<link>http://ignoranto.info/ricercando/whois-domain-search-json-php/</link>
		<comments>http://ignoranto.info/ricercando/whois-domain-search-json-php/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 22:26:01 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://ignoranto.info/?p=516</guid>
		<description><![CDATA[¿Esta disponible tu Dominio? ¿Necesitas un buscador WHOIS para tu web? Veremos como construir un Whois en PHP, y como hacerle consultas mediante ajax usando Json y jQuery para facilitarnos la vida! Requisitos: Manejo de jQuery a nivel teletubi Conocimientos básicos de PHP Conocimientos sobre HTML Para empezar debemos saber que es un Whois LookUp [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter" style="text-align: center;">
<dl id="attachment_518" class="wp-caption   aligncenter" style="width: 342px;">
<dt class="wp-caption-dt"><a href="http://develop.ignoranto.info/html/byteWhois.html"><img class="size-full wp-image-518 " title="byteWhois" src="http://ignoranto.info/wp-content/uploads/byteWhois.jpg" alt="byteWhois, Domain Search" width="332" height="168" /></a></dt>
<dd class="wp-caption-dd">¿Esta disponible tu Dominio?</dd>
</dl>
</div>
<h2 style="text-align: justify;">¿Necesitas un buscador WHOIS para tu web?</h2>
<p style="text-align: justify;">Veremos como construir un Whois en PHP, y como hacerle consultas mediante ajax usando Json y jQuery para facilitarnos la vida!</p>
<p style="text-align: justify;"><strong>Requisitos:</strong></p>
<ul style="text-align: justify;">
<li>Manejo de jQuery a nivel teletubi</li>
<li>Conocimientos básicos de PHP</li>
<li>Conocimientos sobre HTML</li>
</ul>
<p style="text-align: justify;">Para empezar debemos saber que es un <strong>Whois LookUp</strong></p>
<p style="text-align: justify;">El Whois son los datos del registro del dominio, en él está la información acerca del registrante y el registrador, la fecha de registro, la última actualizacion y la fecha de vencimiento, tambien encontramos el estatus del dominio como por ejemplo si éste acepta transferencia, autorenovación y cosas más!</p>
<p style="text-align: justify;">El whois LookUp que he escrito se llama <strong>byteWhois!</strong> y funciona de la siguiente manera:</p>
<ol style="text-align: justify;">
<li>Recibe 2 parámetros GET, dominio y tld;</li>
<li>Una funcion que según el TLD extrae la url de un servidor Whois</li>
<li>Otra funcion abre conexión fsockopen(); introduce el dominio a consultar fputs(); y se descarga la respuesta!</li>
<li>Si dentro de la respuesta (el whois) existe las palabras &#8220;No match&#8221;, &#8220;No Found&#8221; u otras, quiere decir que NO esta registrado!</li>
<li>En caso de estar registrado, se obtiene la info del whois</li>
<li>Se codifica toda esta información como json y se imprime en el archivo (echo $json;)</li>
</ol>
<p style="text-align: justify;">Luego que el archivo php nos hara resuelto, usando jQuery extraeremos los datos de <strong>byteWhois!</strong> y éste nos devolverá un objeto JavaScript, el objeto tendrá 2 propiedades: &#8220;estado&#8221; y &#8220;whois&#8221;;</p>
<p style="text-align: justify;"><strong>El source de byteWhois.php</strong></p>
<pre style="text-align: justify;"> $dominioNombre = $_GET['dominio'];
 $dominioExtension = $_GET['tld'];

 $estado = comprobarDominio($dominioNombre,$dominioExtension);
 if ($estado == 'no-disponible'){    $whois = INFO_WHOIS;    }
 else    {    $whois = "Dominio no registrado";    }

 $data = array("estado" =&gt; "$estado","whois" =&gt; $whois );
 echo json_encode($data);</pre>
<p style="text-align: justify;">En el codigo anterior: recibimos variables por <strong>GET</strong>, las variables del dominio y la tld,  enviamos a la funcion &#8220;comprobarDominio();&#8221; los valores del dominio y el tld, ésta funcion devolverá un string y depositamos dicho string en <strong>$estado</strong>, si el valor de <strong>$estado</strong> es igual a <strong>&#8220;no-disponible&#8221;</strong> entonces, $whois tomará el valor de <strong>INFO_WHOIS</strong> (que posteriormente definiremos), caso contrario, el valor de <strong>$whois</strong> es &#8220;Dominio no registrado&#8221;;</p>
<p style="text-align: justify;"><strong>El método (funcion) comprobarDominio();</strong></p>
<pre style="text-align: justify;">function comprobarDominio($dominioNombre, $dominioTld)
{
 $dominioCompleto = $dominioNombre.".".$dominioTld;
 $serverInfo = servidorWhois($dominioTld);
 if ($serverInfo)
 {
 $serverData = explode(";", $serverInfo);
 $whoisServer = $serverData[0];
 $noFound = $serverData[1];
 $conexionServer = fsockopen($whoisServer,43);
 fputs($conexionServer,"$dominioCompleto\r\n");
 $respuesta = '';
 while(!feof($conexionServer))
 {
   $respuesta .= fgets($conexionServer,128);
 }
 fclose($conexionServer);
 if (ereg($noFound,$respuesta)) {
 return "disponible";
 }
 else {
   define ('INFO_WHOIS',$respuesta);
   return "no-disponible";
 }
 }
 else
 {
   return "tld-incorrecta";
 }
}</pre>
<p style="text-align: justify;"><strong>comprobarDominio();</strong> concadenará las variables ingresadas para crear el nombre de dominio (<strong>$dominioCompleto</strong>), tenemos una funcion &#8220;<strong>servidorWhois()</strong>&#8221; que devuelve un string con la direccion del servidor y una frase (&#8220;no match&#8221;, &#8220;no found&#8221;) concadenada, si recibimos respuesta de la función entonces dividiremos el string recibido y extraeremos la primera parte (la direccion del servidor),  abriremos conexion con fsockopen en el puerto 43, colocaremos la info del dominio con fputs(), y leeremos el archivo de conexión (un archivo de texto), concadenamos el contenido en la variable $resultado, cerramos la conexion con <strong>fclose()</strong>; y si en el string (resultado) encontramos las frase contenida en  <strong>$noFound</strong>, entonces el dominio esta disponible, caso contrario el dominio ya está registrado y declaramos la variable <strong>INFO_WHOIS</strong>, asignandole el valor de <strong>$respuesta</strong>, si en la funcion nos ingresaron una TLD que no existe  (dentro de la funcion servidoWhois(), retornamos &#8220;tld-incorrecta&#8221;;</p>
<p style="text-align: justify;"><strong>El método (o función) servidorWhois();</strong></p>
<pre style="text-align: justify;">function servidorWhois($tld)
{
 switch($tld)
 {
 case 'com' :    $server = "whois.verisign-grs.com";
 $noFound = "No match"; break;

 case 'net' :    $server = "whois.verisign-grs.com";
 $noFound = "No match"; break;

 case 'org' :    $server = "whois.publicinterestregistry.net";
 $noFound = "NOT FOUND"; break;

 case 'info':    $server = "whois.afilias.net";
 $noFound = "Not found"; break;

 case 'biz' :    $server = "whois.nic.biz";
 $noFound = "Not found"; break;

 default:        return null; break;
 }
 return $server.";".$noFound;
}</pre>
<p style="text-align: justify;">En ésta funcion retornamos un valor según la TLD ingresada, el valor retornado es la url del servidor (con la cual luego abriremos una conexión) y la frase (según el servidor) que indica si el dominio no está registrado (o por lo menos si los servidores NO tienen información al respecto!), el valor devuelto es una cadena asi: &#8220;servidor;nofound&#8221;, posteriormente dividiremos dicha cadena (usando el punto y coma) e interpretaremos los valores independientemente!</p>
<p style="text-align: justify;">Hasta aquí ya hemos creado <a href="http://develop.ignoranto.info/LeerPHP?Carpeta=php&amp;Archivo=byteWhois.php" target="_blank">byteWhois</a> para conocer la disponibilidad de un dominio, el <a href="http://develop.ignoranto.info/LeerPHP?Carpeta=php&amp;Archivo=byteWhois.php" target="_blank">codigo de byteWhois!</a></p>
<p style="text-align: justify;">En el código de nuestro formulario usaremos jquery.getJSON() para obtener datos de byteWhois();</p>
<pre style="text-align: justify;">$.getJSON('http://direccion/de/byteWhois_de_ignoranto.php',{dominio:"midominio", tld:"mitld"},
 function(data){ alert(data.info)});</pre>
<p style="text-align: justify;">Enviamos &#8220;midominio&#8221; y &#8220;mitld&#8221; a byteWhois, luego (que se haya resuelto) se nos mostrará un alert! donde seremos informados del estado del dominio (registrado, no-registrado, tld-incorrecta), podemos ver <a href="http://develop.ignoranto.info/html/byteWhois.html" target="_blank">byteWhois</a> en accion (solo para <strong>ver la <a href="http://develop.ignoranto.info/html/byteWhois.html">disponibilidad del dominio</a></strong>) a través de <a href="http://develop.ignoranto.info/html/byteWhois.html">éste link!</a></p>
<p style="text-align: justify;">Si queremos ver la información WHOIS (el registrante) debemos guardar el valor de &#8220;<strong>data.whois</strong>&#8221; en una variable y luego &#8220;trabajarla&#8221; y asi mostrarla en el navegador! Podemos ver el código html+JavaScript aquí » <a href="http://develop.ignoranto.info/LeerPHP?Carpeta=html&amp;Archivo=byteWhois.html">byteWhois.html</a></p>
<p style="text-align: justify;">Descargar el codigo de <a href="http://develop.ignoranto.info/LeerPHP?Carpeta=php&amp;Archivo=byteWhois.php">byteWhois.php</a><br />
Descargar el codigo de <a href="http://develop.ignoranto.info/LeerPHP?Carpeta=html&amp;Archivo=byteWhois.html">byteWhois.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/whois-domain-search-json-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Leer Código PHP [usando PHP]</title>
		<link>http://ignoranto.info/ricercando/leer-codigo-php-usando-php/</link>
		<comments>http://ignoranto.info/ricercando/leer-codigo-php-usando-php/#comments</comments>
		<pubDate>Sat, 23 May 2009 06:48:36 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Leer Código PHP]]></category>

		<guid isPermaLink="false">http://codigo.ignoranto.info/?p=86</guid>
		<description><![CDATA[¿Por qué mostrar el código PHP? Pues creí ingenuamente que el código PHP se podía descargar usando &#8220;guardar como&#8221; en los menúes contextuales pero luego me di cuenta que era algo tonto obviamente y es por ello que escribí código PHP que permite visualizar el código PHP. ¿Cómo funciona? Fácil! (luego de pensar mucho), pues [...]]]></description>
			<content:encoded><![CDATA[<p><strong>¿Por qué mostrar el código PHP?</strong><br />
Pues creí <span style="text-decoration: line-through;">ingenuamente</span> que el código PHP se podía descargar usando &#8220;guardar como&#8221; en los menúes contextuales pero luego me di cuenta que era algo tonto <span style="text-decoration: line-through;">obviamente</span> y es por ello que escribí código PHP que permite visualizar el código PHP.</p>
<p><strong>¿Cómo funciona?</strong><br />
Fácil! (luego de pensar mucho), pues tenemos muchas alternativas:</p>
<ol>
<li>Reescribir el nombre del archivo y ponerle otra extension (si, pensé eso)!</li>
<li>Leer el archivo y mostrarlo como texto sin formato!</li>
<li>Utilizar la funcion show_source() de PHP!</li>
</ol>
<p>A continuación explicaré el método 2, que consiste en leer el archivo y mostrarlo como texto sin formato!</p>
<p><strong>Explicación</strong><br />
HTML trabaja con etiquetas &lt;&gt;, todo &#8220;texto&#8221; dentro de estas etiquetas es interpretado por el navegador, inclusive si usamos las etiquetas &lt;pre&gt;. Como sabemos PHP se escribe dentro de &lt;?php ?&gt;(lo cual una vez leido el archivo, igualmente no se visualizaría); para mostrar &#8220;&lt;&gt;&#8221; a través de HTML tenemos que usar la siguiente combinación de caracteres</p>
<blockquote><p><strong>&amp;lt;</strong> para &#8220;&lt;&#8221; y <strong>&amp;gt;</strong> para &#8220;&gt;&#8221;</p></blockquote>
<p>La funcion PHP que se reemplazará los caracters es:</p>
<pre style="text-align: center;">ereg_replace($caracterbuscado, $reemplazarpor, $eneltexto);</pre>
<p>Ya que tenemos idea de como reemplazar esos caracteres, ahora viene lo más interesante, leer el archivo PHP.</p>
<p>En PHP tenemos la función fopen(), ésta funcion abre (solo abre) un archivo determinado; tenemos también la funcion fgets(), ésta funcion solo lee LÍNEAS del archivo abierto y finalmente tenemos feof(), quien nos indica si hemos llegado al final del archivo; como última funcion tenemos fclose(), quien se encarga de cerrar el archivo abierto!</p>
<p><strong>Algoritmo [Pseudocódigo]</strong></p>
<pre>funcion leerarchivo($archivo.php")
{
 $texto = "";
 $archivoabierto = abrir("archivo.php","sololectura")
 Mientras sea falso el fin del archivo
 $texto = $texto + leer($archivoabierto);
 cerrararchivo($archivoabierto);
 retornamos $texto;
}</pre>
<p>Una vez leido el archivo, la funcion &#8220;leerarchivo()&#8221; nos retonará una variable de tipo cadena, la cual posteriormente tendremos que &#8220;limpiar&#8221; de dichos caracteres &lt;&gt; que arruinarían la presentación de nuestro código, ello lo hacemos con:</p>
<pre>$data = leerarchivo("archivo.php");
$data = ereg_replace("&lt;", "&amp;lt;", $data);
$data = ereg_replace("&gt;", "&amp;gt;", $data);</pre>
<p>Donde &#8220;$data&#8221; es la variable donde recogimos el valor devuelto por &#8220;leerarchivo()&#8221;, con todo esto ya tenemos listo nuestro código para ser &#8220;mostrado&#8221;!</p>
<p>Probablemente esta explicación no haya sido muy didáctica/satisfactoria pero ¡Que mejor! que ver el mismo archivo funcionando, el archivo que he desarrollado se llama &#8220;<strong>LeerPHP.php</strong>&#8221; (vaya nombre, no?) y lo que hace es <strong>leer el código PHP</strong> ingresado a través de variables GET [Carpeta=$carpeta&amp;Archivo=$archivo]; <strong><a title="Lector de Archivos PHP" href="http://develop.ignoranto.info/LeerPHP?Archivo=LeerPHP.php" target="_blank">aquí</a></strong> tienen al archivo leyéndose a si mismo (recursividad!!).</p>
<p>Ahora que ya podemos leer código PHP, he implementado dicho script en <a title="El Código Ignoranto" href="http://develop.ignoranto.info" target="_blank">develop.ignoranto.info</a>, todo script php cuenta con un enlace llamado &#8220;Ver Código&#8221; el cual ejecuta el archivo LeerPHP.php para mostrar el contenido de los scripts PHP!</p>
<p><strong>NOTA:</strong><br />
Existe una funcion en PHP que hace lo mismo que éste script, dicha función se llama &#8220;show_source()&#8221;, el fin de éste script (LeerPHP.php) es didáctico y demostrativo!</p>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/leer-codigo-php-usando-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buscar paréntesis () con PHP!</title>
		<link>http://ignoranto.info/ricercando/buscar-parentesis-con-php/</link>
		<comments>http://ignoranto.info/ricercando/buscar-parentesis-con-php/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 18:22:51 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Algoritmo]]></category>
		<category><![CDATA[Funciones]]></category>

		<guid isPermaLink="false">http://codigo.ignoranto.info/?p=84</guid>
		<description><![CDATA[Si tuvieras esta expresión: 1+(4*(7-2)) ¿Cómo harías para extraer los valores de los últimos parentesis? No es muy dificil, primero necesitamos saber la ULTIMA posición del ULTIMO parentesis de APERTURA! » &#8221; ( &#8221; y luego saber la PRIMERA posición del PRIMER paréntesis de CIERRE! » &#8221; ) &#8220;; Y &#8230; ¿Cómo lo hago? En [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><strong>Si tuvieras esta expresión:</strong></p>
<h2 style="text-align: center;"><strong>1+(4*(7-2))</strong></h2>
<p style="text-align: left;"><strong>¿Cómo harías para extraer los valores de los últimos parentesis?<br />
</strong>No es muy dificil, primero necesitamos saber la ULTIMA posición del ULTIMO parentesis de APERTURA! » &#8221; ( &#8221; y luego saber la PRIMERA posición del PRIMER paréntesis de CIERRE! » &#8221; ) &#8220;;</p>
<p style="text-align: left;"><strong>Y &#8230; ¿Cómo lo hago?</strong><br />
En PHP tenemos la función STRPOS que nos devuelve la posición de cualquier caracter que busquemos dentro de una cadena de texto. Tenemos también STRRPOS (nótese de una R adicional) que nos devuelve la última posición de un caracter en particular!</p>
<pre style="text-align: left;">// ejemplo
$txt =
 "a(b(c))";
//0123456 las posiciones del texto!
echo $p01 = strpos ( $txt, ")" ); // nos devuelve 5
echo $p02 = strrpos( $txt, "(" ); // nos devuelve 3</pre>
<p>Con el ejemplo anterior hacemos que PHP nos muestre la posición de los parentesis () que están dentro de los otros parentesis ()!</p>
<p>Ahora extraeremos el contenido de dichos paréntesis!</p>
<pre>// ejemplo
$txt =
 "a(b(c))";
//0123456 las posiciones del texto!
echo $p01 = strpos ( $txt, ")" ); // nos devuelve 5
echo $p02 = strrpos( $txt, "(" ); // nos devuelve 3
// substr (texto, posicion, ncaracteres)
// $p02 - $p01 nos da la longitud de cadena a extraer!
// $p02 es 3, entonces comenzará a extraer desde la pos 3
// $p01 es 5, pero solo queremos 1 caracter!
echo substr ( $txt, $p02 , $p01-$p02);
// para solo extraer la letra C, seria asi:
echo substr ( $txt, $p02+1 , $p01-$p02-1);</pre>
<p>Eso es todo! ahora a probar! Como es sabido, todo esto se encuentra <a href="http://develop.ignoranto.info/php/buscarparentesis.php" target="_blank">aquí</a>; lamentablemente por ahora no encuentro la manera de descargar el código PHP, pronto implementaré algun script para poder descargar el código PHP contenido en <a href="http://develop.ignoranto.info" target="_blank">develop.ignoranto.info</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/buscar-parentesis-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Problema de Syracuse (Conjetura de Collatz)</title>
		<link>http://ignoranto.info/ricercando/problema-de-syracuse/</link>
		<comments>http://ignoranto.info/ricercando/problema-de-syracuse/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 04:07:54 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Algoritmo]]></category>
		<category><![CDATA[Conjetura de Collatz]]></category>
		<category><![CDATA[Métodos]]></category>
		<category><![CDATA[Problema de Syracuse]]></category>
		<category><![CDATA[Recursividad]]></category>

		<guid isPermaLink="false">http://codigo.ignoranto.info/?p=70</guid>
		<description><![CDATA[Hola, en este artículo vamos a ejemplificar y aplicar la recursividad de la conjetura de Collatz, si necesitas información matemática puedes recurrir a la wikipedia, quien redacta este artículo es estudiante de Ingeniería de Sistemas (futuro programador). El problema Syracuse o Conjetura de Collatz es una función recursiva y las condiciones son las siguientes: Si [...]]]></description>
			<content:encoded><![CDATA[<p>Hola, en este artículo vamos a ejemplificar y aplicar la recursividad de la <strong>conjetura de Collatz</strong>, si necesitas información matemática puedes recurrir a la <a href="http://es.wikipedia.org/wiki/Conjetura_de_Collatz">wikipedia</a>, quien redacta este artículo es estudiante de Ingeniería de Sistemas (futuro programador).<span style="text-decoration: line-through;"><br />
</span></p>
<p>El problema Syracuse o Conjetura de Collatz es una función recursiva y las condiciones son las siguientes:</p>
<blockquote><p>Si N es par, lo dividimos [N/2];<br />
Si N es impar, lo multiplicamos por 3 y sumamos +1 [3N+1];</p></blockquote>
<p>Siendo N un numero entero positivo; es necesario que N sea un numero entero positivo ya que si fuese real (con coma decimal) nuestro ordenador no podría saber si es &#8220;par o impar&#8221; debido a que una de las formas de saber si un número es par o impar es mediante el &#8220;módulo&#8221; el cual halla el residuo de una división, si el residuo de N y 2 es 0, entonces N es par!.</p>
<p><strong>Comencemos:</strong><br />
Necesitamos crear una funcion recursiva, nuestra función se llamará syr(), el parámetro de entrada es una variable de tipo entero (por que si fuera double o float simplemente no existiría el módulo (residuo)), obviamente nuestra función syr() devuelve un valor entero!</p>
<p>Si N es 1, retornamos 1;<br />
Sino, Si el módulo (residuo) de N y 2 es 0, retornamos N/2;<br />
Sino, retornamos 3*N+1;</p>
<p>Veamos lo que pasa si N valiese 5:<br />
5 % 2 == 0 ?? NO!<br />
entonces &gt;&gt; n = 3*5 + 1, [n = 16];<br />
16% 2 == 0 ?? SI!<br />
entonces &gt;&gt; n = 16/2, [n = 8];<br />
8% 2 == 0?? SI!<br />
entonces &gt;&gt; n = 8/2, [n = 4];<br />
4 % 2 == 0?? SI!<br />
entonces &gt;&gt; n = 4/2, [n = 2];<br />
2%2 == 0?? SI!<br />
entonces &gt;&gt; n = 2/2. [n= 1]<br />
1 == 1?? SI!<br />
Fin de la secuencia, llegamos a 1!</p>
<p><strong>EN PHP sería de la siguiente manera:</strong></p>
<pre>syr($n)
{
  echo $n; //mostramos $n
  if ($n == 1) //si $n es 1, devolvemos 1
    return 1;
  else //sino ...
  {
    if ($n%2 == 0) // si es par
      return syr($n/2); // lo dividimos
    else //sino
      return syr(3*n+1); // multiplicamos por 3 y sumamos 1;
  }
}</pre>
<p><a href="http://develop.ignoranto.info" target="_blank">El código ignoranto</a> tiene el algoritmo escrito en <a href="http://develop.ignoranto.info/csharp/syracuse.cs">C#</a> y <a href="http://develop.ignoranto.info/LeerPHP?Carpeta=php&amp;Archivo=syracuse.php">PHP</a>; también podemos probar la <a href="http://develop.ignoranto.info/php/syracuse.php">Serie de Syracuse</a> solo con números enteros menores de 1e5 (sino se sobre carga el server)!</p>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/problema-de-syracuse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fecha y Hora en PHP</title>
		<link>http://ignoranto.info/ricercando/fecha-y-hora-en-php/</link>
		<comments>http://ignoranto.info/ricercando/fecha-y-hora-en-php/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 18:28:58 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tiempo POSIX]]></category>
		<category><![CDATA[Tiempo Unix]]></category>

		<guid isPermaLink="false">http://codigo.ignoranto.info/?p=48</guid>
		<description><![CDATA[Pues en este post escribo cómo saber la hora en el servidor (y claro , luego como mostrarla en el navegador dependiendo a la hora local). Como sabemos muchos servidores tienen sus horas en GMT, asi que si somos de Perú lo que haríamos sería restar la hora del servidor -5 (Perú se encuentra en [...]]]></description>
			<content:encoded><![CDATA[<p>Pues en este post escribo cómo saber la hora en el servidor (y claro , luego como mostrarla en el navegador dependiendo a la hora local).</p>
<p>Como sabemos muchos servidores tienen sus horas en GMT, asi que si somos de Perú lo que haríamos sería restar la hora del servidor -5 (Perú se encuentra en GMT-5), otro punto a recalcar sería que en internet se maneja &#8220;el tiempo unix&#8221; asi que si preguntamos por el &#8220;tiempo&#8221; al servidor, probablemente nos devuelva unos numeritos asi 1238437581 y nosotros no queremos eso, para ello usaremos la funcion date() que lo que hace es convertir el tiempo unix en un formato legible/entendible por el humano!</p>
<pre>&lt;?php
  //tiempo unix
  echo time()
?&gt;
&lt;?php
  //fecha y hora entendible por nosotros
  date("d-m-Y-H:i",time());
?&gt;</pre>
<p>He <a href="http://develop.ignoranto.info/php/fecha_hora.php" target="_blank">AQUI</a> el código pero ya funcionando.<br />
El código está en <a href="http://develop.ignoranto.info" target="_blank">develop.ignoranto.info</a> en la sección PHP, clic en &#8220;guardar como&#8221; (del menú contextual) para descargar <img src='http://ignoranto.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8211;Actualización&#8211;<br />
Hoy ( justo ahora <img src='http://ignoranto.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) me dí cuenta que solo basta con poner &lt;?php date(&#8220;H:i&#8221;) ?&gt; mas no time();, ya que simplemente con date tenemos la hora en el servidor <img src='http://ignoranto.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ( time () sale sobrando <img src='http://ignoranto.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/fecha-y-hora-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cookies en PHP!</title>
		<link>http://ignoranto.info/ricercando/cookies-en-php/</link>
		<comments>http://ignoranto.info/ricercando/cookies-en-php/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 02:52:59 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://codigo.ignoranto.info/?p=46</guid>
		<description><![CDATA[Algo muy interesante y bastante útil! ¿Qué es un cookie? Literalmente es una galletita, pero en informática (sobre todo en la web) los usamos para &#8220;hacer memoria&#8221; de las veces que alguien nos visitó o si simplemente dejaron abierta una &#8220;sesión&#8221;. ¿Cómo funciona? Si N persona se conecta a X sitio en internet, el sitio [...]]]></description>
			<content:encoded><![CDATA[<p>Algo muy interesante y bastante útil!</p>
<p><strong>¿Qué es un cookie?</strong><br />
Literalmente es una galletita, pero en informática (sobre todo en la web) los usamos para &#8220;hacer memoria&#8221; de las veces que alguien nos visitó o si simplemente dejaron abierta una &#8220;sesión&#8221;.</p>
<p><strong>¿Cómo funciona?</strong><br />
Si N persona se conecta a X sitio en internet, el sitio X le deja un cookie en el computador de N persona, de tal manera si N persona vuelve a conectarse a X sitio, X sabrá que esa N persona ya le visitó anteriormente!</p>
<p><strong>¿Cómo colocamos el cookie?</strong><br />
Lo colocamos con: setcookie(Nombre, Valor, Tiempo_Vida, Path, Dominio, Seguro);</p>
<pre>// este cookie se llama "algo";
&lt;?php  setcookie("algo", "1", time() + 10800); ?&gt;</pre>
<p><strong>¿Cómo vemos si existe el cookie?</strong></p>
<p>Usamos la condición &#8220;if&#8221; para saber si existe, el valor &#8220;null&#8221; significa vacio/nulo y preguntamos &#8220;si $var es nulo&#8221; entonces mostramos el mensaje &#8220;no hay cookie&#8221;, caso contrario decimos &#8220;si habia cookie&#8221;&#8230;<strong><br />
</strong></p>
<pre>&lt;?php $var = $_COOKIE['algo']
  if ($var==null){echo "no hay cookie";}
  else {echo "si habia cookie"; }
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/cookies-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leer ancho de pantalla en PHP</title>
		<link>http://ignoranto.info/ricercando/leer-ancho-de-pantalla-en-php/</link>
		<comments>http://ignoranto.info/ricercando/leer-ancho-de-pantalla-en-php/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 23:06:54 +0000</pubDate>
		<dc:creator>gerWare</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Ancho de pantalla]]></category>
		<category><![CDATA[Method POST]]></category>

		<guid isPermaLink="false">http://codigo.ignoranto.info/?p=8</guid>
		<description><![CDATA[Como primera entrada explicaré la forma de leer el ancho de pantalla usando JavaScript y PHP! ¿Alguna idea? Primero necesitamos tener idea de como debería trabajar, primero nuestro archivo.php pedirá una variable (ya sea POST o GET) y SI NO TIENE VALOR (o sea si el valor de la variable es &#8220;nulo&#8221; (null)) entonces nos [...]]]></description>
			<content:encoded><![CDATA[<p>Como primera entrada explicaré la forma de leer el ancho de pantalla usando JavaScript y PHP!</p>
<p><strong>¿Alguna idea?</strong><br />
Primero necesitamos tener idea de como debería trabajar, primero nuestro archivo.php <strong>pedirá</strong> una variable (ya sea POST o GET) y <strong>SI NO TIENE VALOR</strong> (o sea si el valor de la variable es &#8220;nulo&#8221; (null)) entonces nos generará un código JavaScript para poder &#8220;autoenviarse&#8221; el valor del ancho, si el código JavaScript (generado por PHP) captura el valor del ancho de la pantalla, entonces enviará el valor a si mismo (al archivo.php contenedor) y como ya tenemos el valor de la variable entonces el archivo.php nos mostrará el ancho de la pantalla&#8230;</p>
<p>A continuación el código.<strong>php</strong>:</p>
<pre>&lt;?php
/* inicio codigo html */
echo '&lt;html&gt;&lt;body&gt;';
/* recibimos valor de $a mediante post */
$a = $_POST['ancho'];
/* si $a no tiene valor */
if ($a ==null){
/* creamos codigo javascript */
echo '&lt;form action=archivo.php name=form method=POST&gt;';
echo '&lt;input type=hidden name=ancho&gt;';
echo '&lt;script language=JavaScript&gt;
document.form.ancho.value=screen.width;
document.form.submit()
&lt;/script&gt;';
echo '&lt;/form&gt;';
}else{
/* sino, simplemente mostramos su valor*/
echo $a;
}
/* fin codigo html */
echo '&lt;/body&gt;&lt;/html&gt;';
?&gt;</pre>
<p>Nos puede ser muy util para moldear el diseño de una web dependiendo al ancho de la pantalla de nuestro querido usuario/cliente y para una infinidad de cosas más&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ignoranto.info/ricercando/leer-ancho-de-pantalla-en-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
