<?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; Google</title> <atom:link href="http://blog.unijimpe.net/category/google/feed/" rel="self" type="application/rss+xml" /><link>http://blog.unijimpe.net</link> <description>Desarrollo Web, SEO, Adsense</description> <lastBuildDate>Mon, 28 Nov 2011 03:18:21 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Seguimiento de descargas con Google Analytics</title><link>http://blog.unijimpe.net/seguimiento-de-descargas-con-google-analytics/</link> <comments>http://blog.unijimpe.net/seguimiento-de-descargas-con-google-analytics/#comments</comments> <pubDate>Mon, 31 Oct 2011 02:48:19 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Mootools]]></category> <category><![CDATA[Servicios Web]]></category> <category><![CDATA[analytics]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1299</guid> <description><![CDATA[<p>Google Analytics el popular servicio de estadísticas de visitas ofrece muchas características que permiten conocer al detalle la interacción que tiene el usuario con nuestra web. Una de ellas es hacer el seguimiento de todos los &#8230;</p>]]></description> <content:encoded><![CDATA[<p>Google Analytics el popular servicio de estadísticas de visitas ofrece muchas características que permiten conocer al detalle la interacción que tiene el usuario con nuestra web. Una de ellas es hacer el seguimiento de todos los archivos de descargas, esto no se hace de forma automática por lo que hay que agregar un código adicional.</p><p><strong>Utilizando Google Analytics</strong></p><p>El primer paso es utilizar el código de seguimiento en nuestra página, actualmente se utiliza la versión asincrona la cual se debe colocar justo antes de la etiqueta <code>&lt;/head&gt;</code></p><div class="syntax_hilite"><div id="javascript-8"><div class="javascript"><ol><li style="color:#3A6A8B;"><div style="">&lt;script type=<span style="color: #3366CC;">"text/javascript"</span>&gt;</div></li><li style="color:#26536A;"><div style="">&nbsp; <span style="color: #003366;">var</span> _gaq = _gaq || <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; _gaq.<span style="color: #006600;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'_setAccount'</span>, <span style="color: #3366CC;">'UA-XXXXX-X'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; _gaq.<span style="color: #006600;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'_trackPageview'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp;</div></li><li style="color:#26536A;"><div style="">&nbsp; <span style="color: #66cc66;">&#40;</span><span style="color: #003366;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color: #003366;">var</span> ga = document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #66cc66;">&#41;</span>; ga.<span style="color: #006600;">type</span> = <span style="color: #3366CC;">'text/javascript'</span>; ga.<span style="color: #006600;">async</span> = <span style="color: #003366;">true</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; ga.<span style="color: #006600;">src</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'https:'</span> == document.<span style="color: #006600;">location</span>.<span style="color: #006600;">protocol</span> ? <span style="color: #3366CC;">'https://ssl'</span> : <span style="color: #3366CC;">'http://www'</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">'.google-analytics.com/ga.js'</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color: #003366;">var</span> s = document.<span style="color: #006600;">getElementsByTagName</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#91;</span><span style="color: #CC0000;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>; s.<span style="color: #006600;">parentNode</span>.<span style="color: #006600;">insertBefore</span><span style="color: #66cc66;">&#40;</span>ga, s<span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&lt;/script&gt;</div></li></ol></div></div></div><p></p><p>En donde <em>UA-XXXXX-X</em> es el código de seguimiento del sitio web el cual lo podemos obtener al registrar un sitio web en nuestra cuenta de Google Analytics.</p><p><strong>Seguimiento de descargas con Google Analytics</strong></p><p>Si en nuestra página tenemos archivos de descarga, en enlace de descarga es:</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/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"/files/map.pdf"</span><span style="color: #000000;">&gt;</span></a></span>map<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Para que Google Analytics pueda registrar las descargas es necesario agregar una llamada al método <em>_gaq.push</em> en donde el segundo parámetro es un nombre con el cual se identificará la descarga.</p><div class="syntax_hilite"><div id="html-10"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"/files/map.pdf"</span> <span style="color: #000066;">onClick</span>=<span style="color: #ff0000;">"_gaq.push(['_trackPageview','/files/map.pdf']);"</span><span style="color: #000000;">&gt;</span></a></span>map<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>El código es muy sencillo y hay que colocarlo en cada enlace de descarga que se tenga.</p><p><strong>Seguimiento de descargas con Google Analytics y Mootools</strong></p><p>Si utilizas Mootools en tu página, entonces puedes utilizarlo para agregar el código de seguimiento de manera sencilla. Para ello a todos los enlaces de descarga le agregaremos un estilo llamado <em>download</em>.</p><div class="syntax_hilite"><div id="html-11"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"/files/map.pdf"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"download"</span><span style="color: #000000;">&gt;</span></a></span>map<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Luego podemos agregar el siguiente código con el cual se busca todos los enlaces con el estilo <em>download</em> y le agrega la llamada al método <em>_gaq.push</em>.</p><div class="syntax_hilite"><div id="javascript-12"><div class="javascript"><ol><li style="color:#3A6A8B;"><div style="">window.<span style="color: #006600;">addEvent</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'load'</span>, <span style="color: #003366;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;$$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'.download'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">addEvent</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'click'</span>,<span style="color: #003366;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; _gaq.<span style="color: #006600;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'_trackPageview'</span>, <span style="color: #000066;">this</span>.<span style="color: #006600;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">replace</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'http://'</span>,<span style="color: #3366CC;">''</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></div></div></div><p></p><p><strong>Seguimiento de descargas con Google Analytics y jQuery</strong></p><p>Si utilizamos jQuery podríamos modificar el código anterior el cual se convertiría en:</p><div class="syntax_hilite"><div id="javascript-13"><div class="javascript"><ol><li style="color:#3A6A8B;"><div style="">$<span style="color: #66cc66;">&#40;</span>document<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">ready</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'a.download'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; _gaq.<span style="color: #006600;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'_trackPageview'</span>, $<span style="color: #66cc66;">&#40;</span><span style="color: #000066;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">attr</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">replace</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'http://'</span>,<span style="color: #3366CC;">''</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div></li></ol></div></div></div><p></p><p><strong>Seguimiento de descargas automático</strong></p><p>Si todas estas formas te parecen complicadas o ya tienes un sitio con muchas páginas y resulta complejo agregar el código de seguimiento, existe una solución llamada <a href="http://techoctave.com/c7/posts/58-entourage-js-automatic-download-tracking-for-asynchronous-google-analytics">Entourage.js</a> el cual agregará de forma automática el código de seguimiento a todos los enlaces que contengan archivos: .pdf, .zip, .doc, .xls, .ppt, .exe, .dmg, .mov, .avi y .mp3.</p><p>Para utilizar este método descargan los archivos y copian el archivo <em>entourage.min.js</em> y lo adjuntan a la página donde desean hacer el seguimiento, esto justo antes de colocar el código de Google Analytics.</p><div class="syntax_hilite"><div id="html-14"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"js/entourage.min.js"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Esta pequeña librería con un tamaño de solo 579 bytes y que nos facilita de manera muy sencilla el trabajo de hacer el seguimiento de descargas en nuestra página.</p><p><strong>Mas Información</strong></p><ul><li><a href="http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html">Google Analytics: Tracking Site Activity</a></li><li><a href="http://davidwalsh.name/track-file-downloads-google-analytics-mootools">Track File Downloads in Google Analytics Using MooTools</a></li><li><a href="http://techoctave.com/c7/posts/58-entourage-js-automatic-download-tracking-for-asynchronous-google-analytics">Entourage.js - Automatic Download Tracking for Asynchronous Google Analytics</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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/seguimiento-de-descargas-con-google-analytics/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Como incluir el botón Google +1 en tu Web</title><link>http://blog.unijimpe.net/como-incluir-el-boton-google-1-en-tu-web/</link> <comments>http://blog.unijimpe.net/como-incluir-el-boton-google-1-en-tu-web/#comments</comments> <pubDate>Sun, 07 Aug 2011 17:22:52 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[+1]]></category> <category><![CDATA[asincrono]]></category> <category><![CDATA[redes sociales]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1285</guid> <description><![CDATA[<p>El botón <strong>Google +1</strong> es una utilidad de Google que permite a los usuarios marcar como recomendado el contenido de un determinado web. Estas recomendaciones serán mostradas en los resultados de Google y deben ser hechas &#8230;</p>]]></description> <content:encoded><![CDATA[<p>El botón <strong>Google +1</strong> es una utilidad de Google que permite a los usuarios marcar como recomendado el contenido de un determinado web. Estas recomendaciones serán mostradas en los resultados de Google y deben ser hechas por usuarios con cuentas de Google. De esta manera nuestros visitantes recomendarán a sus amigos nuestro contenido de forma que tendremos una nueva manera de publicitar nuestra web.</p><p><a href="http://www.google.com/webmasters/+1/button/"><img src="http://blog.unijimpe.net/wp-content/uploads/2011/08/google-plus1.jpg" alt="" title="google-plus1" width="500" height="244" /></a></p><p><strong>Generador de Google +1</strong></p><p>Google ofrece una página donde puedes configurar rápidamente el botón +1, obtener el código javascript para colocarlo en tu web. Para ello primero ingresamos a <a href="http://www.google.com/webmasters/+1/button/">http://www.google.com/webmasters/+1/button/</a> donde seleccionamos el tamaño del botón (Small, Medium, Standard, Tall) y el idioma para obtener el código javascript.</p><p>El primer código lo ubican en donde desean se muestre en botón Google +1, pueden ubicar el varios lugares el código para mostrar varias veces el botón.</p><div class="syntax_hilite"><div id="html-18"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;">&lt;g:plusone&gt;</span><span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>/g:plusone&gt;</span></div></li></ol></div></div></div><p></p><p>El siguiente código se pone una sola vez y hay que colocarlo justo antes de la etiqueta <em>&lt;/body&gt;</em>. Este código es la forma asincrona de insertar javascript externo en una web, lo cual hace que primero cargue todos los elementos de la pagina y al final recién se carga el javascript necesario para el funcionamiento del botón +1.</p><div class="syntax_hilite"><div id="html-19"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">&nbsp; (function() {</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; po.src = 'https://apis.google.com/js/plusone.js';</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);</div></li><li style="color:#26536A;"><div style="">&nbsp; })();</div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>También es posible utilizar la forma tradicional para llamar al javascript externo, para ello en lugar del código anterior colocaremos el siguiente código en el header de tu HTML.</p><div class="syntax_hilite"><div id="html-20"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"https://apis.google.com/js/plusone.js"</span><span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/script&gt;</span></span></div></li></ol></div></div></div><p></p><p>Con lo cual obtenemos el siguiente resultado en nuestra página:</p><p><g:plusone></g:plusone></p><p>Estas son las configuraciones básicas, ahora si necesitas personalizar o integrar aún mas el botón Google +1, puedes leer la documentación en <a href="http://code.google.com/apis/+1button/">Adding the +1 button to your site</a>.</p><p>Como pueden ver utilizar este nuevo botón es sencillo y ayudará a obtener mas visitas a nuestras paginas mediante las recomendaciones de nuestros visitantes a sus contactos.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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-incluir-el-boton-google-1-en-tu-web/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Tips para identificar problemas en SEO</title><link>http://blog.unijimpe.net/tips-para-identificar-problemas-en-seo/</link> <comments>http://blog.unijimpe.net/tips-para-identificar-problemas-en-seo/#comments</comments> <pubDate>Mon, 06 Jun 2011 05:50:46 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[301]]></category> <category><![CDATA[buscador]]></category> <category><![CDATA[canonicalización]]></category> <category><![CDATA[headers]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[metatags]]></category> <category><![CDATA[nofollow]]></category> <category><![CDATA[redirección]]></category> <category><![CDATA[robots.txt]]></category> <category><![CDATA[sitemap.xml]]></category> <category><![CDATA[yahoo]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1273</guid> <description><![CDATA[<p>Auditar o identificar problemas relacionados con el SEO es el primer paso para posicionar adecuadamente un sitio web. Identificando los problemas podremos plantear soluciones adecuadas para corregir estos puntos débiles y reforzar nuestros aciertos.</p><p></p><p><strong>Análisis en </strong>&#8230;</p>]]></description> <content:encoded><![CDATA[<p>Auditar o identificar problemas relacionados con el SEO es el primer paso para posicionar adecuadamente un sitio web. Identificando los problemas podremos plantear soluciones adecuadas para corregir estos puntos débiles y reforzar nuestros aciertos.</p><p><img src="http://blog.unijimpe.net/wp-content/uploads/2011/06/identificar-problemas-seo.jpg" alt="" title="identificar-problemas-seo" width="500" height="284" /></p><p><strong>Análisis en los Motores de Búsqueda</strong></p><p>El primer paso es verificar que la información de nuestro web esta indexada correctamente en los motores de búsqueda.</p><ul><li>Busca en Google: <code>site: tudominio.com</code>, esto devolverá todas la páginas indexadas de tu dominio. Compara el total de páginas indexadas con el total de páginas que tienes alojadas en tu servidor.</li><li>Prueba buscar el nombre de tu web o marca y verificar tu posición en los buscadores. Si no existen resultados de tu web es probable que hayas sido penalizado.</li><li>Revisa la versión en cache que tienen los buscadores y verifica que sea la misma versión de tu página actual, si no es así entonces el buscador tiene indexado una versión antigua de tu página.</li></ul><p><strong>Análisis Contenido Duplicado</strong></p><p>Verifica que tu dominio tenga <strong>canonicalización</strong>. Es decir que la versión <strong>no-www</strong> (<em>http://tudominio.com</em>) de tu web haga una redirección 301 a la versión <strong>www</strong> (<em>http://www.tudominio.com</em>) o viceversa. Si no existe esta redirección 301 ambas versiones puedes considerarse como dominios diferentes y una considerada como contenido duplicado.</p><p>Para hacer una revisión de contenido, realiza la búsqueda exacta de una frase (Entre comillas dobles) que se encuentre en tu web y analizar la cantidad y tipo de resultados devueltos. Tambíen puedes utilizar el la palabra clave <strong>intitle</strong> para indicar la búsqueda solo en los títulos.</p><ul><li>Buscar en el contenido: <code>"Frase a buscar"</code></li><li>Buscar en los titulos: <code>intitle: "Frase a buscar"</code></li></ul><p>Si tienes varias páginas con el mismo contenido, puedes utilizar la propiedad <strong>canonical</strong> para indicar a los buscadores cual de estas páginas debe ser considerada como contenido original:</p><div class="syntax_hilite"><div id="html-27"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><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;">rel</span>=<span style="color: #ff0000;">'canonical'</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">'http://blog.unijimpe.net/depurar-flash-con-firebug/'</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p><strong>Análisis de los URLs</strong></p><p>Revisar que los URLs de tu página sean cortos, limpios y descriptivos (<em>Descriptivos</em>: que contienen keywords indicadores del contenido hay en la página). Evitar incluir parámetros adicionales como identificadores, códigos de sesión entre otros. En resumen los URLs deben ser sencillos de recordar y deben indicar directamente el contenido que están alojando.</p><p>Ejemplos:</p><ul><li>Incorrecto: <code>http://blog.unijimpe.net/?p=1268</code></li><li>Correcto: <code>http://blog.unijimpe.net/depurar-flash-con-firebug/</code></li></ul><p><strong>Análisis de la etiqueta &lt;title&gt;</strong></p><p>Asegúrate que todas las páginas tengan títulos únicos y descriptivos. Recuerda que los títulos deben ser únicos pues de lo contrario los motores de búsqueda no distinguirán la diferencia entre las diferentes páginas. Deben ser descriptivos de forma que explique sin opción a dudas cual es el contenido de la página.</p><p>No es necesario incluir el nombre de tu marca en el titulo, pero si deciden hacerlo debe ser al final de titulo y con un carácter separador, esto para obtener mejores beneficios en el ranking de los buscadores. Además hay que verificar que los títulos deben ser de menos de 70 caracteres de longitud en lo posible.</p><p><strong>Análisis de los Metatags</strong></p><p>Revisa el metatag <strong>robots</strong> en todas las páginas de tu sitio. Ten en cuenta que si el metatag robots tiene asignado el valor <em>NoIndex</em> o <em>NoFollow</em> evitará que tu contenido sea indexado en los buscadores. El uso no intencionado de estos tags hará que el contenido no sea indexado. El siguiente código debe ser utilizado sólo cuando se quiera evitar que la página sea indexada, por ejemplo cuando el contenido es accesible sólo para usuarios registrados.</p><div class="syntax_hilite"><div id="html-28"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"robots"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"noindex, nofollow"</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p>También es necesario revisar que el metatag <strong>description</strong> sea único y contenga un resumen del contenido de la página. El contenido de este tag será mostrado en los resultados de la búsqueda por lo que ayuda a los usuarios a obtener una  idea del contenido de nuestra página. Si no puedes crear un resumen de la página elimina el metatag <em>description</em> y Google hará un resumen automático.</p><div class="syntax_hilite"><div id="html-29"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/meta.html"><span style="color: #000000;">&lt;meta</span></a> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"description"</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">"resumen del contenido de tu pagina "</span> /<span style="color: #000000;">&gt;</span></a></span></div></li></ol></div></div></div><p></p><p><strong>Analisis de robots.txt y sitemap.xml</strong></p><p>En el archivo <em>robots.txt</em> se incluye un listado de las páginas o archivos que incluir o bloquear según el tipo de buscador. Es necesario verificar que este archivo no contengan enlaces que deseamos sean indexadas.</p><p>El archivo <em>sitemap.xml</em> es un documento XML que contiene todas las rutas con su respecto intervalo de tiempo a rastrear que deseamos enviar a los buscadores. Revisar que todas nuestras páginas estén incluidas con el intervalo de tiempo adecuado.</p><p>Para analizar estos dos archivos pueden utilizar las herramientas de <a href="www.google.com/webmasters/tools/?hl=es">Google Webmaster Tools</a>.</p><p><strong>Análisis de Redirecciones</strong><br /> Los buscadores interpretan el contenido de nuestra página pero no interpretan javascript, por lo que las redirecciones se deben hacer utilizando headers a nivel de servidor de lo contrario los motores de búsqueda no llegarán a la página de destino. Además de ello si se hace una redirección esta debe ser del tipo 301 para indicar que el contenido ha sido movido definitivamente a la nueva dirección. También hay que evitar el uso excesivo de las redirecciones pues estas incrementan el tiempo de carga de la página debido al tiempo que se toman los servidores para resolver las direcciones.</p><p>Se puede utilizar la herramienta <a href="http://samples.unijimpe.net/redirect-viewer/">HTTP Redirect Viewer</a> para el análisis del tipo y cantidad de redirecciones.</p><p><strong>Análisis de las Enlaces Internos</strong></p><p>Revisa que las páginas no tengan enlaces excesivos. Google informa que se debe utilizar una máximo de 100 enlaces por cada página, por que debes incluir sólo las páginas que consideres mas importantes para no exceder es límite.</p><p>También es necesario verificar el uso correcto de los textos <em>anchor</em> en los enlaces internos. Esta es una oportunidad para informar a los usuarios y motores de búsqueda el contenido del enlace de destino, por lo cual debes elegir correctamente el texto del enlace.</p><div class="syntax_hilite"><div id="html-30"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- incorrecto --&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span>Click Aquí<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- correcto --&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Tener en cuenta que Google no interpreta Javascript por lo cual los enlaces hechos de esta forma no serán interpretados y los buscadores nunca llegarán a la página de destino.</p><div class="syntax_hilite"><div id="html-31"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- incorrecto --&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"javascript:showContact();"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"#"</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"showContact();"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- correcto --&gt;</span></span></div></li><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"contacto.php"</span><span style="color: #000000;">&gt;</span></a></span>Formulario de Contácto<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p>Si tus visitantes pueden publicar comentarios u otro tipo de contenido que incluyan enlaces, utiliza el la propiedad <em>rel="nofollow"</em> para evitar que estemos enlazando a sitios de baja calidad o sitios de spam lo que afectaría negativamente nuestro posicionamiento.</p><div class="syntax_hilite"><div id="html-32"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/a.html"><span style="color: #000000;">&lt;a</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://spam-site.com"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"nofollow"</span><span style="color: #000000;">&gt;</span></a></span>Spammer Site<span style="color: #009900;"><span style="color: #000000;">&lt;/a&gt;</span></span></div></li></ol></div></div></div><p></p><p><strong>Análisis del Tiempo de Carga</strong></p><p>Si el tiempo de carga de tu página es excesivo los motores de búsqueda lo considerarán como un factor en contra y en el peor caso no lo indexarán debido a la dificultad para acceder a nuestra información. Para hacer un análisis de la velocidad de carga se puede utilizar el plugin para Firebug <a href="http://developer.yahoo.com/yslow/">YSlow</a> o también la herramienta online <a href="http://pagespeed.googlelabs.com/">Page Speed Online de Google</a>.</p><p>Para resolver este problema, revisa que las imágenes de tu web no sean muy pesadas, utiliza los headers de expiración, minifica tus archivos <em>js</em> y <em>css</em>, utiliza <em>gzip</em> para enviar contenido. Para mas tips para acelerar la velocidad de carga pueden leer <a href="http://blog.unijimpe.net/optimizar-carga-de-paginas-web/">Optimizar Carga de Paginas Web</a>.</p><p><strong>Análisis del Código HTML</strong></p><p>Los motores de búsqueda interpretan nuestra página como un texto plano y los tags HTML indican la forma como debe ser interpretado, pero estos no pueden interpretar imágenes, vídeos, flash. Interpretan texto pero no tienen la capacidad de interpretar código Javascript por lo cual lo que vemos en pantalla no es necesariamente lo que puede ser interpretado por el motor de búsqueda.</p><p>Entonces hay que asegurarse que nuestro código HTML sea redactado adecuadamente y muestre al buscador el contenido correcto de nuestro web. Se puede hacer un análisis de como interpretan los buscadores una página con <a href="http://seoparser.com">SEO Parser</a> la cual esta en estado beta pero que permite hacer una análisis de como nos ven los buscadores.</p><p><strong>Mas Información</strong></p><ul><li><a href="http://www.amazon.com/Art-SEO-Theory-Practice/dp/0596518862">The Art of SEO</a> - Chapter IV: Auditing an Existing Site to Identify SEO Problems</li><li><a href="http://googlewebmastercentral.blogspot.com/2008/09/demystifying-duplicate-content-penalty.html">Demystifying the "duplicate content penalty"</a></li><li><a href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html">Specify your canonical </a></li><li><a href="http://www.google.com/support/webmasters/bin/answer.py?hl=es&#038;answer=96569">Acerca de rel="nofollow"</a></li><li><a href="http://blog.unijimpe.net/optimizar-carga-de-paginas-web/">Optimizar Carga de Paginas Web</a></li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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/tips-para-identificar-problemas-en-seo/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Factores que influyen en el SEO</title><link>http://blog.unijimpe.net/factores-que-influyen-en-el-seo/</link> <comments>http://blog.unijimpe.net/factores-que-influyen-en-el-seo/#comments</comments> <pubDate>Mon, 09 May 2011 04:16:15 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[enlaces]]></category> <category><![CDATA[metatags]]></category> <category><![CDATA[nofollow]]></category> <category><![CDATA[yahoo]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1263</guid> <description><![CDATA[<p>Existen diversos factores que afectan el posicionamiento de una página web, en la experiencia de los webmasters se ha demostrado que algunos influyen más que otros y en algunos casos existen factores que influyen negativamente. &#8230;</p> Factores]]></description> <content:encoded><![CDATA[<p>Existen diversos factores que afectan el posicionamiento de una página web, en la experiencia de los webmasters se ha demostrado que algunos influyen más que otros y en algunos casos existen factores que influyen negativamente.</p><h3>Factores que afectan Positivamente</h3><p><strong>Keyword utilizado en la etiqueta &lt;title&gt;</strong></p><p>El texto utilizado dentro de la etiqueta <em>&lt;title&gt;</em> se muestra en la barra de estado del navegador y se utiliza como titulo en el resumen del resultado de búsqueda. Es considerado el factor mas influyente en el posicionamiento. Si el titulo contiene el keyword que esta buscando el usuario hay mas probabilidad de aparecer en las primeras posiciones.</p><p>Recomendaciones:</p><ul><li>No dejar páginas sin titulo como: "Untitled Page" o "Untitled Document".</li><li>El titulo debe ser descriptivo y describir completamente el contenido de la página.</li><li>Colocar títulos distintos a cada página, por ejemplo "Contáctenos - unijimpe".</li></ul><p><strong>Texto utilizado en los enlaces</strong></p><p>El texto utilizado en los enlaces es una descripción del contenido que se esta enlazando. Si existen enlaces desde diferentes dominios que contienen un mismo keyword es una fuerte indicador del contenido de un web. Es por ello que conseguir enlaces desde otras páginas con el texto adecuado es importante para posicionar una página en los primeros lugares.</p><p>Recomendaciones:</p><ul><li>Evitar crear enlaces del tipo <a href="#">Click Aquí</a> en su lugar se debe utilizar <a href="#">Contáctenos</a>.</li><li>Evitar utilizar javascript en la propiedad "href" del enlace, los buscadores no pueden seguirla.</li><li>Si se utiliza la propiedad <em>rel="nofollow"</em> los enlaces no son seguidos por Google.</li></ul><p><strong>Estructura de enlaces</strong></p><p>Si se utiliza una estructura de enlaces limpia, que sea descriptiva de la sección donde nos encontramos y que contengan las palabras clave del contenido, tendremos mejores opciones para posicionar nuestro contenido. Por ejemplo en lugar de tener un enlace de la forma: <em>producto.php?id=25</em> es mejor reemplazarlo por <em>product/macbook-pro-13/</em> donde es obvio que estamos revisando la sección productos y especificamente un Macbook Pro de 13 pulgadas.</p><p><strong>Autoridad Global del Sitio</strong></p><p>Esto es la cantidad de enlaces que tiene el sitio web desde otros dominios. Si un sitio es considerado de gran autoridad el contenido de estas páginas aparecerán entre los primeros resultados de búsqueda. Para tener una idea de la autoridad de un sitio se puede ver el <a href="http://samples.unijimpe.net/pagerank/">Pagerank</a> de la página principal del dominio también utilizando <a href="https://siteexplorer.search.yahoo.com/">Yahoo Site Explorer</a> donde se puede conocer la cantidad de links entrantes.</p><p><strong>Edad del Sitio</strong></p><p>El tiempo del sitio es una señal de la importancia de un web. Un sitio que tiene 8 años se considera mas importante que un sitio creado hace 3 meses. Algunos señalan que la fecha de expiración del dominio también es importante por lo cual registran el dominio por varios años.</p><p><strong>Popularidad del enlace en la estructura interna del Site</strong></p><p>En la estructura interna de enlaces hay algunos que son mas importantes, esto es por la cantidad de enlaces que tienen dentro del mismo web. Así una pagina que tenga un enlace solo desde la sección contacto y no de las demás tienes menos importancia que los otros enlaces.</p><p><strong>Relevancia tópica de los enlaces entrantes</strong></p><p>Si los enlaces entrantes vienen desde otros sitios que tienen relevancia, entonces es mas probable que este contenido aparezca en los primeros resultados de la búsqueda. Estos enlaces se consiguen creando contenido de calidad de modo que otros sitios nos enlazarán como referencia.</p><p><strong>Keyword utilizado en el contenido</strong></p><p>Los motores de búsqueda analizan el contenido de nuestra página y si la palabra clave que busca un usuario se encuentra en el contenido de nuestra página entonces apareceremos en el resultado de las búsquedas.</p><h3>Factores que afectan Negativamente</h3><p><strong>Servidor inaccesible a los buscadores</strong></p><p>Si tu servidor web esta inaccesible (en determinados momentos) y el motor de búsqueda intenta acceder, entonces no se podrá indexar el contenido. Por lo cual es recomendable contratar un hosting de calidad  que nos ofrezca un porcentaje alto de <em>uptime</em>.</p><p><strong>Contenido similar o duplicado de otras páginas</strong></p><p>Si el contenido de nuestra página es muy semejante o copiado de otros sitios, el buscador lo catalogará como contenido duplicado por lo cual la pagina con el contenido original aparecerá en los primeros lugares mientras que el duplicado será relegado a las ultimas posiciones.</p><p><strong>Enlaces externos de baja calidad o de sitios de spam</strong></p><p>Si nuestro web tiene enlaces desde sitios considerados como <em>spamers</em> es una señal que estamos trabajando con técnicas de spam por cual esto afectará negativamente para nuestro posicionamiento.</p><p><strong>Compra de enlaces</strong></p><p>La compra de enlaces es una técnica penalizada por los buscadores ya que intenta manipular el posicionamiento natural. Los buscadores detectan la compra de enlaces por ejemplo por el incremento abrupto de enlaces entrantes, es por ello que no es recomendable comprar enlaces o hacerlos utilizando la propiedad <em>rel="nofollow"</em>.</p><p><strong> Títulos y/o metatags duplicados</strong></p><p>Si colocamos varias páginas con el mismo <em>title</em> y <em>metatags</em> los buscadores no distinguirán que tipo de contenido tiene cada página e incluso cual es la página principal. Es por ello que hay que tener cuidado cuando se redacten estos parámetros.</p><p><strong>Mas Información</strong></p><ul><li><a href="http://www.seomoz.org/article/search-ranking-factors">Search Engine Ranking Factors | SEOmoz</a></li><li><a href="http://www.google.com/support/webmasters/bin/answer.py?answer=35769">Webmaster Guidelines - Webmaster Tools Help</a></li><li><a href="http://www.searchengineoptimizationjournal.com/2010/01/14/google-ranking-factors/">Top Ten Google SEO Ranking Factors</a></li><li><a href="http://www.amazon.com/Art-SEO-Theory-Practice/dp/0596518862">The Art of SEO</a> - Chapter II: Analyzing Ranking Factors</li></ul><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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/factores-que-influyen-en-el-seo/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Optimización: Google Page Speed Online</title><link>http://blog.unijimpe.net/optimizacion-google-page-speed-online/</link> <comments>http://blog.unijimpe.net/optimizacion-google-page-speed-online/#comments</comments> <pubDate>Mon, 04 Apr 2011 03:40:06 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Optimización Web]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[cache]]></category> <category><![CDATA[chrome]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[minificar]]></category> <category><![CDATA[optimizacion]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1260</guid> <description><![CDATA[<p><a href="http://code.google.com/speed/page-speed/">Page Speed</a> el plugin para <em>Firefox</em> y <em>Chrome</em> que permite hacer análisis de la velocidad de carga de un web y ofrece sugerencias de optimización presenta ahora una versión online para realizar un diagnostico de la &#8230;</p>]]></description> <content:encoded><![CDATA[<p><a href="http://code.google.com/speed/page-speed/">Page Speed</a> el plugin para <em>Firefox</em> y <em>Chrome</em> que permite hacer análisis de la velocidad de carga de un web y ofrece sugerencias de optimización presenta ahora una versión online para realizar un diagnostico de la velocidad de carga de nuestra web sin instalar ningún plugin a nuestro navegador favorito.</p><p><a href="http://pagespeed.googlelabs.com/"><img src="http://blog.unijimpe.net/wp-content/uploads/2011/04/page-speed-online.png" alt="" title="page-speed-online" width="500" height="242" /></a></p><p><a href="http://pagespeed.googlelabs.com/">Page Speed Online</a> ofrece un reporte agrupado en tres bloques:</p><ul><li><strong>High priority</strong> son puntos con los cuales puedes acelerar de gran manera tu web. Es recomendable implementar todas estas sugerencias. Entre estos puntos están: <em>optimizar las imágenes</em>, <em>generar thumbnails de las imágenes</em>, <em>activar keep-alive</em>, <em>combinar CSS en sprites</em>.</li><li><strong>Medium priority</strong> estos puntos son menos decisivos para la velocidad de tu web pero puede beneficiarse con estas sugerencias. Entre estos puntos tenemos: <em>Minificar CSS y JS</em>, r<em>educir la cantidad de redirecciones</em>, <em>configurar cache de contenido</em>.</li><li><strong>Low priority</strong> son puntos que tienen poco impacto en la velocidad de carga pero pueden ayudar en algo a acelerar nuestra web. En este bloque se encuentran: <em>Evitar peticiones erroneas</em>, <em>eliminar query string en peticiones estáticas</em>, etc.</li></ul><p>Adicionalmente Page Speed ofrece dos tipos de análisis, el primero para la versión de escritorio de tu web y el otro es para la versión móvil de tu web. Siguiendo las sugerencias que ofrece esta herramienta podremos acelerar la carga de nuestra web con pequeños cambios que harán que nuestros visitantes tengan una mejor experiencia en nuestra web.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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-google-page-speed-online/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Acortar URLs con PHP y Goo.gl</title><link>http://blog.unijimpe.net/acortar-urls-con-php-y-goo-gl/</link> <comments>http://blog.unijimpe.net/acortar-urls-con-php-y-goo-gl/#comments</comments> <pubDate>Mon, 21 Mar 2011 01:36:09 +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[API]]></category> <category><![CDATA[class]]></category> <category><![CDATA[goo.gl]]></category> <category><![CDATA[key]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1259</guid> <description><![CDATA[<p><a href="http://goo.gl">Goo.gl</a> es el servicio de Google para acortar URLs semejante a Bit.ly que ofrece un API que permite acortar y expandir las URLs de manera sencilla. Además de ello ofrece estadísticas de visitas a nuestras URLs &#8230;</p>]]></description> <content:encoded><![CDATA[<p><a href="http://goo.gl">Goo.gl</a> es el servicio de Google para acortar URLs semejante a Bit.ly que ofrece un API que permite acortar y expandir las URLs de manera sencilla. Además de ello ofrece estadísticas de visitas a nuestras URLs acortadas para una análisis del rendimiento.</p><p><strong>Creando un API Key</strong><br /> El proceso completo para hacer uso del API esta explicado en <a href="http://code.google.com/apis/urlshortener/v1/getting_started.html">Getting Started - Google URL Shortener API</a>. Donde se explica que para hacer poder acortar las URLs es necesario tener un API Key. Este key es gratuito y para obtenerlo hay que seguir los siguientes pasos.</p><ul><li>Entra a <a href="http://code.google.com/apis/console/">Google API Console</a>.</li><li>Crea un nuevo proyecto y activa "<em>URL Shortener API</em>".</li><li>Click en el menú "<em>Identity</em>" y en la sección <em>Access Key</em> encontrarás tu key.</li></ul><p><strong>Creando la Clase para Goo.gl</strong></p><p>De acuerdo a la documentación creamos un clase en PHP con dos métodos <em>shorten</em> para acortar un URL y <em>expand</em> para expandir URLs.</p><div class="syntax_hilite"><div id="php-37"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#000000;">class</span> Googl <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;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#000000;">function</span> Googl<span style="color:#006600;">&#40;</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;">path</span> = <span style="color:#FF0000;">"https://www.googleapis.com/urlshortener/v1"</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> shorten<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$url</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;">$ch</span> = curl_init<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">path</span>.<span style="color:#FF0000;">"/url?key="</span>.<span style="color:#0000FF;">$key</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_setopt<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span>, CURLOPT_RETURNTRANSFER, <span style="color:#000000;">true</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_setopt<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span>, CURLOPT_POST, <span style="color:#000000;">true</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_setopt<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span>, CURLOPT_HTTPHEADER, <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'Content-type: application/json'</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_setopt<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span>, CURLOPT_POSTFIELDS, json_encode<span style="color:#006600;">&#40;</span><a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">'longUrl'</span> =&gt; <span style="color:#0000FF;">$url</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$rpta</span> = curl_exec<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = json_decode<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$rpta</span>, <span style="color:#000000;">true</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_close<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$data</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">"id"</span><span style="color:#006600;">&#93;</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> 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:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$ch</span> = curl_init<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$this</span>-&gt;<span style="color:#006600;">path</span>.<span style="color:#FF0000;">"/url?shortUrl="</span>.<span style="color:#0000FF;">$url</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_setopt<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span>, CURLOPT_RETURNTRANSFER, <span style="color:#000000;">true</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$rpta</span> = curl_exec<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$data</span> = json_decode<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$rpta</span>, <span style="color:#000000;">true</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; curl_close<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$ch</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> <span style="color:#0000FF;">$data</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">"longUrl"</span><span style="color:#006600;">&#93;</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>Este código lo guardamos en un archivo llamado <em>googl.php</em>.</p><p><strong>Utilizando la clase</strong></p><p>Para utilizar la clase lo primero es incluir la clase al inicio de nuestro archivo PHPy luego creamos una instancia del objeto para utilizarlo posteriormente.</p><div class="syntax_hilite"><div id="php-38"><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;">"googl.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$googl</span> = <span style="color:#000000;">new</span> Googl<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p>Entonces si deseamos acortar un URL haremos uso del método <em>shorten</em> el cual recibe dos parámetros el primero el URL que deseamos acortar y el segundo es tu Key.</p><div class="syntax_hilite"><div id="php-39"><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;">"googl.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$googl</span> = <span style="color:#000000;">new</span> Googl<span style="color:#006600;">&#40;</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;">$googl</span>-&gt;<span style="color:#006600;">shorten</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://blog.unijimpe.net/tubeplayer/"</span>, <span style="color:#FF0000;">"tu-api-key"</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:#FF0000;">"urlmin: "</span>.<span style="color:#0000FF;">$urlmin</span>;</div></li></ol></div></div></div><p></p><p>Si por el contrario deseamos expandir un URL ya acortado, haremos uso del método <em>expand</em> el cual recibe un único parámetro que el URL acortado que deseamos expandir.</p><div class="syntax_hilite"><div id="php-40"><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;">"googl.php"</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$googl</span> = <span style="color:#000000;">new</span> Googl<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$urlmax</span> = <span style="color:#0000FF;">$googl</span>-&gt;<span style="color:#006600;">expand</span><span style="color:#006600;">&#40;</span><span style="color:#FF0000;">"http://goo.gl/E6pAi"</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:#FF0000;">"urlmax: "</span>.<span style="color:#0000FF;">$urlmax</span>;</div></li></ol></div></div></div><p></p><p>Como se puede ver el uso de esta clase es muy sencilla, solo hay que indicar el URL que deseamos acortar junto con nuestro API y generaremos automáticamente la versión acortada del mismo. Además de ello esta URL se anexará a nuestra cuenta de Goo.gl y podremos ver las estadísticas de visitas.</p><p style="text-align:left;"><a href="http://blog.unijimpe.net/download/googl-class.zip" title="PHP Goo.gl 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 - 2011 <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-goo-gl/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <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 &#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-46"><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-47"><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-48"><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-49"><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-50"><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:left;"><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 - 2011 <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>8</slash:comments> </item> <item><title>Google Font Library &#8211; Fuentes para tu Web</title><link>http://blog.unijimpe.net/google-font-library-fuentes-para-tu-web/</link> <comments>http://blog.unijimpe.net/google-font-library-fuentes-para-tu-web/#comments</comments> <pubDate>Fri, 21 May 2010 04:56:29 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[fonts]]></category> <category><![CDATA[gratis]]></category> <category><![CDATA[iPhone]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1171</guid> <description><![CDATA[<p><a href="http://code.google.com/apis/webfonts/">Google Font Library</a> es un servicio recién lanzado por Google que permitirá incluir fuentes o tipografías adicionales a las tradicionales con la cual se puede dar un mejor aspecto a diseño de un website o blog.&#8230;</p>]]></description> <content:encoded><![CDATA[<p><a href="http://code.google.com/apis/webfonts/">Google Font Library</a> es un servicio recién lanzado por Google que permitirá incluir fuentes o tipografías adicionales a las tradicionales con la cual se puede dar un mejor aspecto a diseño de un website o blog.</p><p><a href="http://code.google.com/apis/webfonts/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/05/font_directory_logo_beta.gif" alt="" title="font_directory_logo_beta" width="264" height="40" /></a></p><p>Para ello Google aloja en sus servidores fuentes gratuitas las cuales podemos integrar en nuestro web gracias a un API que han creado. Esto hará que podamos incluir tipografías diferentes a las tradicionales (Arial, Verdana, Times, etc.) que nos ayudará a dar un mejor acabado a nuestro web que de otra forma lo haríamos utilizando imágenes o flash.</p><p><strong>Utilizar Google Font Library</strong></p><p>Lo primero es elegir la fuente para ello pueden ver el listado de fuentes disponibles con todas sus variantes (normal, italic, bold, etc.) en <a href="http://code.google.com/webfonts">Google Font Directory</a>. Primero cargamos la tipografía utilizando el tag link y luego podemos utilizar la tipografía como si fuera una fuente estandar. Por ejemplo escogemos la fuente 'Lobster' y deseamos aplicarlo a los elementos h1 de nuestra página.</p><div class="syntax_hilite"><div id="html-53"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><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;">'http://fonts.googleapis.com/css?family=Lobster'</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=""><span style="color: #009900;"><a href="http://december.com/html/4/element/style.html"><span style="color: #000000;">&lt;style</span></a> <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:#3A6A8B;"><div style="">body {</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;font-family: 'Lobster', serif;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp;font-style: italic;</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp;font-size: 24px;</div></li><li style="color:#3A6A8B;"><div style="">}</div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><span style="color: #000000;">&lt;/style&gt;</span></span></div></li></ol></div></div></div><p></p><p>Si deseas incluir mas de una fuente debes separar los nombres de las fuentes por el carácter "<em>|</em>" en la ruta, por ejemplo si deseamos utilizar las fuentes <em>Lobster</em> y <em>Cantarell</em>, tendríamos.</p><div class="syntax_hilite"><div id="code-54"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">http:<span style="color:#FF9933; font-style:italic;">//fonts.googleapis.com/css?family=Lobster|Cantarell </span></div></li></ol></div></div></div><p></p><p>Como pueden ver es sencillo de utilizar y como las fuentes están alojadas en los servidores de Google nos garantizan una excelente velocidad de carga. Para demostrar el funcionamiento de este servicio pueden ver un  ejemplo funcionando en <a href="http://samples.unijimpe.net/google-font/">google-font</a> donde hemos utilizado dos fuentes diferentes, pueden ver el código fuente para ver como hemos utilizado este servicio.</p><p><a href="http://samples.unijimpe.net/google-font/"><img src="http://blog.unijimpe.net/wp-content/uploads/2010/05/google-font-library-demo.gif" alt="" title="google-font-library-demo" width="450" height="258" /></a></p><p><strong>Font previewer</strong></p><p>Para facilitar el uso de esta librería, pueden visitar <a href="http://code.google.com/webfonts/preview">Font Previewer</a> en donde pueden seleccionar la tipografía, variante, tamaño y demás opciones y tendrán automáticamente generado el código que deben utilizar en su web.</p><p><strong>Compatibilidad</strong></p><p>Esta librería tiene sus limitaciones y es que solo funciona en las navegadores mas modernos. Los navegadores compatibles con esta librería son:</p><ul><li>Google Chrome: versión 4.249.4+</li><li>Mozilla Firefox: versión: 3.5+</li><li>Apple Safari: versión 3.1+</li><li>Microsoft Internet Explorer: versión 6+</li></ul><p><em>Google Font API</em> no es compatible con: iPhone, iPad, iPod, o Android. En el caso de estos dispositivos el browser mostrará la siguiente tipografía en la lista de tipografías de la hoja de estilos.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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/google-font-library-fuentes-para-tu-web/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Reporte del Clima con PHP y Google</title><link>http://blog.unijimpe.net/reporte-del-clima-con-php-y-google/</link> <comments>http://blog.unijimpe.net/reporte-del-clima-con-php-y-google/#comments</comments> <pubDate>Tue, 20 Oct 2009 03:19:51 +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[clima]]></category> <category><![CDATA[xml]]></category> <category><![CDATA[xml2array]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1110</guid> <description><![CDATA[<p>En el artículo <a href="http://komunitasweb.com/2009/09/showing-the-weather-with-php-and-google-weather-api/">Showing the weather with PHP and Google Weather API</a> en donde explican la forma de obtener los datos del clima utilizando Google. Para ello acceden a un URL utilizado en iGoogle el cual &#8230;</p>]]></description> <content:encoded><![CDATA[<p>En el artículo <a href="http://komunitasweb.com/2009/09/showing-the-weather-with-php-and-google-weather-api/">Showing the weather with PHP and Google Weather API</a> en donde explican la forma de obtener los datos del clima utilizando Google. Para ello acceden a un URL utilizado en iGoogle el cual devuelve un XML con los datos del clima actual para la ciudad seleccionada y el pronostico para los siguientes tres días.</p><p><a href="http://samples.unijimpe.net/gweather/"><img src="http://blog.unijimpe.net/wp-content/uploads/2009/10/gweather.jpg" alt="gweather" title="gweather" width="441" height="315" /></a></p><p><strong>Obteniendo los datos de Google</strong><br /> Para obtener los datos del clima (condición, temperatura, humedad, vientos) de una ciudad determinada podemos acceder al siguiente URL.</p><div class="syntax_hilite"><div id="code-60"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">http:<span style="color:#FF9933; font-style:italic;">//www.google.com/ig/api?weather=city </span></div></li></ol></div></div></div><p></p><p>Estos datos son devueltos en idioma ingles, podemos agregarle un parámetro adicional hl para indicar el idioma de la respuesta, por ejemplo para español.</p><div class="syntax_hilite"><div id="code-61"><div class="code"><ol><li style="color:#3A6A8B;"><div style="">http:<span style="color:#FF9933; font-style:italic;">//www.google.com/ig/api?weather=city&amp;hl=es </span></div></li></ol></div></div></div><p></p><p><strong>Utilizando PHP para mostrar los datos</strong><br /> Ahora que ya sabes de donde obtener los datos los cargamos con PHP utilizando la función <em>file_get_contents</em> y posteriormente los convertimos en un array utilizando <a href="http://blog.unijimpe.net/xml2array-php-xml-parser/">xml2array</a>.</p><div class="syntax_hilite"><div id="php-62"><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;">"xml2array.php"</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;">$url</span> = <span style="color:#FF0000;">"http://www.google.com/ig/api?weather=lima&amp;hl=es"</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$contents</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;">$url</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$data</span> = xml2array<span style="color:#006600;">&#40;</span><span style="color:#0000FF;">$contents</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;">$weather_info</span> = <span style="color:#0000FF;">$data</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'xml_api_reply'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'weather'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'forecast_information'</span><span style="color:#006600;">&#93;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$weather_current</span> = <span style="color:#0000FF;">$data</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'xml_api_reply'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'weather'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'current_conditions'</span><span style="color:#006600;">&#93;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$weather_forecast</span> = <span style="color:#0000FF;">$data</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'xml_api_reply'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'weather'</span><span style="color:#006600;">&#93;</span><span style="color:#006600;">&#91;</span><span style="color:#FF0000;">'forecast_conditions'</span><span style="color:#006600;">&#93;</span>;</div></li></ol></div></div></div><p></p><p>Como se puede ver, hemos obtenido los datos de los nodos <em>forecast_information</em>, <em>current_conditions</em>, <em>forecast_conditions</em> en tres variables. Estos nodos contienen los datos de la ciudad consultada, los datos actuales clima y la predicción del clima para los siguientes tres días.</p><p>El siguiente paso es imprimir los datos que hemos obtenido de las respectivas variables. Si mostramos los datos del clima actual tendríamos el siguiente código:</p><div class="syntax_hilite"><div id="html-63"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/h3.html"><span style="color: #000000;">&lt;h3&gt;</span></a></span>Google Weather Demo <span style="color: #009900;"><span style="color: #000000;">&lt;/h3&gt;</span></span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"current"</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/strong.html"><span style="color: #000000;">&lt;strong&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php echo utf8_encode<span style="color: #66cc66;">&#40;</span>$weather_info<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'city'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'attr'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'data'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; ?<span style="color: #000000;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000;">&lt;/strong&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:#26536A;"><div style="">&nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"&lt;?php echo $weather_current['icon']['attr']['data']; ?&gt;</span>&quot; /&gt;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; Condición: <span style="color: #009900;">&lt;?php echo $weather_current['condition']['attr']['data']; ?&gt;</span><span style="color: #009900;">&lt;br /&gt;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; Temperatura: <span style="color: #009900;">&lt;?php echo $weather_current['temp_c']['attr']['data']; ?&gt;</span> <span style="color: #ddbb00;">&amp;deg;</span>C<span style="color: #009900;">&lt;br /&gt;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color: #009900;">&lt;?php echo $weather_current['humidity']['attr']['data']; ?&gt;</span><span style="color: #009900;">&lt;br /&gt;</span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;">&lt;/div&gt;</span> </span></div></li></ol></div></div></div><p></p><p>Nótese que mostramos el icono con el clima actual, los datos de la condición, temperatura y humedad. Pueden ver el ejemplo funcionando en <a href="http://samples.unijimpe.net/gweather/basic.php">http://samples.unijimpe.net/gweather/basic.php</a></p><p>También podemos mostrar las predicciones del clima para los siguientes días utilizando la variable <em>$weather_forecast</em> que contiene un array para ello escribimos:</p><div class="syntax_hilite"><div id="html-64"><div class="html"><ol><li style="color:#3A6A8B;"><div style=""><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"forecast"</span><span style="color: #000000;">&gt;</span></a></span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000;">&lt;</span></a>?php <span style="color: #000066;">for</span> <span style="color: #66cc66;">&#40;</span>$i=<span style="color: #cc66cc;color:#800000;">0</span>; $i&lt;sizeof<span style="color: #66cc66;">&#40;</span>$weather_forecast<span style="color: #66cc66;">&#41;</span>; $i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> ?<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 $foreday = $weather_forecast<span style="color: #66cc66;">&#91;</span>$i<span style="color: #66cc66;">&#93;</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/div.html"><span style="color: #000000;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"item"</span><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 utf8_encode<span style="color: #66cc66;">&#40;</span>$foreday<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'day_of_week'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'attr'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'data'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</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/img.html"><span style="color: #000000;">&lt;img</span></a> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"&lt;?php echo $foreday['icon']['attr']['data']; ?&gt;</span>&quot; /&gt;<span style="color: #009900;">&lt;br /&gt;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color: #009900;">&lt;?php echo $foreday['low']['attr']['data']; ?&gt;</span><span style="color: #ddbb00;">&amp;deg;</span>C |</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color: #009900;">&lt;?php echo $foreday['high']['attr']['data']; ?&gt;</span><span style="color: #ddbb00;">&amp;deg;</span>C</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color: #009900;">&lt;?php } ?&gt;</span></div></li><li style="color:#26536A;"><div style=""><span style="color: #009900;">&lt;/div&gt;</span> </span></div></li></ol></div></div></div><p></p><p>Agregando CSS y un formulario de búsqueda podemos obtener excelentes resultados, solo depende de nuestra imaginación. Pueden ver ejemplo final funcionando en <a href="http://samples.unijimpe.net/gweather/">http://samples.unijimpe.net/gweather/</a>.</p><p style="text-align:left;"><a href="http://blog.unijimpe.net/download/gweather.zip" title="Google Weather & PHP"><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 - 2011 <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/reporte-del-clima-con-php-y-google/feed/</wfw:commentRss> <slash:comments>45</slash:comments> </item> <item><title>Gráficos con PHP y Google Charts</title><link>http://blog.unijimpe.net/graficos-con-php-y-google-charts/</link> <comments>http://blog.unijimpe.net/graficos-con-php-y-google-charts/#comments</comments> <pubDate>Wed, 14 Oct 2009 06:30:05 +0000</pubDate> <dc:creator>unijimpe</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[3D]]></category> <category><![CDATA[API]]></category> <category><![CDATA[charts]]></category> <category><![CDATA[graficos]]></category><guid isPermaLink="false">http://blog.unijimpe.net/?p=1100</guid> <description><![CDATA[<p><a href="http://code.google.com/apis/chart/">Google Charts</a> es un API de Google que permite crear gráficos estadísticos de manera sencilla, estos gráficos se pueden crear accediendo a un URL con los parámetros adecuados. Entre los gráficos disponibles se encuentran: Line chart, &#8230;</p>]]></description> <content:encoded><![CDATA[<p><a href="http://code.google.com/apis/chart/">Google Charts</a> es un API de Google que permite crear gráficos estadísticos de manera sencilla, estos gráficos se pueden crear accediendo a un URL con los parámetros adecuados. Entre los gráficos disponibles se encuentran: Line chart, Sparkline, Bar chart, Pie chart, Venn diagram, Scatter plot, Radar chart, Map, Google-o-meter, QR codes.</p><p>Por ejemplo podríamos crear un gráfico del tipo Pie en 3D con dos valores tendríamos un URL de la forma: <a href="http://chart.apis.google.com/chart?cht=p3&#038;chd=t:60,40&#038;chs=300x120&#038;chl=Hombres|Mujeres">http://chart.apis.google.com/chart?cht=p3&#038;chd=t:60,40&#038;chs=300x120&#038;chl=Hombres|Mujeres</a></p><p><img src="http://chart.apis.google.com/chart?cht=p3&#038;chd=t:60,40&#038;chs=300x120&#038;chl=Hombres|Mujeres" width="300" height="120" /></p><p><strong>Google Charts con PHP</strong><br /> Para facilitarnos el proceso de crear estos gráficos existe la clase <a href="http://code.google.com/p/googchart/feeds">googchart</a> escrita en <em>PHP 5</em>, el cual brinda una serie de métodos para generar gráficos estadísticos complejos con lineas de código sencillas.</p><p>Para utilizar esta clase primero descargamos la librería y copiamos el archivo <em>GoogChart.class.php</em> el cual contiene la clase que necesitamos, luego incluimos este archivo al inicio de nuestros scripts.</p><div class="syntax_hilite"><div id="php-68"><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;">'GoogChart.class.php'</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$chart</span> = <span style="color:#000000;">new</span> GoogChart<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p>A continuación creamos un array con los datos que deseamos graficar, el siguiente paso es crear el array con los colores a utilizar y finalmente utilizamos el método <em>setChartAttrs</em> donde pasamos como parámetros el tipo de gráfico, el titulo, un array con los datos a graficar, las dimensiones del gráfico y finalmente un array con los colores a utilizar en el gráfico.</p><div class="syntax_hilite"><div id="php-69"><div class="php"><ol><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE7'</span> =&gt; <span style="color:#CC66CC;color:#800000;">22</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE6'</span> =&gt; <span style="color:#CC66CC;color:#800000;">30</span>.<span style="color:#CC66CC;color:#800000;">7</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE5'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">7</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Firefox'</span> =&gt; <span style="color:#CC66CC;color:#800000;">36</span>.<span style="color:#CC66CC;color:#800000;">5</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Mozilla'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">1</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Safari'</span> =&gt; <span style="color:#CC66CC;color:#800000;">2</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Opera'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">4</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$color</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'#99C754'</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'#54C7C5'</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'#999999'</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$chart</span>-&gt;<span style="color:#006600;">setChartAttrs</span><span style="color:#006600;">&#40;</span> <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'type'</span> =&gt; <span style="color:#FF0000;">'pie'</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'title'</span> =&gt; <span style="color:#FF0000;">'Browser market 2008'</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'data'</span> =&gt; <span style="color:#0000FF;">$data</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'size'</span> =&gt; <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span> <span style="color:#CC66CC;color:#800000;">400</span>, <span style="color:#CC66CC;color:#800000;">300</span> <span style="color:#006600;">&#41;</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'color'</span> =&gt; <span style="color:#0000FF;">$color</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>;</div></li></ol></div></div></div><p></p><p>Finalmente mostramos la imagen imprimiendo la variable $chart y generaremos la imagen deseada como se muestra a continuación.</p><p><a href="http://samples.unijimpe.net/gcharts/pie.php"><img src="http://blog.unijimpe.net/wp-content/uploads/2009/10/pie-chart.png" alt="pie-chart" title="pie-chart" width="400" height="300" /></a></p><p>Ahora si por ejemplo deseamos crear un gráfico de barras comparando dos valores, creamos primero un array multi-dimensional con los valores que deseamos graficar y al momento de crear el gráfico seleccionamos el tipo <em>bar-vertical</em> tendríamos el siguiente ejemplo:</p><div class="syntax_hilite"><div id="php-70"><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;">'GoogChart.class.php'</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$chart</span> = <span style="color:#000000;">new</span> GoogChart<span style="color:#006600;">&#40;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style="">&nbsp;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$data</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'February 2008'</span> =&gt; <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a> <span style="color:#006600;">&#40;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE7'</span> =&gt; <span style="color:#CC66CC;color:#800000;">22</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE6'</span> =&gt; <span style="color:#CC66CC;color:#800000;">30</span>.<span style="color:#CC66CC;color:#800000;">7</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE5'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">7</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Firefox'</span> =&gt; <span style="color:#CC66CC;color:#800000;">36</span>.<span style="color:#CC66CC;color:#800000;">5</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Mozilla'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">1</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Safari'</span> =&gt; <span style="color:#CC66CC;color:#800000;">2</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Opera'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">4</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#41;</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'January 2008'</span> =&gt; <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a> <span style="color:#006600;">&#40;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE7'</span> =&gt; <span style="color:#CC66CC;color:#800000;">22</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE6'</span> =&gt; <span style="color:#CC66CC;color:#800000;">30</span>.<span style="color:#CC66CC;color:#800000;">7</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'IE5'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">7</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Firefox'</span> =&gt; <span style="color:#CC66CC;color:#800000;">36</span>.<span style="color:#CC66CC;color:#800000;">5</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Mozilla'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">1</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Safari'</span> =&gt; <span style="color:#CC66CC;color:#800000;">2</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'Opera'</span> =&gt; <span style="color:#CC66CC;color:#800000;">1</span>.<span style="color:#CC66CC;color:#800000;">4</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#41;</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; <span style="color:#006600;">&#41;</span>;</div></li><li style="color:#26536A;"><div style=""><span style="color:#0000FF;">$color</span> = <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span></div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'#99C754'</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'#54C7C5'</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'#999999'</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><span style="color:#0000FF;">$chart</span>-&gt;<span style="color:#006600;">setChartAttrs</span><span style="color:#006600;">&#40;</span> <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span></div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'type'</span> =&gt; <span style="color:#FF0000;">'bar-vertical'</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'title'</span> =&gt; <span style="color:#FF0000;">'Browser market 2008'</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'data'</span> =&gt; <span style="color:#0000FF;">$data</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'size'</span> =&gt; <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600;">&#40;</span> <span style="color:#CC66CC;color:#800000;">550</span>, <span style="color:#CC66CC;color:#800000;">300</span> <span style="color:#006600;">&#41;</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'color'</span> =&gt; <span style="color:#0000FF;">$color</span>,</div></li><li style="color:#3A6A8B;"><div style="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF0000;">'labelsXY'</span> =&gt; <span style="color:#000000;">true</span>,</div></li><li style="color:#26536A;"><div style="">&nbsp; &nbsp; <span style="color:#006600;">&#41;</span><span style="color:#006600;">&#41;</span>;</div></li><li style="color:#3A6A8B;"><div style=""><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$chart</span>;</div></li></ol></div></div></div><p></p><p>Con lo cual obtenemos el gráfico de barras comparativo de dos tipos de datos como se muestra a continuación.</p><p><a href="http://samples.unijimpe.net/gcharts/bar.php"><img src="http://blog.unijimpe.net/wp-content/uploads/2009/10/bar-chart.png" alt="bar-chart" title="bar-chart" width="550" height="300" /></a></p><p>Como pueden ver los resultados son de muy buena calidad y el código para la creación es muy sencilla. Además al utilizar <em>Google Charts API</em> es que el procesamiento se hace en los servidores de Google con lo cual ahorramos capacidad de procesamiento en nuestros servidores.</p><p style="text-align:left;"><a href="http://blog.unijimpe.net/download/gcharts.zip" title="Google Charts API"><img src="http://blog.unijimpe.net/btdown.png" border="0"></a></p><p>Para una lista completa de los tipos de gráficos disponibles pueden leer <a href="http://code.google.com/apis/chart/types.html">Chart Types</a> o también pueden leer la documentación completa en <a href="http://code.google.com/apis/chart/">Developer's Guide</a>.</p><p style="font-size: 10px;border-top: 1px solid #666666;margin-top=12px;padding-top:6px;">&copy; 2006 - 2011 <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/graficos-con-php-y-google-charts/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)
Database Caching using disk: basic

Served from: blog.unijimpe.net @ 2012-02-08 10:54:34 -->
