<?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>unijimpe &#187; PHP</title>
	<atom:link href="http://blog.unijimpe.net/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.unijimpe.net</link>
	<description>Desarrollo Web, SEO, Adsense</description>
	<lastBuildDate>Tue, 06 Jul 2010 06:05:20 +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>Convertir monedas con PHP y Google Finance</title>
		<link>http://blog.unijimpe.net/convertir-monedas-con-php-y-google-finance/</link>
		<comments>http://blog.unijimpe.net/convertir-monedas-con-php-y-google-finance/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 06:38:05 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[conversor]]></category>
		<category><![CDATA[currency]]></category>
		<category><![CDATA[finance]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[moneda]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1204</guid>
		<description><![CDATA[<p><em>Google Finance</em> es un servicio para temas relacionados a finanzas (Cotizaciones financieras, datos económicos de empresas y noticias financieras), entre las muchas herramientas que ofrece dispone de un conversor de monedas para la mayoría de monedas del mundo. Aprovecharemos este servicio para crear un conversor de monedas personalizado.</p>
<p><a href="http://samples.unijimpe.net/currency/custom.php"></a></p>
<p><strong>Obteniendo la Información</strong></p>
<p>Lo primero es obtener&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><em>Google Finance</em> es un servicio para temas relacionados a finanzas (Cotizaciones financieras, datos económicos de empresas y noticias financieras), entre las muchas herramientas que ofrece dispone de un conversor de monedas para la mayoría de monedas del mundo. Aprovecharemos este servicio para crear un conversor de monedas personalizado.</p>
<p><a href="http://samples.unijimpe.net/currency/custom.php"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/06/currency-converter-300x90.jpg" alt="" title="currency-converter" width="300" height="90" /></a></p>
<p><strong>Obteniendo la Información</strong></p>
<p>Lo primero es obtener los datos, para ello utilizaremos un URL que Google Finance utiliza para mostrar el tipo de cambio. </p>
<div class="syntax_hilite">
<div id="php-6">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style="">http:<span style="color:#FF9933; font-style:italic;">//www.google.com/ig/calculator?hl=en&amp;q=100USD%3D%3FPEN </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Donde se tienen los siguiente parámetros:</p>
<ul>
<li><strong>100</strong> es el monto que deseamos convertir.</li>
<li><strong>USD</strong> es la moneda que deseamos convertir (En este caso USD).</li>
<li><strong>PEN</strong> es la moneda a la que deseamos convertir.</li>
</ul>
<p>El cual  devuelve como resultado los datos en formato JSON:</p>
<div class="syntax_hilite">
<div id="php-7">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#006600;">&#123;</span>lhs: <span style="color:#FF0000;">"1 U.S. dollar"</span>,rhs: <span style="color:#FF0000;">"2.8239972 Peruvian nuevos soles"</span>,error: <span style="color:#FF0000;">""</span>,icc: <span style="color:#000000;">true</span><span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Para una lista completa de los códigos de monedas disponibles pueden visitar <a href="http://samples.unijimpe.net/currency/codes.php">Currency Codes</a>.</p>
<p><strong>Implementando Conversor de Monedas Básico</strong></p>
<p>Como los datos son devueltos en formato JSON, utilizaremos la librería <em>JSON.php</em> de la cual hemos comentado en <a href="http://blog.unijimpe.net/json-con-php/">JSON con PHP</a>. Entonces crearemos un script para mostrar la equivalencia entre el Dolares Americanos (USD) y Nuevos Soles (PEN). </p>
<p>Primero incluimos la librería <em>JSON.php</em> luego utilizamos la función <em>file_get_contents</em> para obtener los datos desde el URL donde hemos puesto los códigos de las monedas a convertir. Después decodificamos el contenido.</p>
<div class="syntax_hilite">
<div id="php-8">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"JSON.php"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.google.com/ig/calculator?hl=en&amp;q=1USD%3D%3FPEN"</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#0000FF;">$json</span> = <span style="color:#000000;">new</span> Services_JSON<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$obj</span> = <span style="color:#0000FF;">$json</span>-&gt;<span style="color:#006600;">decode</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Una vez obtenido los valores solo queda imprimir los resultados en nuestra página.</p>
<div class="syntax_hilite">
<div id="html-9">
<div class="html">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/h2.html"><span style="color: #000000;">&lt;h2&gt;</span></a></span>Currency Converter<span style="color: #009900;"><span style="color: #000000;">&lt;/h2&gt;</span></span></div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000;">&lt;strong&gt;</span></a></span>From:<span style="color: #009900;"><span style="color: #000000;">&lt;/strong&gt;</span></span> <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php echo $obj-<span style="color: #000000;">&gt;</span></a></span>lhs; ?&gt;<span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/strong.html"><span style="color: #000000;">&lt;strong&gt;</span></a></span>To:<span style="color: #009900;"><span style="color: #000000;">&lt;/strong&gt;</span></span> <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php echo $obj-<span style="color: #000000;">&gt;</span></a></span>rhs; ?&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pueden ver el resultado de este ejemplo en <a href="http://samples.unijimpe.net/currency/">http://samples.unijimpe.net/currency/</a>.</p>
<p><strong>Conversor de Monedas Personalizado</strong></p>
<p>Ahora si deseamos que el usuario seleccione que moneda desea convertir, se puede agregar dos selectores: uno para seleccionar la moneda de origen al cual llamaremos <em>from</em> y otro para definir la moneda de destino llamado <em>to</em>. Luego solo nos queda procesar los datos del formulario y mostrar los resultados.</p>
<div class="syntax_hilite">
<div id="php-10">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">if</span> <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'from'</span><span style="color:#006600;">&#93;</span> != <span style="color:#FF0000;">""</span> &amp;&amp; <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'to'</span><span style="color:#006600;">&#93;</span> != <span style="color:#FF0000;">""</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$from</span> = <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'from'</span><span style="color:#006600;">&#93;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$to</span> = <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'to'</span><span style="color:#006600;">&#93;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; </div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.google.com/ig/calculator?hl=en&amp;q=1"</span>.<span style="color:#0000FF;">$from</span>.<span style="color:#FF0000;">"=?"</span>.<span style="color:#0000FF;">$to</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; </div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$json</span> = <span style="color:#000000;">new</span> Services_JSON<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#0000FF;">$obj</span> = <span style="color:#0000FF;">$json</span>-&gt;<span style="color:#006600;">decode</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$data</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#FF0000;">"&lt;strong&gt;1 "</span>.<span style="color:#0000FF;">$from</span>.<span style="color:#FF0000;">" = "</span>.<span style="color:#0000FF;">$obj</span>-&gt;<span style="color:#006600;">rhs</span>.<span style="color:#FF0000;">"&lt;/strong&gt;"</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp;<span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>A nuestro segundo ejemplo le agregamos una hoja de estilos y ordenamos nuestro formulario para obtener un buen resultado. Pueden ver el resultado del ejemplo en <a href="http://samples.unijimpe.net/currency/custom.php">http://samples.unijimpe.net/currency/custom.php</a>.</p>
<p>Como pueden ver basado en nuestro conocimiento de JSON con PHP podemos utilizar un servicio para integrarlo a nuestra de manera rápida. Les dejo los archivos fuente del ejemplo para que lo puedan estudiar y hacer sus pruebas.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/currency.zip" title="Currency Converter"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/convertir-monedas-con-php-y-google-finance/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Como hacer redireccionamiento 301 y 302</title>
		<link>http://blog.unijimpe.net/como-hacer-redireccionamiento-301-y-302/</link>
		<comments>http://blog.unijimpe.net/como-hacer-redireccionamiento-301-y-302/#comments</comments>
		<pubDate>Wed, 19 May 2010 06:05:01 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[302]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[canonicalización]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[redirección]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1169</guid>
		<description><![CDATA[<p>Redireccionar una página consiste en enviar al usuario de una dirección a otra. Existen dos tipos de redireccionamiento: <em>301</em> y <em>302</em>, cada uno para diferentes situaciones. Veamos como y cuando utilizar estos tipos para redireccionar de manera apropiada. </p>
<p><strong>Tipos de Redirección</strong></p>
<p>Existen dos tipos de redireccionamiento que podemos utilizar, los dos le cambian de dirección&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Redireccionar una página consiste en enviar al usuario de una dirección a otra. Existen dos tipos de redireccionamiento: <em>301</em> y <em>302</em>, cada uno para diferentes situaciones. Veamos como y cuando utilizar estos tipos para redireccionar de manera apropiada. </p>
<p><strong>Tipos de Redirección</strong></p>
<p>Existen dos tipos de redireccionamiento que podemos utilizar, los dos le cambian de dirección a los visitantes pero se comportan de manera diferente para los buscadores, esto nos puede ayudar a mejorar nuestro posicionamiento si sabes cual emplear.</p>
<ul>
<li><strong>Redirección 301</strong>: Indica una redirección <em>permanente</em>.<br />Esto le indica a los buscadores que ignoren la dirección original e indexen la nueva dirección. Este tipo de redirección se utiliza cuando estamos cambiando de dominio a una web, esto haría que los buscadores indexen la nueva dirección sin perder los enlaces entrantes que tenía el dominio y sin perder el pagerank.</li>
<li><strong>Redirección 302</strong>: Indica una redirección <em>temporal</em>.<br />Esto indica que la dirección original no ha cambiado y se seguirá utilizando pero temporalmente cambiaremos de dirección.</li>
</ul>
<p><strong>Redireccionamiento con PHP</strong></p>
<p>Para redireccionar en PHP se utiliza la función <em>header</em>, por defecto esto crea una redirección del tipo 302, indicando un cambio de dirección temporal, mientras que para hacer una redirección del tipo 301 es necesario agregar un header adicional.</p>
<p>Para hacer una redirección <strong>302</strong>.</p>
<div class="syntax_hilite">
<div id="php-18">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Location: /users/home.php"</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Para hacer una redirección <strong>301</strong>.</p>
<div class="syntax_hilite">
<div id="php-19">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"HTTP/1.1 301 Moved Permanently"</span><span style="color:#006600;">&#41;</span>; </div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Location: http://newdomain.com"</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Redireccionamiento con .htaccess</strong></p>
<p>Las redirecciones también se pueden hacer con el servidor web Apache utilizando el archivo <em>.htaccess</em> el cual esta ubicado en la carpeta principal del servidor. </p>
<p>Para hacer una redirección <strong>302</strong>.</p>
<div class="syntax_hilite">
<div id="code-20">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">redirect <span style="color:#800000;color:#800000;">302</span> /download/ /files/tubeplayer-<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">2</span>.<span style="">zip</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Para hacer una redirección <strong>301</strong>.</p>
<div class="syntax_hilite">
<div id="code-21">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">redirect <span style="color:#800000;color:#800000;">301</span> / http:<span style="color:#FF9933; font-style:italic;">//newdomain.com </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Cambiar de dominio</strong></p>
<p>Si hemos decidido cambiar nuestra web a un nuevo dominio, haremos una redirección 301 con .htaccess de forma que nuestros visitantes vean todas las páginas en el nuevo dominio y los buscadores lo indexen sin perder pagerank.</p>
<div class="syntax_hilite">
<div id="code-22">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">Redirect <span style="color:#800000;color:#800000;">301</span> <span style="color:#006600;">&#40;</span>.*<span style="color:#006600;">&#41;</span> http:<span style="color:#FF9933; font-style:italic;">//newdomain.com/$1 </span></div>
</li>
</ol>
</div>
</div>
</div>
<p> </p>
<p><strong>Redireccionar a WWW</strong></p>
<p>Si tenemos un dominio y deseamos que cuando se acceda a http://mydomain.com esta cambie a http://www.mydomain.com (Esto es llamado <em>canonicalización</em> y evita el contenido duplicado en los buscadores) podemos utilizar el siguiente código en .htaccess.</p>
<div class="syntax_hilite">
<div id="code-23">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">RewriteEngine On</div>
</li>
<li style="color:#26536A;">
<div style="">RewriteCond %<span style="color:#006600;">&#123;</span>HTTP_HOST<span style="color:#006600;">&#125;</span> ^mydomain\.<span style="">com</span>$</div>
</li>
<li style="color:#3A6A8B;">
<div style="">RewriteRule <span style="color:#006600;">&#40;</span>.*<span style="color:#006600;">&#41;</span> http:<span style="color:#FF9933; font-style:italic;">//www.mydomain.com/$1 [R=301,L] </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Redireccionar a no-WWW</strong></p>
<p>Ahora podemos elegir que nuestra dirección no contenga el término www. Para ello utilizamos la segunda forma de canonicalización al redirigir desde http://www.mydomain.com hasta http://mydomain.com.</p>
<div class="syntax_hilite">
<div id="code-24">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">RewriteEngine On</div>
</li>
<li style="color:#26536A;">
<div style="">RewriteCond %<span style="color:#006600;">&#123;</span>HTTP_HOST<span style="color:#006600;">&#125;</span> !^mydomain\.<span style="">com</span>$</div>
</li>
<li style="color:#3A6A8B;">
<div style="">RewriteRule <span style="color:#006600;">&#40;</span>.*<span style="color:#006600;">&#41;</span> http:<span style="color:#FF9933; font-style:italic;">//mydomain.com/$1 [R=301,L] </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Mas Información</strong></p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/URL_redirection">Wikipedia: URL redirection</a></li>
<li><a href="http://www.faqs.org/rfcs/rfc2616.html">Hypertext Transfer Protocol -- HTTP/1.1</a></li>
<li><a href="http://php.net/manual/en/function.header.php">PHP manual: header</a></li>
<li><a href="http://www.askapache.info//2.3/misc/rewriteguide.html">Apache: URL Rewriting Guide</a></li>
</ul>
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/como-hacer-redireccionamiento-301-y-302/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Trabajando con fechas en PHP</title>
		<link>http://blog.unijimpe.net/trabajando-con-fechas-en-php/</link>
		<comments>http://blog.unijimpe.net/trabajando-con-fechas-en-php/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 15:53:27 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[fecha]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[timestamp]]></category>
		<category><![CDATA[timezone]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1159</guid>
		<description><![CDATA[<p>Trabajar con fechas es una tarea muy común pero a veces complicada si no entendemos bien como hacerlo. Con unas pequeñas funciones PHP podemos manejar e imprimir fechas asi como guardarlas en base de datos.</p>
<p><strong>Funciones Básicas</strong><br />
Para el manejo de fechas hay tres funciones básicas en PHP que harán la mayoría del trabajo necesario en&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Trabajar con fechas es una tarea muy común pero a veces complicada si no entendemos bien como hacerlo. Con unas pequeñas funciones PHP podemos manejar e imprimir fechas asi como guardarlas en base de datos.</p>
<p><strong>Funciones Básicas</strong><br />
Para el manejo de fechas hay tres funciones básicas en PHP que harán la mayoría del trabajo necesario en la manipulación de fechas.</p>
<ul>
<li><strong>time()</strong>: devuelve la fecha y hora actual expresada en segundos (desde el 1 de enero de 1970 - llamada <em>timestamp</em>). Como devuelva la fecha en un entero se puede utilizar para sumar o restar fechas así como guardarla en base de datos.</li>
<li><strong>date()</strong>: devuelve la fecha de acuerdo al formato que definamos (Mas información de como formatear la fecha en <a href="http://www.php.net/manual/en/function.date.php">PHP: date - Manual</a>). Esta función sirve para imprimir las fechas en formatos legibles para los visitantes.</li>
<li><strong>strtotime()</strong>: convierte una texto en fecha expresada en timestamp.</li>
</ul>
<p>Entonces, resumiendo la <em>time()</em> devolverá la fecha para poder manipularla posteriormente y <em>date()</em> dará formato legible para los usuarios. </p>
<p>Veamos unos ejemplos de uso de la función time:</p>
<div class="syntax_hilite">
<div id="php-31">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// imprimir la hora actual</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 1270966374</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// imprimir dos horas antes de la hora actual</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#006600;">&#40;</span><a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>-<span style="color:#CC66CC;color:#800000;">2</span>*<span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">60</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 1270959174</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// imprimir la fecha de hace una semana</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#006600;">&#40;</span><a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>-<span style="color:#CC66CC;color:#800000;">7</span>*<span style="color:#CC66CC;color:#800000;">24</span>*<span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">60</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 1270361574 </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ahora veamos como utilizar la función date:</p>
<div class="syntax_hilite">
<div id="php-32">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// imprimir la fecha actual</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"d/m/Y"</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 10/04/2010</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// imprimir la hora actual</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"h:m:s a"</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 10:04:52 pm</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// imprimir dos horas antes de la hora actual</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"h:m:s a"</span>, <a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>-<span style="color:#CC66CC;color:#800000;">2</span>*<span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">60</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 08:04:52 pm </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Las fechas y el Timezone</strong><br />
El <em>timezone</em> o zona horaria es la hora de cada localidad de acuerdo a su ubicación en la tierra respecto a una hora universal. Pueden conocer el timezone de su localidad en <a href="http://www.worldtimezone.com/">World Time Zone</a>, por ejemplo si estamos en Lima - Perú, el timezone es <em>-5</em>. </p>
<p>Ahora, si imprimimos una fecha utilizando directamente la función <em>date()</em>, esta lo hará pero basado en la zona horaria de mi proveedor de hosting. Para corregir esto es necesario hacer un ajuste de acuerdo al timezone nuestro y de nuestro servidor de hosting.</p>
<p>Creamos una función llamada <em>dateZone</em> que recibe dos parámetros: primero el formado que deseamos imprimir basado en la documentación (<a href="http://www.php.net/manual/en/function.date.php">PHP: date - Manual</a>) y el segundo parámetro es el timezone de nuestra ciudad.</p>
<div class="syntax_hilite">
<div id="php-33">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">function</span> dateZone<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$fmt</span>, <span style="color:#0000FF;">$zone</span> = <span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$format</span>, <a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span> - <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Z"</span><span style="color:#006600;">&#41;</span> + <span style="color:#0000FF;">$zone</span>*<span style="color:#CC66CC;color:#800000;">3600</span><span style="color:#006600;">&#41;</span>;&nbsp; </div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Veamos un ejemplo de uso de esta función comparada con la función date y otra utilizando la zona horaria de Lima.</p>
<div class="syntax_hilite">
<div id="php-34">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"h:i:s&nbsp; a - d/m/Y"</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 11:40:22 pm - 10/04/2010</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> dateZone<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"h:i:s&nbsp; a - d/m/Y"</span>, -<span style="color:#CC66CC;color:#800000;">5</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// 01:40:22 am - 11/04/2010 </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Fechas para generación de RSS</strong><br />
Si deseamos generar un Feed con las noticias de nuestro web, es recomendable hacerlo en el formato RSS 2.0, para ello es necesario generar la fecha de cada item en un formato especial. Crearemos una función llamada <em>dateFeed</em>, que recibe como parámetro la fecha en formato <em>timestamp</em>.</p>
<div class="syntax_hilite">
<div id="php-35">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">function</span> dateFeed<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$date</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'D, d M Y h:i:00 <span style="color:#000099;">\G</span><span style="color:#000099;">\M</span><span style="color:#000099;">\T</span>'</span>, <span style="color:#0000FF;">$date</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Luego podríamos utilizar esta función de la siguiente forma:</p>
<div class="syntax_hilite">
<div id="php-36">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// Imprimir la fecha actual para Feed</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> dateFeed<span style="color:#006600;">&#40;</span><a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>, -<span style="color:#CC66CC;color:#800000;">5</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// Sun, 11 Apr 2010 12:28:00 GMT</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// Imprimir el 10 de abril del 2010 para Feed</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> dateFeed<span style="color:#006600;">&#40;</span><a href="http://www.php.net/strtotime"><span style="color:#000066;">strtotime</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"2010-04-10"</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>; <span style="color:#FF9933; font-style:italic;">// Sat, 10 Apr 2010 12:00:00 GMT</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// Imprimir el 11 de abril del 2010 basado en el timestamp para Feed</span></div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> dateFeed<span style="color:#006600;">&#40;</span><span style="color:#CC66CC;color:#800000;">1270966374</span><span style="color:#006600;">&#41;</span> <span style="color:#FF9933; font-style:italic;">// Sat, 10 Apr 2010 11:12:00 GMT </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Son funciones sencillas que les sacarán de muchos apuros. Si tienen alguna función que pueda ser útil no duden en compartirla con nosotros dejando un comentario.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/date.zip" title="PHP Date"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/trabajando-con-fechas-en-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Acortar URLs con PHP y API Bit.ly</title>
		<link>http://blog.unijimpe.net/acortar-urls-con-php-y-apibitly/</link>
		<comments>http://blog.unijimpe.net/acortar-urls-con-php-y-apibitly/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 06:17:32 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[acortar]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[bit.ly]]></category>
		<category><![CDATA[expandir]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1158</guid>
		<description><![CDATA[<p>Si deseas compartir tus enlaces en dispositivos móviles o en Twitter que tiene un límite de 140 caracteres es necesario acortar nuestros URLs. Para ello podemos utilizar <strong>Bit.ly</strong>, un popular servicio para acortar enlaces el cual acaba de sacar la nueva versión de su API, como lo detallan en <a href="http://blog.bit.ly/post/484942776/introducing-api-v3">Introducing bit.ly API Version 3</a>. En&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Si deseas compartir tus enlaces en dispositivos móviles o en Twitter que tiene un límite de 140 caracteres es necesario acortar nuestros URLs. Para ello podemos utilizar <strong>Bit.ly</strong>, un popular servicio para acortar enlaces el cual acaba de sacar la nueva versión de su API, como lo detallan en <a href="http://blog.bit.ly/post/484942776/introducing-api-v3">Introducing bit.ly API Version 3</a>. En una anterior oportunidad habíamos comentado como <a href="http://blog.unijimpe.net/acortar-urls-con-bit-ly-y-php/">Acortar URLs con bit.ly y PHP</a> pero ahora actualizaremos nuestro código utilizando el nuevo API.</p>
<p><strong>Nueva API Version 3</strong><br />
Examinando la documentación de la nueva API en <a href="http://code.google.com/p/bitly-api/wiki/ApiDocumentation">bit.ly API Documentation</a> podemos utilizar los URLs con el siguiente formato:</p>
<p>Para acortar un URL.<br />
<em>http://api.bit.ly/v3/shorten?login=<strong>user</strong>&#038;apiKey=<strong>key</strong>&#038;uri=<strong>url</strong>&#038;format=<strong>fmt</strong></em></p>
<p>Para expandir un URL<br />
<em>http://api.bit.ly/v3/expand?login=<strong>user</strong>&#038;apiKey=<strong>key</strong>&#038;shortUrl=<strong>url</strong>&#038;format=<strong>fmt</strong></em></p>
<p>Donde se tiene  los siguientes parámetros:</p>
<ul>
<li><strong>user:</strong> es tu nombre de usuario en bit.ly</li>
<li><strong>key</strong> es el API Key asociado a tu cuenta de usuario.</li>
<li><strong>url</strong> es el url que deseamos acortar o expandir.</li>
<li><strong>fmt</strong> es el formato de la respuesta (Usaremos txt que devuelve texto).</li>
</ul>
<p><strong>Creando un Clase para bit.ly</strong><br />
Basado en estos formatos podemos crear un clase básica que permite acortar o expandir URLs utilizando el nuevo API de bit.ly</p>
<div class="syntax_hilite">
<div id="php-41">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">class</span> Bitly <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$path</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$user</span>; </div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$key</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> Bitly <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_user</span>, <span style="color:#0000FF;">$_key</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">path</span> = <span style="color:#FF0000;">"http://api.bit.ly/v3/"</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">user</span> = <span style="color:#0000FF;">$_user</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">key</span> = <span style="color:#0000FF;">$_key</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> shorten<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$url</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$temp</span> = <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">path</span>.<span style="color:#FF0000;">"shorten?login="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">user</span>.<span style="color:#FF0000;">"&amp;apiKey="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">key</span>.<span style="color:#FF0000;">"&amp;uri="</span>.<span style="color:#0000FF;">$url</span>.<span style="color:#FF0000;">"&amp;format=txt"</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$temp</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$data</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> expand<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$url</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$temp</span> = <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">path</span>.<span style="color:#FF0000;">"expand?login="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">user</span>.<span style="color:#FF0000;">"&amp;apiKey="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">key</span>.<span style="color:#FF0000;">"&amp;shortUrl="</span>.<span style="color:#0000FF;">$url</span>.<span style="color:#FF0000;">"&amp;format=txt"</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/file_get_contents"><span style="color:#000066;">file_get_contents</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$temp</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$data</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span>&nbsp; &nbsp;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Como se observa esta clase tiene dos métodos: <em>shorten</em> y <em>expand</em>.</p>
<p><strong>Ejemplo de Uso</strong><br />
Para utilizar esta clase lo primero es incluir la clase al inicio de nuestro script PHP y luego crear una instancia de la clase Bitly que recibe dos parámetros (nombre de usuario y key de usuario).</p>
<div class="syntax_hilite">
<div id="php-42">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">require</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"bitly.php"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$bitly</span> = <span style="color:#000000;">new</span> Bitly<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"bitly-user"</span>, <span style="color:#FF0000;">"bitly-api-key"</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Luego si deseamos acortar un URL lo haríamos de la siguiente forma:</p>
<div class="syntax_hilite">
<div id="php-43">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">require</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"bitly.php"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$bitly</span> = <span style="color:#000000;">new</span> Bitly<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"bitly-user"</span>, <span style="color:#FF0000;">"bitly-api-key"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#0000FF;">$urlmin</span> = <span style="color:#0000FF;">$bitly</span>-&gt;<span style="color:#006600;">shorten</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://blog.unijimpe.net/utilizar-recaptcha-con-php/"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$urlmin</span>; <span style="color:#FF9933; font-style:italic;">// imprime: http://bit.ly/cMea1K </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Si tienes un URL acortada y deseas saber el URL original puedes hacerlo de la siguiente forma:</p>
<div class="syntax_hilite">
<div id="php-44">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">require</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"bitly.php"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$bitly</span> = <span style="color:#000000;">new</span> Bitly<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"bitly-user"</span>, <span style="color:#FF0000;">"bitly-api-key"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#0000FF;">$urlbig</span> = <span style="color:#0000FF;">$bitly</span>-&gt;<span style="color:#006600;">expand</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://bit.ly/cMea1K"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$urlbig</span>; <span style="color:#FF9933; font-style:italic;">// imprime: http://blog.unijimpe.net/utilizar-recaptcha-con-php/ </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Les dejo los archivos fuente para esta clase para que hagan sus pruebas. Si tienen sugerencias y observaciones dejen sus comentarios para poder mejorar este trabajo.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/bitly-class.zip" title="Bitly Class"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/acortar-urls-con-php-y-apibitly/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Hosting Gratuitos sin Publicidad</title>
		<link>http://blog.unijimpe.net/hosting-gratuitos-sin-publicidad/</link>
		<comments>http://blog.unijimpe.net/hosting-gratuitos-sin-publicidad/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 05:14:12 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[gtatuito]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1153</guid>
		<description><![CDATA[<p>El requisito indispensable para empezar con un web o blog es un hosting. Hay muchas opciones de pago, pero si estas aprendiendo o deseas experimentar un hosting gratuito será de mucha ayuda para empezar, ya cuando tengan cierta experiencia o cantidad de visitas darán el paso de mudarse a un hosting de pago.</p>
<p>Les presento una&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>El requisito indispensable para empezar con un web o blog es un hosting. Hay muchas opciones de pago, pero si estas aprendiendo o deseas experimentar un hosting gratuito será de mucha ayuda para empezar, ya cuando tengan cierta experiencia o cantidad de visitas darán el paso de mudarse a un hosting de pago.</p>
<p>Les presento una breve lista de hosting gratuitos libres de publicidad y con todas las características necesarias para empezar con su web.</p>
<p><strong>000WebHost</strong><br />
<a href="http://www.000webhost.com/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/04/000webhost.gif" alt="" title="000webhost" width="200" height="57" /></a></p>
<ul>
<li>1500 MB de espacio en disco.</li>
<li>100 GB de transferencia mensual.</li>
<li>PHP y MySQL (5 bases de datos).</li>
<li>Acceso mediante FTP.</li>
<li>Administración con cPanel.</li>
<li>Alojamiento de hasta 5 dominios.</li>
</ul>
<p><strong>110MB Hosting</strong><br />
<a href="http://www.110mb.com/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/04/110mb-hosting.gif" alt="" title="110mb-hosting" width="200" height="73" /></a></p>
<ul>
<li>110 MB de espacio en disco.</li>
<li>100 GB de transferencia mensual.</li>
<li>Soporte de PHP 4 y PHP 5.</li>
<li>Alojamineto hasta 1 dominio.</li>
</ul>
<p><strong>BlackAppleHost</strong><br />
<a href="http://www.blackapplehost.com/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/04/black-apple-host.png" alt="" title="black-apple-host" width="200" height="60" /></a></p>
<ul>
<li>5 GB de espacio.</li>
<li>20 GB de transferencia mensual.</li>
<li>Máximo 2 dominio.</li>
<li>Administración mediante LayeredPanel.</li>
<li>Soporte de PHP y base de datos MySQL.</li>
<li>1 Cuenta de FTP.</li>
</ul>
<p><strong>Byet Internet</strong><br />
<a href="http://byethost.com/free-hosting"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/04/byte-host.gif" alt="" title="byte-host" width="200" height="48" /></a></p>
<ul>
<li>5500 MB de espacio.</li>
<li>200 GB de transferencia mensual.</li>
<li>Soporte de PHP y Bases de datos MySQL.</li>
<li>Alojamiento hasta de 50 dominios.</li>
<li>Cuentas de FTP e Email.</li>
<li>Administración con VistaPanel</li>
</ul>
<p>Además estos mismos proveedores ofrecen servicios de hosting pagados con mejores características y mayor soporte a los cuales puedes migrarse fácilmente.</p>
<p>Si conocen algún otro sitio que ofrezca hosting gratuito de calidad pueden compartirlo con nuestros visitantes dejando un comentario con las características del servicio. También si tienen alguna queja sobre estos pueden comentarlo para que otras personas se eviten problemas.</p>
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/hosting-gratuitos-sin-publicidad/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Detectar el Browser con PHP</title>
		<link>http://blog.unijimpe.net/detectar-el-browser-con-php/</link>
		<comments>http://blog.unijimpe.net/detectar-el-browser-con-php/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 05:01:50 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1152</guid>
		<description><![CDATA[<p>Detectar el <em>navegador</em> o <em>browser</em> que esta utilizando el visitante a una web resulta ser útil para ofrecer contendido de acuerdo al dispositivo que usa el usuario. Si el usuario esta utilizando un Navegador antiguo se le puede sugerir actualizarlo, otro uso podría ser una hoja de estilos de acuerdo al navegador del visitante.</p>
<p><strong>Browser Detect</strong>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Detectar el <em>navegador</em> o <em>browser</em> que esta utilizando el visitante a una web resulta ser útil para ofrecer contendido de acuerdo al dispositivo que usa el usuario. Si el usuario esta utilizando un Navegador antiguo se le puede sugerir actualizarlo, otro uso podría ser una hoja de estilos de acuerdo al navegador del visitante.</p>
<p><strong>Browser Detect</strong></p>
<p><a href="http://www.phpclasses.org/browse/package/2827.html">Browser Detect</a> es una clase escrita en PHP que permite detectar rápidamente el navegador del usuario, para ello utiliza el <em>User-Agent</em> que es enviado mediante los headers.</p>
<p>Para utilizar esta clase, lo primero es incluir el archivo <em>browser_class_inc.php</em> y crear una instancia de la clase <em>browser</em>.</p>
<div class="syntax_hilite">
<div id="php-49">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">include</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'browser_class_inc.php'</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$br</span> = <span style="color:#000000;">new</span> browser<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Luego de ello podremos utilizar los siguientes métodos:</p>
<ul>
<li><strong>getBrowserOS</strong>: devuelve el sistema operativo (<em>Windows</em>, <em>Linux</em>, <em>Macintosh</em>, <em>OS/2</em>, <em>BeOS</em>).</li>
<li><strong>whatBrowser</strong>: devuelve un array con el tipo de browser, el sistema operativo y la versión.</li>
<li><strong>isOpera</strong>: devuelve verdadero si el browser del usuario es Opera.-</li>
<li><strong>isFirefox</strong>: devuelve verdadero si se accede con Firefox.</li>
<li><strong>isKonqueror</strong>: devuelve verdadero si se utiliza Konqueror.</li>
<li><strong>isMSIE</strong>: devuelve verdadero si usamos Internet Explorer.</li>
<li><strong>isGaleon</strong>: devuelve verdadero para quienes utilizan Galeon.</li>
<li><strong>isWebTV</strong>: verdadero para visitantes con WebTV.</li>
<li><strong>isMSPIE</strong>: verdadero si se accede desde Internet Explorer de Pocket PC.</li>
<li><strong>isOmniWeb</strong>: devuelve verdadero si se usa OmniWeb.</li>
<li><strong>isPhoenix</strong>: para verificar si se utiliza Phoenix.</li>
<li><strong>isFirebird</strong>: comprueba si se accede desde Firebird.</li>
<li><strong>isLynx</strong>: verdadero para usuarios con Lynx.</li>
<li><strong>isSafari</strong>: comprueba si se accede con Safari.</li>
<li><strong>isNetscape</strong>: verdadero para usuarios de Netscape.</li>
</ul>
<p>Entonces, podemos imprimir los datos del navegador del cliente con el siguiente código:</p>
<div class="syntax_hilite">
<div id="php-50">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">include</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'browser_class_inc.php'</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$br</span> = <span style="color:#000000;">new</span> browser<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/print_r"><span style="color:#000066;">print_r</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$br</span>-&gt;<span style="color:#006600;">whatBrowser</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>El cual podemos ver funcionado en <a href="http://samples.unijimpe.net/browser-class/demo.php">browser-class/demo.php</a>. Este devolverá un resultado de la siguiente forma:</p>
<div class="syntax_hilite">
<div id="php-51">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/array"><span style="color:#000066;">Array</span></a></div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#006600;">&#40;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#91;</span>browsertype<span style="color:#006600;">&#93;</span> =&gt; Firefox</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#91;</span>version<span style="color:#006600;">&#93;</span> =&gt; <span style="color:#CC66CC;color:#800000;">3</span>.<span style="color:#CC66CC;color:#800000;">5</span>.<span style="color:#CC66CC;color:#800000;">9</span> GTB6</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#91;</span>platform<span style="color:#006600;">&#93;</span> =&gt; Macintosh</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#91;</span>AOL<span style="color:#006600;">&#93;</span> =&gt; </div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#006600;">&#41;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Ejemplo Práctico</strong></p>
<p>Todos los navegadores interpretan las hojas de estilos de forma diferente por lo cual crear un CSS que se muestre igual en todos los navegadores es complicado, se puede utilizar <a href="http://blog.unijimpe.net/hack-css-para-ie6-ie7/">Hacks CSS</a> pero estos hacen que no las hojas de estilos sean invalidas. Entonces una solución es enviar un CSS diferente por cada Browser. En la práctica se puede hacer dos archivos uno para <em>Internet Explorer</em> (el mas problemático) y otro para los demás navegadores.</p>
<div class="syntax_hilite">
<div id="html-52">
<div class="html">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php</div>
</li>
<li style="color:#26536A;">
<div style="">include<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'browser_class_inc.php'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">$br = new browser<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">?<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/html.html"><span style="color: #000000;">&lt;html&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/head.html"><span style="color: #000000;">&lt;head&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/title.html"><span style="color: #000000;">&lt;title&gt;</span></a></span>CSS Demo<span style="color: #009900;"><span style="color: #000000;">&lt;/title&gt;</span></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php if <span style="color: #66cc66;">&#40;</span>$br-<span style="color: #000000;">&gt;</span></a></span>isMSIE()) { ?&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"css/styles-ie.css"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span><span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php <span style="color: #66cc66;">&#125;</span> else <span style="color: #66cc66;">&#123;</span> ?<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"css/styles.css"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span><span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php <span style="color: #66cc66;">&#125;</span> ?<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/head&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Sencillo de implementar y nos ahorrará tiempo en la detección del browser del cliente. Finalmente les dejo el archivo con el código fuente del ejemplo de este post.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/browser-class.zip" title="Browser Class"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/detectar-el-browser-con-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Crear enlaces para compartir en Redes Sociales</title>
		<link>http://blog.unijimpe.net/crear-enlaces-para-compartir-en-redes-sociales/</link>
		<comments>http://blog.unijimpe.net/crear-enlaces-para-compartir-en-redes-sociales/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 07:15:23 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[socialclass]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1151</guid>
		<description><![CDATA[<p>La forma más rápida de promover nuestro web site es a través de las redes sociales como <em>Facebook</em>, <em>Twitter</em>, <em>Buzz</em> entre otros. Entonces es recomendable crear los enlaces para que nuestros visitantes puedan agregarlo directamente a su red o marcador social favorito.</p>
<p><strong>URLs para Redes Sociales</strong><br />
Lo primero es conocer el formato de las URLs de&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>La forma más rápida de promover nuestro web site es a través de las redes sociales como <em>Facebook</em>, <em>Twitter</em>, <em>Buzz</em> entre otros. Entonces es recomendable crear los enlaces para que nuestros visitantes puedan agregarlo directamente a su red o marcador social favorito.</p>
<p><strong>URLs para Redes Sociales</strong><br />
Lo primero es conocer el formato de las URLs de las diferentes redes sociales, hay gran cantidad de estos servicios pero solo utilizaremos las mas utilizadas. El siguiente listado presenta los formatos de enlaces en donde <em>URL</em> es el enlace de la página que deseamos compartir y <em>TITLE</em> es el titulo que deseamos asignar al enlace que vamos a compartir.</p>
<ul>
<li><strong>Delicious:</strong> http://delicious.com/save?v=5&#038;url=URL&#038;title=TITLE</li>
<li><strong>Digg:</strong> http://digg.com/submit?url=URL&amp;title=TITLE</li>
<li><strong>Facebook:</strong> http://www.facebook.com/sharer.php?u=URL&#038;t=TITLE</li>
<li><strong>Technorati:</strong> http://technorati.com/faves?add=URL&#038;title=TITLE</li>
<li><strong>Twitter:</strong> http://twitter.com/home?status=TITLE - URL</li>
<li><strong>Meneame:</strong> http://meneame.net/submit.php?urlURL</li>
<li><strong>Reddit:</strong> http://reddit.com/submit?url=URL&#038;title=TITLE</li>
<li><strong>StumbleUpon:</strong> http://www.stumbleupon.com/submit?url=URL&#038;title=TITLE</li>
<li><strong>Google Buzz:</strong> http://www.google.com/reader/link?url=URL&#038;title=TITLE</li>
</ul>
<p>Estos urls los podemos crear manualmente o con nuestro lenguaje de programación favorito para darle a nuestro web mayor interactividad.</p>
<p><strong>Clase para Crear links a Redes Sociales</strong><br />
Con la información de los formatos de URLs decidimos crear una clase para facilitar la creación de estos enlaces. Esta clase la hemos llamado SocialClass que recibe cuatro parámetros: el url, titulo, target y tipo de resultado.</p>
<div class="syntax_hilite">
<div id="php-58">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// File:&nbsp; &nbsp; socialclass.php</span></div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#FF9933; font-style:italic;">// Web:&nbsp;&nbsp;http://blog.unijimpe.net</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#FF9933; font-style:italic;">// Date:&nbsp; &nbsp; 13/03/2010</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">class</span> SocialClass <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$url</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$title</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$target</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">var</span> <span style="color:#0000FF;">$type</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; </div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> SocialClass<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_url</span>, <span style="color:#0000FF;">$_title</span>, <span style="color:#0000FF;">$_target</span> = <span style="color:#FF0000;">""</span>, <span style="color:#0000FF;">$_type</span> = <span style="color:#FF0000;">"link"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span> = <a href="http://www.php.net/urlencode"><span style="color:#000066;">urlencode</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_url</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span> = <a href="http://www.php.net/urlencode"><span style="color:#000066;">urlencode</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_title</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">setTarget</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_target</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">setType</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_type</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> setTarget<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_target</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span> <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_target</span> != <span style="color:#FF0000;">""</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span> </div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">target</span> = <span style="color:#FF0000;">" target=<span style="color:#000099;">\"</span>"</span>.<span style="color:#0000FF;">$_target</span>.<span style="color:#FF0000;">"<span style="color:#000099;">\"</span>"</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> <a href="http://www.php.net/settype"><span style="color:#000066;">setType</span></a><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_type</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">type</span> = <span style="color:#0000FF;">$_type</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> write<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">""</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">if</span> <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">type</span> == <span style="color:#FF0000;">"link"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#FF0000;">"&lt;a href=<span style="color:#000099;">\"</span>"</span>.<span style="color:#0000FF;">$path</span>.<span style="color:#FF0000;">"<span style="color:#000099;">\"</span>"</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">target</span>.<span style="color:#FF0000;">"&gt;"</span>.<span style="color:#0000FF;">$label</span>.<span style="color:#FF0000;">"&lt;/a&gt;"</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#125;</span> <span style="color:#616100;">else</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$path</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; </div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> delicious<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Delicious"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://delicious.com/save?v=5&amp;url="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;title="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> digg<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Digg"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://digg.com/submit?url="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;amp;title="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> facebook<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Facebook"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.facebook.com/sharer.php?u="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;t="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> technorati<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Technorati"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://technorati.com/faves?add="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;title="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> twitter<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Twitter"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://twitter.com/home?status="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>.<span style="color:#FF0000;">" - "</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> meneame<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Meneame"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://meneame.net/submit.php?url="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> reddit<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Reddit"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://reddit.com/submit?url="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;title="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> stumbleupon<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"StumbleUpon"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.stumbleupon.com/submit?url="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;title="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;&nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> buzz<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$label</span> = <span style="color:#FF0000;">"Google Buzz"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$path</span> = <span style="color:#FF0000;">"http://www.google.com/reader/link?url="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">url</span>.<span style="color:#FF0000;">"&amp;title="</span>.<span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">title</span>;&nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">write</span><span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$path</span>, <span style="color:#0000FF;">$label</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; <span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Para utilizar la clase primero incluimos el archivo y luego inicializamos el elemento con cuatro parámetros, en donde los dos primeros son necesarios y los dos últimos son opcionales:</p>
<div class="syntax_hilite">
<div id="php-59">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#0000FF;">$social</span> = <span style="color:#000000;">new</span> SocialClass<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$url</span>, <span style="color:#0000FF;">$title</span>, <span style="color:#0000FF;">$target</span>, <span style="color:#0000FF;">$type</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<ul>
<li><strong>$url</strong>: es el enlace de la página que deseamos compartir.</li>
<li><strong>$title</strong>: es el título a mostrarse con el enlace a compartir.</li>
<li><strong>$target</strong>: el target del enlace, por defecto se abre en la misma ventana.</li>
<li><strong>$type</strong>: es el tipo de resultado (<em>link</em> o <em>url</em>) por defecto el tipo es link.</li>
</ul>
<p>Luego de ello podemos utilizar los siguientes métodos: <em>delicious</em>, <em>digg</em>, <em>facebook</em>, <em>technorati</em>, <em>twitter</em>, <em>meneame</em>, <em>reddit</em>, <em>stumbleupon</em>, <em>buzz</em> los cuales aceptar como parámetro un texto opciones para imprimir como texto del enlace a crear.</p>
<p>Veamos un ejemplo de uso de esta clase, en donde crearemos los enlaces recomendar para este blog.</p>
<div class="syntax_hilite">
<div id="php-60">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">&lt;?php</span> <span style="color:#0000FF;">$social</span> = <span style="color:#000000;">new</span> SocialClass<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://blog.unijimpe.net"</span>, <span style="color:#FF0000;">"unijimpe"</span><span style="color:#006600;">&#41;</span>; <span style="color:#000000;">?&gt;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&lt;ul&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">delicious</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">digg</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">facebook</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">technorati</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">twitter</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">meneame</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">reddit</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">stumbleupon</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">buzz</span><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&lt;/ul&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ahora podríamos modificar el uso de esta clase y crear los enlaces que se abran en ventana nueva y cambiarlo en nombre a los enlaces:</p>
<div class="syntax_hilite">
<div id="php-61">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">&lt;?php</span> <span style="color:#0000FF;">$social</span> = <span style="color:#000000;">new</span> SocialClass<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://blog.unijimpe.net"</span>, <span style="color:#FF0000;">"unijimpe"</span>, <span style="color:#FF0000;">"_blank"</span><span style="color:#006600;">&#41;</span>; <span style="color:#000000;">?&gt;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&lt;ul&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">delicious</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Guardar en Delicious"</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">digg</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Enviar a Digg"</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">facebook</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Compartir en Facebook"</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;li&gt;&lt;?php <a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$social</span>-&gt;<span style="color:#006600;">twitter</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Publicar en Twitter"</span><span style="color:#006600;">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;/ul&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Finalmente si deseamos utilizar imagenes para los enlaces podríamos utilizar el tipo <em>url</em> para crear los enlaces de la forma:</p>
<div class="syntax_hilite">
<div id="php-62">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#000000;">&lt;?php</span> <span style="color:#0000FF;">$social</span> = <span style="color:#000000;">new</span> SocialClass<span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://blog.unijimpe.net"</span>, <span style="color:#FF0000;">"unijimpe"</span>, <span style="color:#FF0000;">""</span>, <span style="color:#FF0000;">"url"</span><span style="color:#006600;">&#41;</span>; <span style="color:#000000;">?&gt;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&lt;a href=<span style="color:#FF0000;">"&lt;?php echo $social-&gt;delicious(); ?&gt;"</span>&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;img src=<span style="color:#FF0000;">"http://static.delicious.com/img/delicious.gif"</span> /&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&lt;/a&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;a href=<span style="color:#FF0000;">"&lt;?php echo $social-&gt;facebook(); ?&gt;"</span>&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &lt;img src=<span style="color:#FF0000;">"http://static.ak.fbcdn.net/images/connect_favicon.png"</span> /&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;/a&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&lt;a href=<span style="color:#FF0000;">"&lt;?php echo $social-&gt;twitter(); ?&gt;"</span>&gt;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; &lt;img src=<span style="color:#FF0000;">"http://twitter-badges.s3.amazonaws.com/t_mini-a.png"</span> /&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">&lt;/a&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pueden ver el ejemplo funcionando en <a href="http://samples.unijimpe.net/socialclass/">http://samples.unijimpe.net/socialclass/</a> y como pueden ver esta clase es sencilla de utilizar, tambíen pueden extender esta clase e incluir el servicio de su preferencia y si tienen sugerencias para mejorar esta clase pueden dejar su comentario.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/SocialClass.zip" title="SocialClass"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
<p><strong>Mas Información</strong></p>
<ul>
<li><a href="http://delicious.com/help/savebuttons">Delicious: Save Buttons</a></li>
<li><a href="http://about.digg.com/button">Integrate: The Digg Button</a></li>
<li><a href="http://www.facebook.com/facebook-widgets/share.php">Facebook: Share Button</a></li>
<li><a href="http://www.reddit.com/buttons/">Put reddit.com buttons on your site</a></li>
</ul>
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/crear-enlaces-para-compartir-en-redes-sociales/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Utilizar reCAPTCHA con PHP</title>
		<link>http://blog.unijimpe.net/utilizar-recaptcha-con-php/</link>
		<comments>http://blog.unijimpe.net/utilizar-recaptcha-con-php/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 03:38:13 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1137</guid>
		<description><![CDATA[<p><a href="http://recaptcha.net/">reCAPTCHA</a> es un servicio gratuito que permite incluir validación mediante el uso de captcha a los formularios para prevenir el SPAM. Ademas sirve para digitalizar libros pues reCAPTCHA muestras dos palabras una para verificar el captcha y la otra es una imagen que no ha sido reconocida por los OCR y que nosotros la reconoceremos.</p>
<p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://recaptcha.net/">reCAPTCHA</a> es un servicio gratuito que permite incluir validación mediante el uso de captcha a los formularios para prevenir el SPAM. Ademas sirve para digitalizar libros pues reCAPTCHA muestras dos palabras una para verificar el captcha y la otra es una imagen que no ha sido reconocida por los OCR y que nosotros la reconoceremos.</p>
<p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/01/recaptcha-example-300x119.gif" alt="" title="recaptcha-example" width="300" height="119" /> </p>
<h3>Utilizar reCAPTCHA</h3>
<p>reCAPTCHA es gratuito y posee  todo un API para integrarlo con cualquier proyecto. Para utilizarlo necesitas registrarte para obtener los codigos de valdación para utilizar el API. Una vez registrado tendrás dos códigos: <em>Public Key</em> y <em>Private Key</em>. Pueden utilizar directamente el API o pueden utilizar alguna de las librerías que ofrecen por ejemplo para PHP, ASP.NET, Python, Perl, etc.</p>
<p>En nuestro caso escogemos PHP y descargamos el archivo <a href="http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest">recaptcha-php-1.10.zip</a> el cual contiene el archivo <em>recaptchalib.php</em> con los métodos necesarios para el uso de reCAPTCHA.</p>
<h3>Incluir reCAPTCHA en el Formulario</h3>
<p>Para utilizar la protección mediante captcha, es necesario incluir reCAPTCHA en nuestro formulario, para ello primero incluir el archivo recaptchalib.php, agregamos variables con los valores de nuestros key recién obtenidos.</p>
<div class="syntax_hilite">
<div id="php-66">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">require_once</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'recaptchalib.php'</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$publickey</span> = <span style="color:#FF0000;">"6LdA4goAAAAAAOoJNAhYRlvfyrE-_zv6XrrUJjhkj"</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#0000FF;">$privatekey</span> = <span style="color:#FF0000;">"6LdA4goAAAAAAF1tiVwumBvttvdhSx5qC6xUJjhkj"</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#0000FF;">$error</span> = <span style="color:#000000;">null</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ahora podremos utilizar la función <em>recaptcha_get_html</em> para mostrar el captcha.</p>
<div class="syntax_hilite">
<div id="html-67">
<div class="html">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/form.html"><span style="color: #000000;">&lt;form</span></a> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">"post"</span><span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/label.html"><span style="color: #000000;">&lt;label</span></a> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">"username"</span><span style="color: #000000;">&gt;</span></a></span>Usuario<span style="color: #009900;"><span style="color: #000000;">&lt;/label&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"username"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"casilla"</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"username"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/label.html"><span style="color: #000000;">&lt;label</span></a> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">"usermail"</span><span style="color: #000000;">&gt;</span></a></span>Email<span style="color: #009900;"><span style="color: #000000;">&lt;/label&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000;">&lt;input</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"usermail"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"casilla"</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"usermail"</span> /<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/label.html"><span style="color: #000000;">&lt;label</span></a> <span style="color: #000066;">for</span>=<span style="color: #ff0000;">"usercheck"</span><span style="color: #000000;">&gt;</span></a></span>Verificaci<span style="color: #ddbb00;">&amp;oacute;</span>n<span style="color: #009900;"><span style="color: #000000;">&lt;/label&gt;</span></span><span style="color: #009900;"><a href="http://december.com/html/4/element/br.html"><span style="color: #000000;">&lt;br</span></a> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php echo recaptcha_get_html<span style="color: #66cc66;">&#40;</span>$publickey, $error<span style="color: #66cc66;">&#41;</span>; ?<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp;<span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"hidden"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"action"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"register"</span> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000;">&lt;input</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"submit"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"btsend"</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">"Enviar"</span> /<span style="color: #000000;">&gt;</span></a></span></div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/form&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>Validar el Captcha</h3>
<p>Una ves que el formulario se ha enviado procedemos a verificar que el texto de captcha se ha ingresado correctamente en cuyo caso procesamos los datos del formulario de lo contrario mostramos un mensaje de error.</p>
<div class="syntax_hilite">
<div id="php-68">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><span style="color:#616100;">if</span> <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'action'</span><span style="color:#006600;">&#93;</span> == <span style="color:#FF0000;">"register"</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp;<span style="color:#0000FF;">$re_ip</span> = <span style="color:#0000FF;">$_SERVER</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">"REMOTE_ADDR"</span><span style="color:#006600;">&#93;</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color:#0000FF;">$re_challenge</span> = <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">"recaptcha_challenge_field"</span><span style="color:#006600;">&#93;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp;<span style="color:#0000FF;">$re_response</span> = <span style="color:#0000FF;">$_POST</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">"recaptcha_response_field"</span><span style="color:#006600;">&#93;</span>;&nbsp; &nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color:#0000FF;">$re_valid</span> = recaptcha_check_answer<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$privatekey</span>, <span style="color:#0000FF;">$re_ip</span>, <span style="color:#0000FF;">$re_challenge</span>, <span style="color:#0000FF;">$re_response</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; </div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color:#616100;">if</span> <span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$re_valid</span>-&gt;<span style="color:#006600;">is_valid</span><span style="color:#006600;">&#41;</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// procesar registro</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color:#006600;">&#125;</span> <span style="color:#616100;">else</span> <span style="color:#006600;">&#123;</span></div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$error</span> = <span style="color:#0000FF;">$resp</span>-&gt;<span style="color:#006600;">error</span>;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp; &nbsp;<span style="color:#006600;">&#125;</span></div>
</li>
<li style="color:#26536A;">
<div style=""><span style="color:#006600;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Uniendo estos pasos en un archivo, obtendremos la protección anti-spam que estabamos buscando. Pueden ver el ejemplo funcionando en <a href="http://samples.unijimpe.net/recaptcha/">http://samples.unijimpe.net/recaptcha/</a>. También les dejo los archivos fuente para que puedan hacer sus pruebas, noten que deben colocar sus propios keys de validación.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/recaptcha.zip" title="reCAPTCHA demo"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
<p><strong>Mas Información</strong><br />
Pueden personalizar reCAPTCHA o utilizarlo con cualquier otro lenguaje de programación, para ello pueden encontrar mas información en:</p>
<ul>
<li><a href="http://recaptcha.net/apidocs/captcha/">reCAPTCHA API Documentation</a></li>
<li><a href="http://recaptcha.net/apidocs/captcha/">reCAPTCHA Resources Index</a></li>
<li><a href="http://www.web-development-blog.com/archives/create-custom-recaptcha-images-using-their-api/">Create custom reCAPTCHA images using their API</a></li>
</ul>
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/utilizar-recaptcha-con-php/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Optimización: Utilizar compresión Gzip</title>
		<link>http://blog.unijimpe.net/optimizacion-utilizar-compresion-gzip/</link>
		<comments>http://blog.unijimpe.net/optimizacion-utilizar-compresion-gzip/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 04:51:05 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Optimización Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[compresion]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[velocidad]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1136</guid>
		<description><![CDATA[<p>Para optimizar la carga de una página web es necesario disminuir al máximo el número de peticiones o el tamaño de los archivos transmitidos. Para ayudar al ahorro de transferencia los servidores web han implementado formas de compresión, mediante la cual el contenido es comprimido antes de enviarlo al browser.</p>
<p></p>
<p>En la actualidad la mayoría&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Para optimizar la carga de una página web es necesario disminuir al máximo el número de peticiones o el tamaño de los archivos transmitidos. Para ayudar al ahorro de transferencia los servidores web han implementado formas de compresión, mediante la cual el contenido es comprimido antes de enviarlo al browser.</p>
<p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/02/header-gzip.gif" alt="" title="header-gzip" width="437" height="204" /></p>
<p>En la actualidad la mayoría de los browsers soportan dos formatos de compresión, ello lo podemos observar en los headers que envía el browser al hacer una petición. En la propiedad <em>Accept-Encoding</em> con dos valores:</p>
<ul>
<li><strong>gzip</strong> es un formato de compresión libre, desarrollado por el proyecto GNU, es el mas popular pues la mayoría de los browsers lo soportan, además ofrece un ahorro del 66% en promedio.</li>
<li><strong>deflate</strong> menos efectivo que gzip pues ofrece un ahorro de 60%, uno de los pocos sitios que lo utiliza es msn.com.</li>
</ul>
<h3>Que archivos comprimir con GZIP</h3>
<p>Es recomendable comprimir solo los archivos <strong>html</strong>, <strong>php</strong>, <strong>css</strong>, <strong>js</strong> y algunos otros archivos en formato texto. En el caso de archivos <em>jpg</em>, <em>png</em>, <em>gif</em>, <em>pdf</em> estos ya están comprimidos y aplicarle gzip puede incrementar el tamaño de los archivos e incluso el consume de CPU del servidor. Otra regla que hay que tener en cuenta es que se recomienda comprimir archivos de mas de 1Kb.</p>
<h3>Utilizar GZIP con Apache 1.3</h3>
<p>En el caso de Apache 1.3 la compresión gzip es manejada por el módulo <em>mod_gzip</em>. Para ello se pueden utilizar las sentencias <em>mod_gzip_item_include</em> para incluir archivos a comprimir y <em>mod_gzip_item_exclude</em> para excluir archivos. Luego editamos el archivo .htaccess e incluimos el siguiente código.</p>
<div class="syntax_hilite">
<div id="code-71">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">&lt;IfModule mod_gzip.<span style="">c</span>&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">mod_gzip_on Yes</div>
</li>
<li style="color:#3A6A8B;">
<div style="">mod_gzip_item_include file \.<span style="">html</span>$</div>
</li>
<li style="color:#26536A;">
<div style="">mod_gzip_item_include file \.<span style="">php</span>$</div>
</li>
<li style="color:#3A6A8B;">
<div style="">mod_gzip_item_include file \.<span style="">css</span>$</div>
</li>
<li style="color:#26536A;">
<div style="">mod_gzip_item_include file \.<span style="">js</span>$</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp;</div>
</li>
<li style="color:#26536A;">
<div style="">mod_gzip_item_include mime ^application/javascript$</div>
</li>
<li style="color:#3A6A8B;">
<div style="">mod_gzip_item_include mime ^application/x-javascript$</div>
</li>
<li style="color:#26536A;">
<div style="">mod_gzip_item_include mime ^text/.*</div>
</li>
<li style="color:#3A6A8B;">
<div style="">mod_gzip_item_include handler ^application/x-httpd-php</div>
</li>
<li style="color:#26536A;">
<div style="">&nbsp;</div>
</li>
<li style="color:#3A6A8B;">
<div style="">mod_gzip_item_exclude mime ^image/.*</div>
</li>
<li style="color:#26536A;">
<div style="">&lt;/IfModule&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>Utilizar GZIP con Apache 2.x</h3>
<p>Para versiones de Apache 2.x la compresión es gestionada por el módulo <em>mod_deflate</em> (No confundir el nombre del módulo con la compresión, pues esta genera compresión gzip). Para comprimir los archivos podemos utilizar la sentencia <em>AddOutputFilterByType</em> de la siguiente forma:</p>
<div class="syntax_hilite">
<div id="code-72">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">AddOutputFilterByType DEFLATE text/html text/css application/x-javascript </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>En nuestro caso tenemos <em>Apache 2.0.54</em> por lo cual aplicamos el segundo método. Hemos creados dos ejemplos uno sin compresión (<a href="http://samples.unijimpe.net/optimization/no-gzip/">http://samples.unijimpe.net/optimization/no-gzip/</a>), en el cual podemos observar que toda la pagina tiene un tamaño de <em>135.4 Kb</em> y demora en cargar <em>3.46 segundos</em>.</p>
<p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/02/no-gzipped.gif" alt="" title="no-gzipped" width="474" height="129" /></p>
<p>Ahora si agregamos la compresión gzip (<a href="http://samples.unijimpe.net/optimization/gzip/">http://samples.unijimpe.net/optimization/gzip/</a>) podemos observar una reducción significante en el tamaño de los archivos. Ahora toda la página tiene un tamaño de 38.8KB con lo cual hemos ahorrado un 71.3%.</p>
<p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/02/gzipped.png" alt="" title="gzipped" width="469" height="129"  /></p>
<p><strong>Mas Información</strong><br />
Se puede habilitar la compresión con PHP e incluso controlar mas al detalle la compresión de los archivos, para ello les dejo algunos enlaces para encontrar mas información.</p>
<ul>
<li><a href="http://code.google.com/speed/articles/gzip.html">How gzip compression works</a></li>
<li><a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html">Apache Module mod_deflate</a></li>
<li><a href="http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/">How To Optimize Your Site With GZIP Compression</a></li>
<li><a href="http://www.webcodingtech.com/php/gzip-compression.php">How to enable gzip compression with PHP</a></li>
<li><a href="http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php">3 ways to compress CSS files using PHP</a></li>
</ul>
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/optimizacion-utilizar-compresion-gzip/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Optimización: Agregar Headers de Expiración</title>
		<link>http://blog.unijimpe.net/optimizacion-agregar-headers-de-expiracion/</link>
		<comments>http://blog.unijimpe.net/optimizacion-agregar-headers-de-expiracion/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 04:02:45 +0000</pubDate>
		<dc:creator>unijimpe</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Optimización Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[optimizacion]]></category>
		<category><![CDATA[rendimiento]]></category>
		<category><![CDATA[velocidad]]></category>

		<guid isPermaLink="false">http://blog.unijimpe.net/?p=1134</guid>
		<description><![CDATA[<p>Los Header de expiración son utilizados para indicar cuando expira un determinado archivo, en cuyo caso el mismo no es cargado nuevamente si es que aun no ha expirado. Entonces para archivos que no cambian comúnmente como las imágenes, vídeos, javascript, hojas de estilo podríamos agregarle headers de expiración con lo cual solo se cargarán la&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>Los Header de expiración son utilizados para indicar cuando expira un determinado archivo, en cuyo caso el mismo no es cargado nuevamente si es que aun no ha expirado. Entonces para archivos que no cambian comúnmente como las imágenes, vídeos, javascript, hojas de estilo podríamos agregarle headers de expiración con lo cual solo se cargarán la primera vez que accedemos a la pagina.</p>
<p><img src="http://blog.unijimpe.net/wp-content/uploads/2010/01/headers.gif" alt="" title="headers" width="320" height="192" class="alignnone size-full wp-image-1135" /></p>
<p>Para ello se pueden utilizar los headers: <em>Expires</em> que contiene la fecha en la cual expira el archivo y <em>Cache-Control</em>, se pueden agregar estos dos headers por separado pero si agregamos el <em>Expires</em> este agregará también el header <em>Cache-Control</em>.</p>
<h3>Expiración Utilizando htaccess</h3>
<p>Los servidores web <em>Apache</em> son muy versátiles y permiten configurar de forma sencilla los headers de expiración, para ello debes incluir las directivas en el archivo <strong>.htaccess</strong>. Para el caso de la expiración se puede utilizar <em>ExpiresDefault</em>, para ello tenemos las siguientes directivas de tiempo: <em>years</em>, <em>months</em>, <em>weeks</em>, <em>days</em>, <em>hours</em>, <em>minutes</em>, <em>seconds</em>.</p>
<p>Lo recomendables es colocar una expiración de 30 días para los archivos estaticos (jpg, png, gif, swf, js, css), entonces podríamos agregar el siguiente código:</p>
<div class="syntax_hilite">
<div id="code-78">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">ExpiresActive On</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresDefault A0</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp;</div>
</li>
<li style="color:#26536A;">
<div style=""># expiracion de <span style="color:#800000;color:#800000;">1</span> mes para archivos estaticos</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;FilesMatch <span style="color:#CC0000;">"<span style="color:#000099;">\.</span>(gif|jpg|jpeg|png|swf|js|css)$"</span>&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresDefault <span style="color:#CC0000;">"access plus 1 months"</span></div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;/FilesMatch&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Además de ello la expiración también se puede expresar en segundos, entonces modificando el ejemplo anterior tendríamos (30 dias = 60*60*24*30 = 2592000):</p>
<div class="syntax_hilite">
<div id="code-79">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">ExpiresActive On</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresDefault A0</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp;</div>
</li>
<li style="color:#26536A;">
<div style=""># expiracion de <span style="color:#800000;color:#800000;">1</span> mes para archivos estaticos</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;FilesMatch <span style="color:#CC0000;">"<span style="color:#000099;">\.</span>(gif|jpg|jpeg|png|swf|js|css)$"</span>&gt;</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresDefault A2592000</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&lt;/FilesMatch&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Otra forma para agregar la expiración es el uso de la directiva <em>ExpiresByType</em> mediante la cual se le puede asignar tiempos diferentes dependiendo del tipo de archivo. Con esta directiva tendríamos el ejemplo anterior transformado en:</p>
<div class="syntax_hilite">
<div id="code-80">
<div class="code">
<ol>
<li style="color:#3A6A8B;">
<div style="">ExpiresActive On</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresDefault A0</div>
</li>
<li style="color:#3A6A8B;">
<div style="">&nbsp;</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresByType image/gif A2592000</div>
</li>
<li style="color:#3A6A8B;">
<div style="">ExpiresByType image/png A2592000</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresByType image/jpg A2592000</div>
</li>
<li style="color:#3A6A8B;">
<div style="">ExpiresByType image/jpeg A2592000</div>
</li>
<li style="color:#26536A;">
<div style="">ExpiresByType text/css A2592000</div>
</li>
<li style="color:#3A6A8B;">
<div style="">ExpiresByType text/javascript A2592000 </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pueden ver el ejemplo funcionando en <a href="http://samples.unijimpe.net/optimization/expiration/">http://samples.unijimpe.net/optimization/expiration/</a>, si utilizan<em>Firebug</em> para ver el trafico de red observarán como se cargan las imágenes la primera vez, las siguientes estas se leen del cache del browser.  Les dejo los archivos de ejemplo con el .htaccess para cada ejemplo con el cual pueden hacer sus pruebas.</p>
<p style="text-align:center;"><a href="http://blog.unijimpe.net/download/expiration.zip" title="Headers de Expiración"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p> 
<h3>Expiración Utilizando PHP</h3>
<p>PHP también es otra solución para agregar los headers de expiración. Para ello haremos uso de la función <em>header</em>.  El formato del header de expiración en:</p>
<div class="syntax_hilite">
<div id="php-81">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Expires: Mon, 26 Jul 2010 05:00:00 GMT"</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Creando dinámicamente la expiración, utilizando las funciones de fecha tendríamos un ejemplo con la expiración de 30 dias (60*60*24*30 = 30 dias expresados en segundos)</p>
<div class="syntax_hilite">
<div id="php-82">
<div class="php">
<ol>
<li style="color:#3A6A8B;">
<div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Cache-Control: must-revalidate"</span><span style="color:#006600;">&#41;</span>;</div>
</li>
<li style="color:#26536A;">
<div style=""><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"Expires: "</span>.<a href="http://www.php.net/gmdate"><span style="color:#000066;">gmdate</span></a> <span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"D, d M Y H:i:s"</span>, <a href="http://www.php.net/time"><span style="color:#000066;">time</span></a><span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span> + <span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">60</span>*<span style="color:#CC66CC;color:#800000;">24</span>*<span style="color:#CC66CC;color:#800000;">30</span><span style="color:#006600;">&#41;</span>.<span style="color:#FF0000;">" GMT"</span><span style="color:#006600;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><strong>Mas Información</strong><br />
Hemos presentado una breve explicación utilizando .htaccess y PHP, pueden tener mas información y conceptos mas desarrollados en:</p>
<ul>
<li><a href="http://developer.yahoo.com/performance/rules.html#expires">Add an Expires or a Cache-Control Header</a></li>
<li><a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html">Apache Module mod_expires</a></li>
<li><a href="http://www.websiteoptimization.com/speed/tweak/cache/">Use Server Cache Control to Improve Performance</a></li>
<li><a href="http://www.badpenguin.org/php-howto-control-page-caching">PHP: Howto control page caching</a></li>
</ul>
                                                        <p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2010 <a href="http://blog.unijimpe.net">unijimpe</a> - Utiliza este feed solo para uso personal, partes de este feed pueden ser utilizados mencionando al autor, no esta permitido publicar enteramente este feed para uso comercial sin permiso del autor.</p><br />
                                                                                                        ]]></content:encoded>
			<wfw:commentRss>http://blog.unijimpe.net/optimizacion-agregar-headers-de-expiracion/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
