<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	> 
<channel> 
<title>DocumentoWeb</title> 
<link>http://www.documentoweb.com/feed</link> 
<description>Informate de las nuevas publicaciones de DocumentoWeb.</description> 
<language>es-ES</language> 
<copyright>Licencia Creative Commons Atribución - No comercial - Licenciar igual</copyright>
<docs>http://www.documentoweb.com/publicaciones</docs>
<generator>Feed RSS creado por Null</generator>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<webMaster>documentoweb@gmail.com</webMaster>


<item> 
	<title>Webprendedor: Experiencia en Webprendedor 2011</title> 
	<link>http://www.documentoweb.com/Webprendedor/Experiencia-en-Webprendedor-2011</link> 
	<comments>http://www.documentoweb.com/Webprendedor/Experiencia-en-Webprendedor-2011#mensajes </comments> 
	<guid>http://www.documentoweb.com/Webprendedor/Experiencia-en-Webprendedor-2011</guid> 
	<description><![CDATA[ Este miércoles y jueves fuí a Webprendedor 2011 en Concepción, me encantó. Quiero contarles en detalle cómo fue mi experiencia en este evento, y de los beneficios que obtuve al ir a un evento súper interesante que se celebra cada año desde el 2007 (o 2008?).

Primer día: Talleres
El...]]></description>
	<content:encoded><![CDATA[<p>Este mi&eacute;rcoles y jueves fu&iacute; a <a href="http://www.webprendedor.com/wp2011/">Webprendedor 2011</a> en Concepci&oacute;n, me encant&oacute;. Quiero contarles en detalle c&oacute;mo fue mi experiencia en este evento, y de los beneficios que obtuve al ir a un evento s&uacute;per interesante que se celebra cada a&ntilde;o desde el 2007 (o 2008?).</p>
<p><img src="../imagenes/webprendedor.jpg" alt="" /></p>
<h2>Primer d&iacute;a: Talleres</h2>
<p><span>El primer d&iacute;a fu&eacute; de talleres, y aunque no me gust&oacute; tanto, rescato cosas importantes de ellas:</span></p>
<ul>
<li><strong><span>Primer taller: &ldquo;</span><span><em>Extreme Javascript</em></span><span>&rdquo;</span></strong><span> por Sebasti&aacute;n Gamboa. No me gust&oacute; mucho por que todos los ejemplos que nos mostr&oacute; ya estaban hechos (muchos sacados de la web) y la verdad es que no aprend&iacute; nada de c&oacute;digo. Aqu&iacute; rescato que supo explicar las ventajas de NodeJS y Coffescript, especialmente una: te permiten conectarte con la API de un servidor externo (como la twitter, facebook, tumblr, etc.) mediante javascript (sin necesidad de usar un lenguaje de servidor como PHP), y por tanto, que el servidor cargue lo que tiene que cargar desde tu servidor sin que se tenga que esperar la respuesta del servidor externo.</span></li>
<li><strong><span>Segundo taller: &ldquo;</span><span><em>Hace lo m&iacute;nimo y luego hace menos...</em></span><span>&rdquo;</span></strong><span> por Britt Servitelle. Lecci&oacute;n aprendida: Diego, aprende ingl&eacute;s.</span></li>
<li><strong><span>Tercer taller: &ldquo;</span><span><em>Desarrollo m&oacute;vil multiplataforma</em></span><span>&rdquo;</span></strong><span> por Andr&eacute;s Villagran. Fu&eacute; interesante conocer otra forma de desarrollar aplicaciones para distintos sistemas operativos con la herramienta Appcelerator, me gusta el concepto de la interfaz nativa, pero todo el proceso de compilaci&oacute;n y testeo de la aplicaci&oacute;n en emuladores a m&iacute; no me pareci&oacute; c&oacute;modo, tampoco me gust&oacute; eso de empezar a aprender un lenguaje espec&iacute;fico para desarrollar sobre Appcelerator, adem&aacute;s de que se debe desarrollar sobre OSX para poder emular el iOS (en windows solo puedes emular android). A pesar de estas desventajas, yo ya ten&iacute;a clara mi visi&oacute;n: </span><span><strong>hoy es HTML5</strong></span><span>. &iquest;Qu&eacute; pasar&aacute; cuando salga otro sistema operativo? &iquest;desarrollar otra app especificamente para ese OS?. Las ventajas de un lenguaje est&aacute;ndar son claras: todos los dispositivos modernos las est&aacute;n respetando, crear&aacute;s con un lenguaje una sola aplicaci&oacute;n para todo e &iexcl;incluso Windows 8 ya permite incluir tu aplicaci&oacute;n HTML5 en el metro!.</span></li>
<li><strong><span>Cuarto taller: &ldquo;</span><span><em>Dise&ntilde;o para hackers</em></span><span>&rdquo;</span></strong><span> por David Kadavy. Nuevamente una nota para m&iacute;: Diego, aprende ingl&eacute;s. David Nos mostr&oacute; varios conceptos interesantes, de los cuales rescato el &ldquo;espacio en blanco&rdquo; en el que nos mostr&oacute; una p&aacute;gina con HTML y sin CSS, y a medida que explicaba fu&eacute; agegando propiedades a los elementos del HTML sin meterse con colores ni estilos complejos, s&oacute;lo usando &ldquo;espacios en blanco&rdquo; b&aacute;sicamente con las propiedades margin, padding, text-decoration, word-spacing, letter-spacing, line-height y font-size. Fu&eacute; una maravilla sutil, solo con esto pudo formatear una p&aacute;gina que luego se ve&iacute;a muy bien. Claro est&aacute; que esto no significa que hagamos p&aacute;ginas sin colores ni estilos m&aacute;s bonitos, si no que nos llam&oacute; a<strong> </strong></span><span><strong>mejorar significativamente los estilos que usamos en todos los textos</strong></span><span><strong> que le ofrecemos al lector usando bien la jerarqu&iacute;a de elementos</strong>. </span></li>
</ul>
<p><span>Al final de esta jornada, me fu&iacute; a saludar a Cvander que acababa de terminar un taller de introducci&oacute;n al HTML5 en otra sala. Aprovech&eacute; de mostrarle un ejercicio que hice el d&iacute;a anterior de unos audiocuentos para iPad en HTML5, le encant&oacute;, me ofreci&oacute; su apoyo y hasta me dijo que quer&iacute;a ser nuestro cliente (XD).</span></p>
<h2>Segundo d&iacute;a: Conferencia</h2>
<p>Primero tengo que destacar que la conferencia de Webprendedor es sin fines de lucro!</p>
<p><img src="https://lh5.googleusercontent.com/fm6Owt2ZIKC-Hvf3gGQBmkiKPiWL9Ovtxw1hQm3MUk7M96YJj_Qe9vGtENV2rgNgK6Ln6A2Kh0pZ-M3wE8VKUXvAXXUVoXeamr-8uPlz9Jot1pmY77A" alt="" width="313px;" height="219px;" /></p>
<p>El d&iacute;a de la conferencia fu&eacute; mas cool, con muchas charlas motivadoras e historias interesantes de c&oacute;mo surgieron algunos emprendimientos. Quiero comentar dos de ellos:</p>
<ul>
<li><span><strong>OVIA</strong></span><span><strong> </strong>por Ignacio Rovirosa: que surgi&oacute; por una necesidad de una empresa X. Consiste en una plataforma donde se pueden crear entrevistas de trabajo lo m&aacute;s cercano a la realidad. </span><a href="http://oviahr.com/"><span>Conoce m&aacute;s de OVIA</span></a><span>.</span></li>
<li><span><strong>Hablalot</strong></span><span> por Robin Osorio: que surgi&oacute; por las ideas de Averigualo.cl (donde se puede averiguar de qu&eacute; compa&ntilde;&iacute;a es un tel&eacute;fono m&oacute;vil). B&aacute;sicamente consiste en llamar de un tel&eacute;fono m&oacute;vil a otro de forma m&aacute;s econ&oacute;mica sin preocuparse por la compa&ntilde;&iacute;a a la que est&aacute;s llamando. </span><a href="http://www.averigualo.cl/hablalot"><span>Conoce m&aacute;s de Hablalot</span></a><span>.</span></li>
</ul>
<p><span>Estas dos historias me parecieron super interesantes, porque </span><span><strong>no estuvieron planeadas desde un principio</strong></span><span>, surgieron en el camino por una necesidad espec&iacute;fica y se transformaron en lo que son ahora. Me encanta que las buenas ideas empiezen de esa forma, y que vayan creciendo constantemente.</span></p>
<p>Por otro lado, me encant&oacute; la historia de Nico Orellana y la raz&oacute;n de por qu&eacute; hizo todo esto de <strong>Webprendedor</strong>, de c&oacute;mo su vida fue transform&aacute;ndose a partir de ello y como empezaron a surgir las relaciones con otras personas y todo el surgimiento de <span><strong>Welcu</strong></span><span>. Tomar desiciones y aperrar con un emprendimiento son las ideas que rescato de &eacute;l.</span></p>
<h2>Comentarios finales</h2>
<p><span>Me encant&oacute; estar conociendo gente interesante, y sobre todo porque estaba &ldquo;en mi salsa&rdquo; rodeado por laptops, iphones, androids, tablets y c&aacute;maras reflexs! &hearts;</span></p>
<p>De toda la conferencia destaco mucho la idea de <span><strong>vender un producto o servicio por internet que se pueda vender (casi) solo, que desarrolles un producto que pueda ir escalando en cuanto a su uso, cantidad de usuarios y que por supuesto genere plata</strong>. Todos queremos la independencia econ&oacute;mica (o mucho m&aacute;s que eso) y ese es uno de los principales puntos de un emprendimiento.</span></p>
<p><span>El proceso de emprender es demasiado interesante, pero muy duro y ciertamente se le debe dedicar todo nuestro tiempo. Amar el proceso lo hace m&aacute;s liviano y entretenido. Se debe pasar muchos retos y aprender casi todo en el camino.</span></p>
<p><span>Eventos como este nos ayudan a motivarnos, y adem&aacute;s, hacer muchos contactos!</span></p>
<h2>&iexcl;Gracias Webprendedor!</h2>
<p><span><img src="../imagenes/tarjeta-webprendedor.jpg" alt="Webprendedor" /></span></p>]]></content:encoded> 	<category><![CDATA[webprendedor]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 15 Oct 2011 12:50:22</pubDate>
</item>
<item> 
	<title>¿Que es un framework y para que sirve?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-es-un-framework-y-para-que-sirve</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-es-un-framework-y-para-que-sirve#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-es-un-framework-y-para-que-sirve</guid> 
	<description><![CDATA[ Hola a todos, queria saber ¿Que es un framework y para que sirve?, ya que es muy nombrado esto en las paginas web.
Tengo entendido que ajax y symphony  son framework, pero no veo cual es su función, su objetivo o aporte al desarrollo web, porque realmente nose que es lo que hacen xD.
Espero me...]]></description>
	<content:encoded><![CDATA[<p>Hola a todos, queria saber &iquest;Que es un framework y para que sirve?, ya que es muy nombrado esto en las paginas web.</p>
<p>Tengo entendido que ajax y symphony &nbsp;son framework, pero no veo cual es su funci&oacute;n, su objetivo o aporte al desarrollo web, porque realmente nose que es lo que hacen xD.</p>
<p>Espero me ayuden con esta duda. Gracias.</p>
<p>Saludos :)</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 12 Oct 2011 22:50:27</pubDate>
</item>
<item> 
	<title>¿Es necesario nombrar a tu pagina de inicio como index?</title> 
	<link>http://www.documentoweb.com/pregunta/Es-necesario-nombrar-a-tu-pagina-de-inicio-como-index</link> 
	<comments>http://www.documentoweb.com/pregunta/Es-necesario-nombrar-a-tu-pagina-de-inicio-como-index#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Es-necesario-nombrar-a-tu-pagina-de-inicio-como-index</guid> 
	<description><![CDATA[ Hola a todos, me acaba de surgir una duda queria saber si ¿Es necesario nombrar a tu pagina de inicio como index?, no la puedo llamar solo inicio o algún otro nombre que se me ocurra.
Espero me aclaren esta duda.
Saludos, gracias :)                                                                ]]></description>
	<content:encoded><![CDATA[<p>Hola a todos, me acaba de surgir una duda queria saber si &iquest;Es necesario nombrar a tu pagina de inicio como index?, no la puedo llamar solo inicio o alg&uacute;n otro nombre que se me ocurra.</p>
<p>Espero me aclaren esta duda.</p>
<p>Saludos, gracias :)</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 10 Oct 2011 18:57:41</pubDate>
</item>
<item> 
	<title>¿Que hace la etiqueta &lt;meta&gt; en HTML?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-hace-la-etiqueta-meta-en-HTML</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-hace-la-etiqueta-meta-en-HTML#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-hace-la-etiqueta-meta-en-HTML</guid> 
	<description><![CDATA[ Hola a todos, tengo una nueva pregunta, quiero saber que hace o cual es la función de la etiqueta ??? es necesaria ponerla en una pagina web??? cual es su importancia???
Espero sus respuestas ^^
Saludos a todos, Gracias :P                                                                           ]]></description>
	<content:encoded><![CDATA[<p>Hola a todos, tengo una nueva pregunta, quiero saber que hace o cual es la funci&oacute;n de la etiqueta &lt;meta&gt;??? es necesaria ponerla en una pagina web??? cual es su importancia???</p>
<p>Espero sus respuestas ^^</p>
<p>Saludos a todos, Gracias :P</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 10 Oct 2011 17:48:19</pubDate>
</item>
<item> 
	<title>¿Cómo puedo subir una pagina a un hosting?</title> 
	<link>http://www.documentoweb.com/pregunta/Como-puedo-subir-una-pagina-a-un-hosting</link> 
	<comments>http://www.documentoweb.com/pregunta/Como-puedo-subir-una-pagina-a-un-hosting#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Como-puedo-subir-una-pagina-a-un-hosting</guid> 
	<description><![CDATA[ Creamos una pagina en dreamweaver con unos compañeros de clase y queremos subirla a un hosting gratuito y no tenemos idea de como hacerlo, ademas no sabemos si la pagina se vera como www.neomusica.com o www.xxxxxx.com o el nombre que vaya a tener la página. Se agradece cualquier ayuda, saludos!   ...]]></description>
	<content:encoded><![CDATA[<p>Creamos una pagina en dreamweaver con unos compa&ntilde;eros de clase y queremos subirla a un hosting gratuito y no tenemos idea de como hacerlo, ademas no sabemos si la pagina se vera como www.neomusica.com o www.xxxxxx.com o el nombre que vaya a tener la p&aacute;gina. Se agradece cualquier ayuda, saludos!</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 04 Oct 2011 08:38:28</pubDate>
</item>
<item> 
	<title>[Wordpress]: ¿Como crear un Tema en Wordpress?</title> 
	<link>http://www.documentoweb.com/pregunta/Como-crear-un-Tema-en-Wordpress</link> 
	<comments>http://www.documentoweb.com/pregunta/Como-crear-un-Tema-en-Wordpress#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Como-crear-un-Tema-en-Wordpress</guid> 
	<description><![CDATA[ Hola, tengo una pregunta y espero que me puedan ayudar.___.
Me hice una cuenta de Webhosting gratuito, subi e instale wordpress en el servidor ftp,
y quiero personalizar mi pagin creandole un theme, ya hice (segun yo) una "plantilla"
utilizando SOLO un archivo html y un css, esta dentro de la...]]></description>
	<content:encoded><![CDATA[<p>Hola, tengo una pregunta y espero que me puedan ayudar.___.</p>
<p>Me hice una cuenta de Webhosting gratuito, subi e instale wordpress en el servidor ftp,</p>
<p>y quiero personalizar mi pagin creandole un theme, ya hice (segun yo) una "plantilla"</p>
<p>utilizando SOLO un archivo html y un css, esta dentro de la carpeta Themes de wp-content de wordpress.</p>
<p>&nbsp;</p>
<p>Ahora mi pregunta es... como creo los archivos php necesarios para que funcione como un blog normal, por ejemplo este, donde pueda publicar articulos, subir imagenes etc. o como los adapto para que funcionen bien con wordpress??? no tengo ni idea de programacion en php y menos de base de datos MySQL, no se si sean necesarios.</p>
<p>&nbsp;</p>
<p>Muchas gracias de antemano.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 28 Sep 2011 09:55:52</pubDate>
</item>
<item> 
	<title>Cookie para jquerry</title> 
	<link>http://www.documentoweb.com/Cache-para-jquerry</link> 
	<comments>http://www.documentoweb.com/Cache-para-jquerry#mensajes </comments> 
	<guid>http://www.documentoweb.com/Cache-para-jquerry</guid> 
	<description><![CDATA[ Hola a todos, tengo una duda, en un foro IPB vi que al apretar sobre ocultar o mostrar (un toogle) y volver a cargar la pagina guarda el ultimo cambio que hiciste, alguien sabe como se hace?
Yo he creado un toogle que lo dejo abierto y al recargar se vuelve a cerrar, que tengo que hacer para que...]]></description>
	<content:encoded><![CDATA[<p>Hola a todos, tengo una duda, en un foro IPB vi que al apretar sobre ocultar o mostrar (un toogle) y volver a cargar la pagina guarda el ultimo cambio que hiciste, alguien sabe como se hace?</p>
<p>Yo he creado un toogle que lo dejo abierto y al recargar se vuelve a cerrar, que tengo que hacer para que guarde la ultima accion que hice?</p>
<p>Gracias de antemano</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 16 Sep 2011 17:49:24</pubDate>
</item>
<item> 
	<title>¿Cómo se activa o desactiva JavaScript en Internet Explorer?</title> 
	<link>http://www.documentoweb.com/pregunta/Como-se-activa-o-desactiva-JavaScript-en-Internet-Explorer</link> 
	<comments>http://www.documentoweb.com/pregunta/Como-se-activa-o-desactiva-JavaScript-en-Internet-Explorer#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Como-se-activa-o-desactiva-JavaScript-en-Internet-Explorer</guid> 
	<description><![CDATA[ Para activar o desactivar JavaScript en Internet Explorer, proceda como se indica a continuación:
Haga clic en el menú Herramientas en el punto Opciones de Internet:

En la ficha Seguridad haga clic en el botón Nivel personalizado:

En la configuración de seguridad...]]></description>
	<content:encoded><![CDATA[<p>Para activar o desactivar JavaScript en Internet Explorer, proceda como se indica a continuaci&oacute;n:</p>
<p>Haga clic en el men&uacute;&nbsp;<strong>Herramientas</strong>&nbsp;en el punto&nbsp;<strong>Opciones de Internet</strong>:</p>
<p><img src="https://www.livepages.es/browserhelp/images/ie7_MenuExtrasInternetoptions.jpg" alt="" width="502" height="322" /></p>
<p>En la ficha&nbsp;<strong>Seguridad</strong>&nbsp;haga clic en el bot&oacute;n&nbsp;<strong>Nivel personalizado</strong>:</p>
<p><img src="https://www.livepages.es/browserhelp/images/ie7_ChangeSecurityLevel.jpg" alt="" width="414" height="537" /></p>
<p>En la configuraci&oacute;n de seguridad en&nbsp;<strong>Automatizaci&oacute;n</strong>&nbsp;active el punto&nbsp;<strong>Automatizaci&oacute;n de los subprogramas de Java</strong>&nbsp;(punto 1), y tambi&eacute;n&nbsp;<strong>Secuencias de comandos ActiveX</strong>&nbsp;(punto 2):</p>
<p><img src="https://www.livepages.es/browserhelp/images/ie7_SecurityOptionsScripting.jpg" alt="" width="418" height="564" /></p>
<p>Guarde los ajustes pulsando cada vez la tecla de&nbsp;<strong>Aceptar</strong>.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 26 Aug 2011 19:16:36</pubDate>
</item>
<item> 
	<title>porque le devo de dar soporte a IE6?</title> 
	<link>http://www.documentoweb.com/pregunta/porque-le-devo-de-dar-soporte-a-IE6</link> 
	<comments>http://www.documentoweb.com/pregunta/porque-le-devo-de-dar-soporte-a-IE6#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/porque-le-devo-de-dar-soporte-a-IE6</guid> 
	<description><![CDATA[ alguien que me diga esque es algo tonto darle soporte a IE6 cuando ya aparecio el html 5 y es logico que esos navegadores no soportan el html5 ._. entonces en lo personal yo diria que con un sensillo escript detecte el navegador de los visitantes y si su navegador no soporta mi website que lo...]]></description>
	<content:encoded><![CDATA[<p>alguien que me diga esque es algo tonto darle soporte a IE6 cuando ya aparecio el html 5 y es logico que esos navegadores no soportan el html5 ._. entonces en lo personal yo diria que con un sensillo escript detecte el navegador de los visitantes y si su navegador no soporta mi website que lo redireccione a algun otro lugar y ya :)</p>
<p>bueno eso es lo que yo opino ya que hay tecnicas en css tanto en 2.1 como css 3 que no son soportados, y creo que con la aparicion de windows7 ya nadie usa el IE6, bueno yo e ido a varios cafeces intenet y antes si se veian cafeces internets con esos exploradores, pero ahora ya no veo nunguno</p>
<p>otra cosa es que si mi web usa imagenes png entonces por culpa de los navegadores no devo de usar png? o_O ya se que hay escripts y tecnicas pero es como si creara otra web, porque ensi la pagina no seria la misma</p>
<p>&nbsp;</p>
<p><strong>YO DIGO QUE SI LE VAN A DAR SOPORTE A IE6 que sea para moviles como lo ase twitter detodas formas solo faltan 2 a&ntilde;os para que el navegador desaparesca</strong></p>
<h3>CONSULTAR ARTICULOS</h3>
<p><a href="http://nexxuz.com/no-mas-internet-explorer-redirecciona-tu-pagina.html">http://nexxuz.com/no-mas-internet-explorer-redirecciona-tu-pagina.html</a></p>
<p>&nbsp;</p>
<p><strong>IE6 se le dara dando soporte asta el 2014</strong></p>
<p><a href="http://bitelia.com/2009/08/nadie-quiere-ie6-pero-microsoft-seguira-dandole-soporte-hasta-el-2014">http://bitelia.com/2009/08/nadie-quiere-ie6-pero-microsoft-seguira-dandole-soporte-hasta-el-2014</a></p>
<h3>el IE6 desaparecera para siempre en el 2014</h3>
<p>pero ya savemos que las grandes redes sociales como youtube y flick ya no le dan soporte a esa porqueria que microsoift invento</p>
<p>esta es mi solucion, bueno pueden redireccionar su sitio a donde selespegue la gana yo diria en una pagina de error, pero eso es lo que yo opino</p>
<pre>&lt;!--[if lt IE 7]&gt;
&lt;script&gt;location.href="http://www.nexxuz.com/noie/?lang=es" &lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p><strong>tambien otra solucion seria tratar al IE6 como movil, tal como lo ase el twitter, que le da soporte a IE6 pero como si fuera un celular, y lo redirecciona, y pensandolo detenidamente esa es la mejor opcion</strong></p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 25 Aug 2011 17:09:33</pubDate>
</item>
<item> 
	<title>Error en bloques CSS/XHTML</title> 
	<link>http://www.documentoweb.com/Error-en-bloques-CSS-XHTML</link> 
	<comments>http://www.documentoweb.com/Error-en-bloques-CSS-XHTML#mensajes </comments> 
	<guid>http://www.documentoweb.com/Error-en-bloques-CSS-XHTML</guid> 
	<description><![CDATA[ Hola  a todos estoy realizando un script de prueba pero al crear 1 bloque y 2  dentro de el no contienen en el mismo, como en la siquiente imagen:
 
Alguien sabe como solucionarlo?Os dejo el codigo html
                    Sidebar         Aquí se encontraran enlaces del sub...]]></description>
	<content:encoded><![CDATA[<p><strong><span><span>Hola  a todos estoy realizando un script de prueba pero al crear 1 bloque y 2  dentro de el no contienen en el mismo, como en la siquiente imagen:</span></span></strong></p>
<p><span><span>&nbsp;</span></span><span><span><img src="http://i56.tinypic.com/2d9b9ko.jpg" alt="Error con los bloques" width="659" height="188" /></span></span></p>
<p><span><strong><span>Alguien sabe como solucionarlo?<br /><br />Os dejo el codigo html</span></strong></span></p>
<p><span><code>&nbsp; &nbsp; </code></span><span><code>&lt;div id="bloque contenedor"&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp;&lt;div id="izquierda"&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;h1&gt;Sidebar&lt;/h1&gt;<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;p&gt;Aqu&iacute; se encontraran enlaces del sub menu<br />&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&lt;/p&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;div id="derecha"&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;h2&gt;Script Liberty&lt;/h2&gt;<br />&nbsp;  &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;p&gt;Liberty es un sistema personalizable capas de ser  adaptado a los gustos de las personas. Liberty es un sistema  personalizable capas de ser adaptado a los gustos de las personas.  Liberty es un sistema personalizable capas de ser adaptado a los gustos  de las personas. Liberty es un sistema personalizable capas de ser  adaptado a los gustos de las personas. Liberty es un sistema  personalizable capas de ser adaptado a los gustos de las personas.  Liberty es un sistema personalizable capas de ser adaptado a los gustos  de las personas.<br />&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&lt;/p&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;<br />&nbsp; &nbsp; &lt;/div&gt;</code></span></p>
<p><strong><span><span>Y aqui el CSS</span></span></strong></p>
<dl><dd><code>#bloque contenedor{<br />&nbsp; &nbsp;margin:0 auto;<br />&nbsp; &nbsp;width:970px;<br />&nbsp; &nbsp;padding:10px;<br />&nbsp; &nbsp;height:auto;<br />}<br /><br />#izquierda{<br />&nbsp; &nbsp;display:block;<br />&nbsp; &nbsp;float:left;<br />&nbsp; &nbsp;margin:0 auto 20px 0;<br />&nbsp; &nbsp;width:200px;<br />}<br /><br />#derecha{<br />&nbsp; &nbsp;display:block;<br />&nbsp; &nbsp;float:right;<br />&nbsp; &nbsp;margin:0 auto 20px 0;<br />&nbsp; &nbsp;width:750px;<br />}</code></dd></dl>
<p>&nbsp;</p>
<p><span><span><br /></span></span></p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 16 Aug 2011 13:14:19</pubDate>
</item>
<item> 
	<title>que lenguaje me recomiendan mas?</title> 
	<link>http://www.documentoweb.com/pregunta/que-lenguaje-me-recomiendan-mas</link> 
	<comments>http://www.documentoweb.com/pregunta/que-lenguaje-me-recomiendan-mas#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/que-lenguaje-me-recomiendan-mas</guid> 
	<description><![CDATA[ Bueno eso, estoy empezando a aprender, se hacer paginas con tablas, pero estoy aprendiendo a hacer manualmente con codigos, y queria saber que lenguaje entre los siguientes me recomiendan para profundizarme mas?

css
javascript
xhtml
html5
html
php
otro
                                     ...]]></description>
	<content:encoded><![CDATA[<p>Bueno eso, estoy empezando a aprender, se hacer paginas con tablas, pero estoy aprendiendo a hacer manualmente con codigos, y queria saber que lenguaje entre los siguientes me recomiendan para profundizarme mas?</p>
<ul>
<li>css</li>
<li>javascript</li>
<li>xhtml</li>
<li>html5</li>
<li>html</li>
<li>php</li>
<li>otro</li>
</ul>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 16 Aug 2011 01:53:16</pubDate>
</item>
<item> 
	<title>¿Es posible programar en una tablet?</title> 
	<link>http://www.documentoweb.com/pregunta/Es-posible-programar-en-una-tablet</link> 
	<comments>http://www.documentoweb.com/pregunta/Es-posible-programar-en-una-tablet#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Es-posible-programar-en-una-tablet</guid> 
	<description><![CDATA[ Quiero saber si existe una aplicacion para poder programar en una tablet con android, me interesa programar en php/mysql, el problema es sobre la base de datos que tendria que alojar, no se si se podra. Tambien alguna aplicacion para trabajar con html y css en android                                ]]></description>
	<content:encoded><![CDATA[<p>Quiero saber si existe una aplicacion para poder programar en una tablet con android, me interesa programar en php/mysql, el problema es sobre la base de datos que tendria que alojar, no se si se podra. Tambien alguna aplicacion para trabajar con html y css en android</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 15 Aug 2011 01:23:36</pubDate>
</item>
<item> 
	<title>¿Es necesario saber php o algo de base de datos para publicar una pag web?</title> 
	<link>http://www.documentoweb.com/pregunta/Es-necesario-saber-php-o-algo-de-base-de-datos-para-publicar-una-pag-web</link> 
	<comments>http://www.documentoweb.com/pregunta/Es-necesario-saber-php-o-algo-de-base-de-datos-para-publicar-una-pag-web#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Es-necesario-saber-php-o-algo-de-base-de-datos-para-publicar-una-pag-web</guid> 
	<description><![CDATA[ hola amigos, la verdad no tengo idea de esto, ya que nunca eh publicado una pagina web xD
 ¿Es necesario saber php o algo de base de datos para publicar una pag web?
Espero sus repuestas xD Saludos..                                                                                                ]]></description>
	<content:encoded><![CDATA[<p>hola amigos, la verdad no tengo idea de esto, ya que nunca eh publicado una pagina web xD</p>
<p>&nbsp;&iquest;Es necesario saber php o algo de base de datos para publicar una pag web?</p>
<p>Espero sus repuestas xD Saludos..&nbsp;</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 10 Aug 2011 21:59:55</pubDate>
</item>
<item> 
	<title>¿Que me recomiendan profundizar en CSS o aprener CSS3?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-me-recomiendan-profundizar-en-CSS-o-aprener-CSS3</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-me-recomiendan-profundizar-en-CSS-o-aprener-CSS3#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-me-recomiendan-profundizar-en-CSS-o-aprener-CSS3</guid> 
	<description><![CDATA[ hola amigos, tengo un pequeño dilema, estoy aprendiendo CSS, pero encontre unos tutoriales de CSS3 que enseñan muy bien, entonces mi pregunta es:
¿Que me recomiendan: profundizar en CSS o aprener CSS3?
Digamos que tengo los conocimientos basicos de CSS, pero me gustaria profundizarlos, por otro...]]></description>
	<content:encoded><![CDATA[<p>hola amigos, tengo un peque&ntilde;o dilema, estoy aprendiendo CSS, pero encontre unos tutoriales de CSS3 que ense&ntilde;an muy bien, entonces mi pregunta es:</p>
<p>&iquest;Que me recomiendan: profundizar en CSS o aprener CSS3?</p>
<p>Digamos que tengo los conocimientos basicos de CSS, pero me gustaria profundizarlos, por otro lado conoci esta nueva version CSS3, que es muy interesante, pero nose si es conveniente aprenderla ahora o m&aacute;s adelante, digo esto por el tema de los navegadores que aceptan CSS3.</p>
<p>Espero sus respuestas :D&nbsp;</p>
<p>Saludos :)</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 10 Aug 2011 21:55:29</pubDate>
</item>
<item> 
	<title>¿Cuales son las diferencias entre las 3 versiones de HTML?</title> 
	<link>http://www.documentoweb.com/pregunta/Cuales-son-las-diferencias-entre-las-3-versiones-de-HTML</link> 
	<comments>http://www.documentoweb.com/pregunta/Cuales-son-las-diferencias-entre-las-3-versiones-de-HTML#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Cuales-son-las-diferencias-entre-las-3-versiones-de-HTML</guid> 
	<description><![CDATA[ Hola amigos, mi pregunta es:
¿Cuales son las diferencias entre las 3 versiones de HTML? (XHTML estricto, XHTML transicional, HTML5)
Saludos :D                                                                                                                                                           ]]></description>
	<content:encoded><![CDATA[<p>Hola amigos, mi pregunta es:</p>
<p>&iquest;Cuales son las diferencias entre las 3 versiones de HTML? (XHTML estricto, XHTML transicional, HTML5)</p>
<p>Saludos :D</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 10 Aug 2011 21:39:56</pubDate>
</item>
<item> 
	<title>¿Como se que Doctype poner en mi archivo html?</title> 
	<link>http://www.documentoweb.com/pregunta/Como-se-que-Doctype-poner-en-mi-archivo-html</link> 
	<comments>http://www.documentoweb.com/pregunta/Como-se-que-Doctype-poner-en-mi-archivo-html#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Como-se-que-Doctype-poner-en-mi-archivo-html</guid> 
	<description><![CDATA[ Hola amigos, tengo una nueva duda xD.
 Me eh dado cuenta que en algunas paginas ponen:
   y algunas ponen fechas y la version del html, tenia entendido que esto hay q ponerlo para que se vea tu pagina, pero ¿Como se que Doctype poner en mi archivo html?.
Un saludo a todos :D, espero sus...]]></description>
	<content:encoded><![CDATA[<p>Hola amigos, tengo una nueva duda xD.</p>
<p>&nbsp;Me eh dado cuenta que en algunas paginas ponen:</p>
<p>&lt;!DOCTYPE html&gt; &nbsp; y algunas ponen fechas y la version del html, tenia entendido que esto hay q ponerlo para que se vea tu pagina, pero &iquest;Como se que Doctype poner en mi archivo html?.</p>
<p>Un saludo a todos :D, espero sus respuestas :)</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 10 Aug 2011 12:42:23</pubDate>
</item>
<item> 
	<title>¿Como saben que palabras ocupar en la nube de etiquetas?</title> 
	<link>http://www.documentoweb.com/pregunta/Como-saben-que-palabras-ocupar-en-la-nube-de-etiquetas</link> 
	<comments>http://www.documentoweb.com/pregunta/Como-saben-que-palabras-ocupar-en-la-nube-de-etiquetas#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Como-saben-que-palabras-ocupar-en-la-nube-de-etiquetas</guid> 
	<description><![CDATA[ hola amigos, queira saber como saben que palabras ocupar en la nube de etiquetas??? o es algun codigo que recopila las palabras mas usadas????
Gracias, Saludos :D                                                                                                                                         ]]></description>
	<content:encoded><![CDATA[<p>hola amigos, queira saber como saben que palabras ocupar en la nube de etiquetas??? o es algun codigo que recopila las palabras mas usadas????</p>
<p>Gracias, Saludos :D</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 03 Aug 2011 21:57:52</pubDate>
</item>
<item> 
	<title>¿Que servidor o host gratuito me recomendarian?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-servidor-gratuito-me-recomendarian</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-servidor-gratuito-me-recomendarian#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-servidor-gratuito-me-recomendarian</guid> 
	<description><![CDATA[ Hola amigos, esta vez queria saber que servidor o host gratuito me recomiendan para subir una pagina web.
Saludos y gracias :D                                                                                                                                                                             ]]></description>
	<content:encoded><![CDATA[<p>Hola amigos, esta vez queria saber que servidor o host gratuito me recomiendan para subir una pagina web.</p>
<p>Saludos y gracias :D</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 03 Aug 2011 16:17:18</pubDate>
</item>
<item> 
	<title>¿Que es mejor aprender Dreamweaver o el codigo HTML CSS etc?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-es-mejor-aprender-Dreamweaver-o-el-codigo-HTML-CSS-etc</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-es-mejor-aprender-Dreamweaver-o-el-codigo-HTML-CSS-etc#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-es-mejor-aprender-Dreamweaver-o-el-codigo-HTML-CSS-etc</guid> 
	<description><![CDATA[ Hola amigos, tenia una pregunta muy grande q hacerles, quiero aprender a hacer paginas web, y pensaba hacerlo aprendiendo HTML, CSS. pero luego le comente a un amigo y el me dijo que aprendiera Dreamweaver que era mas facil y rapido, entoces les hago la pregunta: ¿Que es mejor aprender Dreamweaver...]]></description>
	<content:encoded><![CDATA[<p>Hola amigos, tenia una pregunta muy grande q hacerles, quiero aprender a hacer paginas web, y pensaba hacerlo aprendiendo HTML, CSS. pero luego le comente a un amigo y el me dijo que aprendiera Dreamweaver que era mas facil y rapido, entoces les hago la pregunta:<br /><br />&nbsp;&iquest;Que es mejor aprender Dreamweaver o el codigo HTML CSS etc, para ser un buen creador de paginas?</p>
<p>me gustaria q porfavor me pudieran decir sus pro y contras para tener una mejor idea.</p>
<p>Gracias a todos, Saludos :D&nbsp;</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 03 Aug 2011 01:08:14</pubDate>
</item>
<item> 
	<title>¿Que es RSS y para que sirve?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-es-RSS-y-para-que-sirve</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-es-RSS-y-para-que-sirve#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-es-RSS-y-para-que-sirve</guid> 
	<description><![CDATA[ Hola amigos, la verdad siempre me eh preguntado para q servira RSS y que es???, ya que siempre lo veo en muchas paginas, y claramente en esta tambien xD.Quiero saber cual es la gracia de esto y si es necesario tenerlo para una pagina web????Saludos, espero sus respuestas :D                         ...]]></description>
	<content:encoded><![CDATA[<p>Hola amigos, la verdad siempre me eh preguntado para q servira RSS y que es???, ya que siempre lo veo en muchas paginas, y claramente en esta tambien xD.<br />Quiero saber cual es la gracia de esto y si es necesario tenerlo para una pagina web????<br /><br />Saludos, espero sus respuestas :D&nbsp;</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 03 Aug 2011 00:57:12</pubDate>
</item>
<item> 
	<title>Ayuda: Subir pagina (zobyhost) con dreamweaver (php+mysql)</title> 
	<link>http://www.documentoweb.com/ayuda/subir-pagina-zobyhost-con-dreamweaver-php-mysql</link> 
	<comments>http://www.documentoweb.com/ayuda/subir-pagina-zobyhost-con-dreamweaver-php-mysql#mensajes </comments> 
	<guid>http://www.documentoweb.com/ayuda/subir-pagina-zobyhost-con-dreamweaver-php-mysql</guid> 
	<description><![CDATA[ Hola a todos!
tengo una página creada en dreamweaver, pero maneja una base de datos
con zobyhost configure el servidor ftp y ya logro ver los archivos que en mi sitio existen
sin embargo, a la hora de ingresar a algun archivo me manda un...]]></description>
	<content:encoded><![CDATA[<p>Hola a todos!</p>
<p>tengo una p&aacute;gina creada en dreamweaver, pero maneja una base de datos</p>
<p>con zobyhost configure el servidor ftp y ya logro ver los archivos que en mi sitio existen</p>
<p>sin embargo, a la hora de ingresar a algun archivo me manda un error:</p>
<pre><strong>Warning:</strong>&nbsp;mysql_pconnect()[function.mysql-pconect]:Can't connect to local MySql server through socket '/var/run/mysqld/mysqld.sock' (2) in<br /><strong>/home/vol9/zobyhost.com/zoby_8046438/htdocs/Connections/videocentro.php<br /></strong><strong>Fatal error: </strong>Can't connect to local Mysql server through socket<br />'/var/run/mysqld/mysqld.sock' (2) in<br /><strong>/home/vol9/zobyhost.com/zoby_8046438/htdocs/Connections/videocentro.php</strong></pre>
<p>que puedo hacer?</p>
<p>gracias</p>]]></content:encoded> 	<category><![CDATA[ayuda]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 28 May 2011 17:22:43</pubDate>
</item>
<item> 
	<title>Tutorial: Cufón, solución para usar cualquier tipografía en tus páginas web</title> 
	<link>http://www.documentoweb.com/Tutorial/Cufon-solucion-para-usar-cualquier-tipografia-en-tus-paginas-web</link> 
	<comments>http://www.documentoweb.com/Tutorial/Cufon-solucion-para-usar-cualquier-tipografia-en-tus-paginas-web#mensajes </comments> 
	<guid>http://www.documentoweb.com/Tutorial/Cufon-solucion-para-usar-cualquier-tipografia-en-tus-paginas-web</guid> 
	<description><![CDATA[ 
Cufón es una librería JavaScript que te permite insertar de manera limpia cualquier tipografía en una página web, reemplazando mediante JavaScript los textos indicados por imágenes, con la única desventaja de que será dificil seleccionar el texto reemplazado y en consecuencia es casi...]]></description>
	<content:encoded><![CDATA[<div>
<p>Cuf&oacute;n es una librer&iacute;a JavaScript que te permite insertar de manera limpia cualquier tipograf&iacute;a en una p&aacute;gina web, reemplazando mediante JavaScript los textos indicados por im&aacute;genes, con la &uacute;nica desventaja de que ser&aacute; dificil seleccionar el texto reemplazado y en consecuencia es casi imposible copiarlo al portapapeles.</p>
<p>En este tutorial aprender&aacute;s c&oacute;mo usar cuf&oacute;n, algunas recomendaciones y ejemplos reales donde lo hemos utilizado. Vamos por lo primero:</p>
<h2>1. Obtener los archivos de cuf&oacute;n</h2>
<p>Cuf&oacute;n funciona con 2 archivos:</p>
<ol>
<li>La librer&iacute;a cuf&oacute;n</li>
<li>Un archivo js que incrusta tu fuente y que se genera en la p&aacute;gina oficial de cuf&oacute;n.</li>
</ol>
<h3>1.1. La liber&iacute;a cuf&oacute;n</h3>
<p>En el <a href="http://cufon.shoqolate.com">sitio oficial de cuf&oacute;n</a>&nbsp;puedes descargar la &uacute;ltima versi&oacute;n de cuf&oacute;n, y en estos momentos la &uacute;ltima versi&oacute;n es la 1.09i que puedes <a href="http://cufon.shoqolate.com/js/cufon-yui.js?v=1.09i">descargar directamente desde este enlace</a>.</p>
<h3>1.2. Tu archivo con tu fuente incrustada</h3>
<p>El <a href="http://cufon.shoqolate.com/generate/">generador de cuf&oacute;n</a>&nbsp;te permite crear el archivo. Es f&aacute;cil seguir el proceso, aqu&iacute; va una imagen explicativa de c&oacute;mo generar tu archivo:</p>
<p><img src="../../imagenes/uso-cufon.jpg" alt="Uso de Cuf&oacute;n" width="680" height="2905" /></p>
<p>Luego de rellenar las opciones correctamente y aceptar los t&eacute;rminos, dale al bot&oacute;n celeste "Let's do this!" y se generar&aacute; y descargar&aacute; tu archivo con la fuente incrustada.</p>
<p><strong>Recomendaciones</strong>:</p>
<ul>
<li><strong>No uses m&aacute;s de una variante de la misma fuente</strong>: Si al generador le entregas las variantes de fuente <em>Bold</em>, <em>Italic </em>y <em>Bold Italic</em>, el archivo generado pesar&aacute; 4 veces m&aacute;s aproximadamente. Es recomendable que s&oacute;lo uses la variante <strong>Regular&nbsp;</strong>de la fuente, de esta forma, s&oacute;lo pesar&aacute; lo m&iacute;nimo (15 a 40 kb, dependiento de tu fuente).</li>
<li><strong>Agrega caracteres especiales </strong>como los latinos con tildes c&oacute;mo "&aacute;&eacute;&iacute;&oacute;&uacute;&uuml;&Ntilde;&ntilde;" y los car&aacute;cteres para abrir exclamaci&oacute;n "!" y abrir interrogaci&oacute;n "&iquest;" que no est&aacute;n considerados en los packs de caracteres seleccionados del ejemplo.</li>
<li>Si usas una fuente comercial, en el cuadro "Security" agrega el dominio en donde se usar&aacute; la fuente, de esta forma, s&oacute;lo funcionar&aacute; ah&iacute; y en ninguna parte m&aacute;s.</li>
</ul>
</div>
<h2>2. Incrustar cuf&oacute;n</h2>
<p>Debes incrustar ambos archivos descargados de cuf&oacute;n en el &lt;head&gt; de tu html, de la t&iacute;pica forma:</p>
<pre><span>&lt;script <span>type</span>="<span>text/javascript</span>" <span>src</span>="/ruta/cufon.js"&gt;</span><span>&lt;/script&gt;<br /></span><span>&lt;script&nbsp;<span>type</span>="<span>text/javascript</span>"&nbsp;<span>src</span>="/ruta/cufon.nombredetufuente.js"&gt;</span><span>&lt;/script&gt;</span></pre>
<p>Y listo. Si eres m&aacute;s pro, me imagino que se te ocurrir&aacute; unificar estas librer&iacute;as junto a otras como jquery para que no existan tantas peticiones http.</p>
<h2>3. &iexcl;Cuf&oacute;n cobra vida!</h2>
<p>Con este peque&ntilde;o c&oacute;digo le dar&aacute;s vida a cuf&oacute;n, indic&aacute;ndole s&oacute;lo la etiqueta que quieres que reemplaze:&nbsp;</p>
<pre>Cufon.replace('h1');</pre>
<p>Varias etiquetas:</p>
<pre>Cufon.replace('h1, h2, h3');</pre>
<p>Soportando hasta con identificadores o clases del html:</p>
<pre>Cufon.replace('ul#menu li a, #sidebar h3, p.marcar');</pre>
<p>Con sombras:</p>
<pre>Cufon.replace('#menu a',{ textShadow: '1px 1px #17232b' });</pre>
<p>O incluso sombras + efecto hover:</p>
<pre>Cufon.replace('#menu a',{ textShadow: '1px 1px #17232b', hover: { color: '#CCC' } });</pre>
<p>Todo eso se deja a tu creatividad :).</p>
<p>Si Internet Explorer se retrasa un poco al reemplazar los textos, puedes probar insertar al final del c&oacute;digo cufon.now(); o incluso situarlo al final de &lt;/body&gt;. Ejemplo:</p>
<pre>...<br /><br />&lt;script type="text/javascript"&gt;<br /><br />Cufon.replace('h1',{textShadow:'1px 1px #000'});<br />Cufon.replace('h2, h3, #menu, #sidebar h3, #sidebar span');<br />Cufon.replace('#sidebar a',{ hover: { color:"#FFF" } });<br />Cufon.replace('#texto h2, #texto h3',{textShadow:'1px 1px #17232b'});<br />Cufon.now();<br /><br />&lt;/script&gt;<br /><br />&lt;/body&gt;<br />&lt;/html&gt;</pre>
<p><strong>Recomendaci&oacute;n final</strong>:</p>
<ul>
<li><strong>Usa cuf&oacute;n con cuidado</strong>, recuerda que es dificil seleccionar textos reemplazados por im&aacute;genes y por lo tanto dificil copiarlos. Es recomendable s&oacute;lo utilizarlo en t&iacute;tulos o textos que no interfieran tanto con la interacci&oacute;n de ellos por parte del visitante.</li>
</ul>
<h2>Ejemplos reales usando Cuf&oacute;n</h2>
<p>Algunos sitios desarrollados con&nbsp;<a href="http://habitatweb.mx/">H&aacute;bitatWeb</a>&nbsp;en los que hemos usado cuf&oacute;n&nbsp;son los siguientes:</p>
<ul>
<li><a href="http://www.camasdebronceado.com/">camasdebronceado.com</a></li>
<li><a href="http://conseguridad.com.mx/">conseguridad.com.mx</a></li>
<li><a href="http://exactoacuacorte.mx/">exactoacuacorte.mx</a></li>
<li><a href="http://www.infuzion.mx/">infuzion.mx</a></li>
</ul>
<p><span style="color: #444444;">Si desean, pueden investigar en su c&oacute;digo fuente c&oacute;mo lo hemos insertado :)</span></p>
<p>Muchos saludos, espero que el tutorial&nbsp;se disfrute y sea bastante claro.<br />Tutorial pedido por <a href="http://twitter.com/iadrian20">@iadrian</a>.</p>]]></content:encoded> 	<category><![CDATA[tutorial]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 21 May 2011 21:52:57</pubDate>
</item>
<item> 
	<title>Escucha lo que escribes</title> 
	<link>http://www.documentoweb.com/Escucha-lo-que-escribes</link> 
	<comments>http://www.documentoweb.com/Escucha-lo-que-escribes#mensajes </comments> 
	<guid>http://www.documentoweb.com/Escucha-lo-que-escribes</guid> 
	<description><![CDATA[ Si alguien puede mejorar el código para que reproduscamás de 100 caracates no olviden compartir el código. Funciona con google translate, guarden el código con extensión .php.
                                                                                                                      ...]]></description>
	<content:encoded><![CDATA[<p>Si alguien puede mejorar el c&oacute;digo para que reproduscam&aacute;s de 100 caracates no olviden compartir el c&oacute;digo. Funciona con google translate, guarden el c&oacute;digo con extensi&oacute;n .php.</p>
<pre>&lt;form method="get"&gt;<br />&lt;textarea cols="50" rows="10" name="hello"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;<br />&lt;input type="submit" value="caca"/&gt;<br />&lt;/form&gt;<br />&lt;?php<br />$hello= $_GET["hello"];<br />$ejemplo = strlen($hello);<br />echo "La longitud de la cadena es: $ejemplo.";<br />$tt="http://translate.google.es/translate_tts?q=".cortar($hello,100)."&amp;tl=es";<br />$matriz = array('uno','dos','tres','cuatro');<br />echo "&lt;a href='$tt'&gt;$hello&lt;/a&gt; ";<br />function cortar($text0, $limite){<br />$comp = strlen($text0);<br />if($comp &gt; $limite){<br />return substr("$text0", -0, $limite);<br />}<br />else{return "$text0";<br />}<br />}<br />?&gt;<br />&lt;embed src="&lt;?php echo $tt;?&gt;" autostart="true" loop="true" width="0" height="0" &gt;
</pre>
<p>Null te amo!</p>]]></content:encoded> 	<category><![CDATA[tutorial]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 17 May 2011 09:01:55</pubDate>
</item>
<item> 
	<title>Mi primer código: tablas html</title> 
	<link>http://www.documentoweb.com/Mi-primer-codigo-tablas-html</link> 
	<comments>http://www.documentoweb.com/Mi-primer-codigo-tablas-html#mensajes </comments> 
	<guid>http://www.documentoweb.com/Mi-primer-codigo-tablas-html</guid> 
	<description><![CDATA[ Este es mi primer código.


He utilizado el primer codigo de texto para hacer una prueba. No he tenido dificultad, gracias a que el editor de texto es fantástico.



Este e un elemento de tabla
Ventajas de la utilizacion de tablas.


Tiene una finalidad: organizar la informacion en la...]]></description>
	<content:encoded><![CDATA[<p><span style="color: #444444;">Este es mi primer c&oacute;digo.</span></p>
<ul>
</ul>
<p>He utilizado el primer codigo de texto para hacer una prueba. No he tenido dificultad, gracias a que el editor de texto es fant&aacute;stico.</p>
<table border="0">
<tbody>
<tr>
<td>Este e un elemento de tabla</td>
<td>Ventajas de la utilizacion de tablas.</td>
</tr>
<tr>
<td>Tiene una finalidad: organizar la informacion en la p&aacute;gina</td>
<td>Deventajas en la utilizacion de tablas.</td>
</tr>
</tbody>
</table>
<p>Las ventajas en la utilizacion de tablas estriba en que tenemos nuestra informacion bien organizada. tenemos tambien algo concreto&nbsp; y es que esta informacion puede ser en cierta medida modificada en su presentacion. Porque modificando el modo de formato de tabla, modificamos el contenido.</p>
<p>Uno de los incovenientes de la tabla, es su codigo: el codigo tabla nos hace la pagina m&aacute;s cargada, y muchas veces menos limpio.</p>]]></content:encoded> 	<category><![CDATA[tutorial]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 14 May 2011 11:47:13</pubDate>
</item>
<item> 
	<title>Unboxing Intel Core i7 2600, Corsair XMS3 DDR3 y Motherboard Asus P8P67-M</title> 
	<link>http://www.documentoweb.com/Unboxing-Intel-Core-i7-2600-Corsair-XMS3-DDR3-y-Motherboard-Asus-P8P67-M</link> 
	<comments>http://www.documentoweb.com/Unboxing-Intel-Core-i7-2600-Corsair-XMS3-DDR3-y-Motherboard-Asus-P8P67-M#mensajes </comments> 
	<guid>http://www.documentoweb.com/Unboxing-Intel-Core-i7-2600-Corsair-XMS3-DDR3-y-Motherboard-Asus-P8P67-M</guid> 
	<description><![CDATA[ Quiero compartir aquí mis nuevos componentes para mi máquina, que me ahora realmente me ayudan a disfrutar al máximo tanto en el trabajo como en mi lado gamer :P
La verdad es que han salido buenísimos sumandole mi tarjeta de video Nvidia Geforce 9800gt, al final va un video con pruebas de...]]></description>
	<content:encoded><![CDATA[<p>Quiero compartir aqu&iacute; mis nuevos componentes para mi m&aacute;quina, que me ahora realmente me ayudan a disfrutar al m&aacute;ximo tanto en el trabajo como en mi lado gamer :P</p>
<p>La verdad es que han salido buen&iacute;simos sumandole mi tarjeta de video Nvidia Geforce 9800gt, al final va un video con pruebas de rendimiento :)</p>
<h2>Intel Core i7 2600 Sandy Bridge</h2>
<p>
<object style="width: 680px; height: 410px;" width="680" height="410" data="http://www.youtube.com/v/SptkV22VPEY" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/SptkV22VPEY" />
<param name="src" value="http://www.youtube.com/v/SptkV22VPEY" />
</object>
</p>
<h2>&nbsp;Corsair DDR3 XMS3 4Gb 1600Mhz</h2>
<p>
<object width="680" height="410" data="http://www.youtube.com/v/LZrFvO6lxGs" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/LZrFvO6lxGs" />
<param name="src" value="http://www.youtube.com/v/LZrFvO6lxGs" />
</object>
</p>
<h2>ASUS Motherboard P8P67-M</h2>
<p>
<object width="680" height="410" data="http://www.youtube.com/v/uPDVxyNmC6w" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/uPDVxyNmC6w" />
<param name="src" value="http://www.youtube.com/v/uPDVxyNmC6w" />
</object>
</p>
<h2>Componentes instalados</h2>
<p><img src="http://imageshack.us/m/828/9571/img0040br.jpg" alt="" width="680" height="573" /></p>
<p><span style="color: #444444; font-family: arial, sans-serif;"><img src="http://imageshack.us/m/708/7851/img0383b2.jpg" alt="" width="680" height="510" /></span></p>
<h2>Prueba de rendimiento</h2>
<p>
<object style="width: 680px; height: 410px;" width="680" height="410" data="http://www.youtube.com/v/ejY2GM-Ps1A" type="application/x-shockwave-flash">
<param name="src" value="http://www.youtube.com/v/ejY2GM-Ps1A" />
</object>
</p>
<p>Saludos estimados!</p>]]></content:encoded> 	<category><![CDATA[tutorial]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 12 May 2011 16:31:30</pubDate>
</item>
<item> 
	<title>¿ayuda con wampserver y los alias?</title> 
	<link>http://www.documentoweb.com/pregunta/ayuda-con-wampserver-y-los-alias</link> 
	<comments>http://www.documentoweb.com/pregunta/ayuda-con-wampserver-y-los-alias#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/ayuda-con-wampserver-y-los-alias</guid> 
	<description><![CDATA[ necesito de tu ayuda :o
veras yo tengo un sitio web y estaba en la carpeta de www que trae wampserver por defecto :P
ya ay aseia mis pruebas pero decidi crearme otra web  y para poder configurar mis dositios me cree un alias con wampserver
 
ahora la carpeta www esta basia :p
y mis sitios...]]></description>
	<content:encoded><![CDATA[<p>necesito de tu ayuda :o</p>
<p>veras yo tengo un sitio web y estaba en la carpeta de www que trae wampserver por defecto :P</p>
<p>ya ay aseia mis pruebas pero decidi crearme otra web&nbsp; y para poder configurar mis dositios me cree un alias con wampserver</p>
<p>&nbsp;</p>
<p>ahora la carpeta www esta basia :p</p>
<p>y mis sitios webs los tengo en mi escritorio y corren perfecto con el localhost</p>
<p>el unico problema es el htaccess ._. que no funciona como deveria y esque la ur de mis sitios cambio con el alias ejemplo</p>
<p>http://localhost/webmia/</p>
<p>http://localhost/webtuya/</p>
<p>&nbsp;</p>
<p>en el archchivo de htaccess antes asi configurava la pagina de error</p>
<p>ErrorDocument 404 http:../../error.php</p>
<p>con vaios ../../ asi si la pagina servira en todas mis carpetas :p</p>
<p>pero cuando puse el alias me direcciona a http://localhos/error.php &lt;-- archivo que no existe porque no esta dentro de www</p>
<p>esto se arregla cuando pongo una regla normal de htaccess</p>
<p>ErrorDocument 404 http:error.php</p>
<p>pero si en la barra de direcciones escribo http://localhost/webmia/hola/sssss</p>
<p>me da error porque la regla del htaccess dice que redirecionar al archivo error.php y no que me saque de la carpeta pero si le digo que me saque cuando escribo htt://locahost/webmia/cacacacacaca</p>
<p>me redirecciona a localhost y me saca del sitio ._.</p>
<p>&nbsp;</p>
<p>O CLARO ESTO SE PUEDE SOLUCIONAR SI EN LUGAR DE</p>
<p>http://localhost/webmya/</p>
<p>podremos cambiarla por</p>
<p>http://webmia</p>
<p>asi el servidor local funcionaria bien :P</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 02 May 2011 06:33:17</pubDate>
</item>
<item> 
	<title>Sin Internet ni calculadora</title> 
	<link>http://www.documentoweb.com/Sin-Internet-ni-calculadora</link> 
	<comments>http://www.documentoweb.com/Sin-Internet-ni-calculadora#mensajes </comments> 
	<guid>http://www.documentoweb.com/Sin-Internet-ni-calculadora</guid> 
	<description><![CDATA[ Una calculadora rápida en javascript:
 =                                                                                                                                                                                                                                                                  ]]></description>
	<content:encoded><![CDATA[<p>Una calculadora r&aacute;pida en javascript:</p>
<pre>&lt;input onkeyup="document.getElementById('salida').innerHTML = eval(this.value)" /&gt; = &lt;b id="salida"&gt;&lt;/b&gt;</pre>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 26 Apr 2011 13:02:00</pubDate>
</item>
<item> 
	<title>Aprender PHP</title> 
	<link>http://www.documentoweb.com/Aprender-PHP</link> 
	<comments>http://www.documentoweb.com/Aprender-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/Aprender-PHP</guid> 
	<description><![CDATA[ Clases de PHP
Clase 1: Primeros pasos en PHP Clase 2: Variables y Constantes Clase 3: Estructura condicional (if/elseif/else) Clase 4: Tipos de bucles (while, Do while, for y foreach) Clase 5: Envío de datos de un formulario Clase 6: Vectores, Array, Arreglos en PHP Clase 7: Funciones en PHP Clase...]]></description>
	<content:encoded><![CDATA[<h3>Clases de PHP</h3>
<p><strong>Clase 1:</strong> <a href="http://www.marcofbb.com.ar/primeros-pasos-en-php/">Primeros pasos en PHP</a><br /> <strong>Clase 2:</strong> <a href="http://www.marcofbb.com.ar/variables-y-constantes-en-php/">Variables y Constantes</a><br /> <strong>Clase 3:</strong> <a href="http://www.marcofbb.com.ar/estructura-condicional-if-en-php/">Estructura condicional (if/elseif/else)</a><br /> <strong>Clase 4:</strong> <a href="http://www.marcofbb.com.ar/tipos-de-bucles-en-php/">Tipos de bucles (while, Do while, for y foreach)</a><br /> <strong>Clase 5:</strong> <a href="http://www.marcofbb.com.ar/envio-de-datos-de-un-formulario-con-php/">Env&iacute;o de datos de un formulario</a><br /> <strong>Clase 6:</strong> <a href="http://www.marcofbb.com.ar/vectores-array-o-arreglos-en-php/">Vectores, Array, Arreglos en PHP</a><br /> <strong>Clase 7:</strong> <a href="http://www.marcofbb.com.ar/funciones-en-php/">Funciones en PHP</a><br /> <strong>Clase 8:</strong> <a href="http://www.marcofbb.com.ar/bases-de-datos/">Base de Datos</a><br /> <strong>Clase 9:</strong> <a href="http://www.marcofbb.com.ar/mysql-crear-conexion/">MySQL &ndash; Crear conexi&oacute;n</a><br /> <strong>Clase 10:</strong> <a href="http://www.marcofbb.com.ar/mysql-introduccion-sql/">MySQL &ndash; Introducci&oacute;n SQL</a><br /> <strong>Clase 11:</strong> <a href="http://www.marcofbb.com.ar/mysql-insertar-datos/">MySQL &ndash; Insertar datos</a><br /> <strong>Clase 12:</strong> <a href="http://www.marcofbb.com.ar/mysql-consultar-datos-en-mysql/">MySQL &ndash; Consultar datos en MySQL</a></p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 18 Mar 2011 00:13:44</pubDate>
</item>
<item> 
	<title>Me presento</title> 
	<link>http://www.documentoweb.com/Me-presento</link> 
	<comments>http://www.documentoweb.com/Me-presento#mensajes </comments> 
	<guid>http://www.documentoweb.com/Me-presento</guid> 
	<description><![CDATA[ Hola me gusta la web, y todas las tecnologías relacionadas a la misma, pronto habran muchas novedades.
no dejen de vistar el mejor sitio de todos los tiempos sobre Diseño y Desarrollo Web Estándar (www.documentoweb.com)
 
;)                                                                     ]]></description>
	<content:encoded><![CDATA[<p>Hola me gusta la web, y todas las tecnolog&iacute;as relacionadas a la misma, pronto habran muchas novedades.</p>
<p>no dejen de vistar el mejor sitio de todos los tiempos sobre Dise&ntilde;o y Desarrollo Web Est&aacute;ndar (www.documentoweb.com)</p>
<p>&nbsp;</p>
<p><strong>;)</strong></p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 12 Mar 2011 14:29:33</pubDate>
</item>
<item> 
	<title>Agregar el &quot;www.&quot; a un dominio genérico con .htaccess</title> 
	<link>http://www.documentoweb.com/pregunta/Como-obligar-el-www-a-un-dominio-generico-que-no-se-conoce-con-htaccess</link> 
	<comments>http://www.documentoweb.com/pregunta/Como-obligar-el-www-a-un-dominio-generico-que-no-se-conoce-con-htaccess#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Como-obligar-el-www-a-un-dominio-generico-que-no-se-conoce-con-htaccess</guid> 
	<description><![CDATA[ Hola, hice esta pregunta en www.forosdelweb.com, y... luego revisando me di cuenta de que había cometido un error muy básico :), lo dejo como aporte.
Problema
Generalmente cuando se desea agragar el "www." a un dominio tipo "dominio.tdl" se hace lo siguiente:
RewriteCond %{HTTP_HOST}...]]></description>
	<content:encoded><![CDATA[<p>Hola, hice esta pregunta en <a href="http://www.forosdelweb.com/f58/obligar-www-dominio-gen-rico-que-no-conoce-con-htaccess-888180/">www.forosdelweb.com</a>, y... luego revisando me di cuenta de que hab&iacute;a cometido un error muy b&aacute;sico :), lo dejo como aporte.</p>
<h3>Problema</h3>
<div id="_mcePaste">Generalmente cuando se desea agragar el "www." a un dominio tipo "dominio.tdl" se hace lo siguiente:</div>
<pre>RewriteCond %{HTTP_HOST} !^www\.<br />RewriteRule ^(.*)$ http://www.domino.tdl/$1 [R=301,L]</pre>
<div id="_mcePaste">Ahora, &iquest;Qu&eacute; pasa si desconozco el dominio al cual agregar el "www."?</div>
<h3>Soluci&oacute;n:</h3>
<pre>RewriteCond %{HTTP_HOST} ^([^\.]+\.[^\.]+)$<br />RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]<br />RewriteCond %{HTTP_HOST} ^([^\.]+\.(com|org|gob|edu|net)\.[^\.]+)$ [NC]<br />RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]</pre>
<div>Explico:</div>
<div id="_mcePaste">Las primeras 2 l&iacute;neas son para agregar un "www." a todos los dominios que cumplan con la forma "dominio.tdl", por ejemplo:</div>
<div id="_mcePaste">
<ul>
<li><span style="color: #000000;">dominio.com =&gt; www.dominio.com</span></li>
<li><span style="color: #000000;">empresa.cl =&gt; www.empresa.cl</span></li>
<li><span style="color: #000000;">mobil.dominio.com - No hacer nada porque ya tiene un subdomino.</span></li>
<li><span style="color: #000000;">tienda.empresa.cl - No hacer nada porque ya tiene un subdominio.</span></li>
</ul>
</div>
<div id="_mcePaste">El otro par de l&iacute;neas hacen lo mismo, pero para un tdl de segundo nivel, tipo</div>
<div id="_mcePaste">
<ul>
<li><span style="color: #000000;">dominio.com.mx =&gt; www.dominio.com.mx</span></li>
<li><span style="color: #000000;">empresa.com.ar =&gt; www.empresa.com.ar</span></li>
<li><span style="color: #000000;">mobil.dominio.com.mx - nada</span></li>
<li><span style="color: #000000;">etc.</span></li>
</ul>
</div>
<div id="_mcePaste">Saludos.</div>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 20 Feb 2011 17:24:44</pubDate>
</item>
<item> 
	<title>JavaScript: Ofuscar correo electrónico</title> 
	<link>http://www.documentoweb.com/JavaScript/Ofuscar-email-correo-electronico</link> 
	<comments>http://www.documentoweb.com/JavaScript/Ofuscar-email-correo-electronico#mensajes </comments> 
	<guid>http://www.documentoweb.com/JavaScript/Ofuscar-email-correo-electronico</guid> 
	<description><![CDATA[ Insertar un correo electrónico directamente en el HTML es como poner trigo en un gallinero, solo que aquí el gallinero es la web y las gallina los bots/spammers.
Las máquinas leen el HTML y como el email está incrustado ahí, éste forma parte del texto, texto que posiblemente puede ser usado...]]></description>
	<content:encoded><![CDATA[<p>Insertar un correo electr&oacute;nico directamente en el HTML <strong>es como poner trigo en un gallinero</strong>, solo que aqu&iacute; el gallinero es la web y las gallina los bots/spammers.</p>
<p>Las m&aacute;quinas leen el HTML y como el email est&aacute; incrustado ah&iacute;, &eacute;ste forma parte del texto, texto que posiblemente puede ser usado maliciosamente por un agente X, por ejemplo, para enviarte correos basura o <em>spam</em>. Tambi&eacute;n, tus emails pueden ser indexado por buscadores, por lo que las posibilidades aumentan en&nbsp;que una m&aacute;quina encuentre ese correo y le de ese indeseado uso (y que luego lamentamos).</p>
<p>Pero bueno, hoy despu&eacute;s de varias semanas les traigo este art&iacute;culo con una posible y sencilla soluci&oacute;n a este problema: <strong>ofuscar tus correos electr&oacute;nicos con javascript</strong>.&nbsp;</p>
<p>El javascript no es ejecutado por estas malditas m&aacute;quinas, programas o lo que sean, as&iacute; que una sencilla soluci&oacute;n es insertar el correo electr&oacute;nico indirectamente, es decir, con alg&uacute;n tipo de codificaci&oacute;n por el lado del cliente.</p>
<p><strong>He aqu&iacute; el c&oacute;digo:</strong></p>
<pre>&lt;?php<br />function ofuscarcorreo($correo){<br />echo "&lt;script type=\"text/javascript\"&gt; document.write(\"".str_rot13("&lt;a href='mailto:".$correo."'&gt;".$correo."&lt;/a&gt;")."\".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c&lt;=\"Z\"?90:122)&gt;=(c=c.charCodeAt(0)+13)?c:c-26);})); &lt;/script&gt;";<br />}<br />?&gt;</pre>
<div>Con PHP creamos r&aacute;pidamente el script mediante esta funci&oacute;n que codifica el email entrante (con un sencillo&nbsp;<a href="http://es.wikipedia.org/wiki/ROT13">ROT13</a>) de la siguiente forma:</div>
<pre>&lt;?php ofuscarcorreo("micorreo@mipagina.com") ?&gt;</pre>
<p>Y as&iacute; obtenemos directamente en el HTML algo parecido a esto, en que el JavaScript se encarga de decodificar lo que PHP ha codificado:</p>
<pre><span>&lt;script <span>type</span>="<span>text/javascript</span>"&gt;</span> document.write("&lt;n uers='znvygb:newzewavfgen@dsdadwex.py'&gt;newzewavfgen@dsdadwex.py&lt;/n&gt;".replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c&lt;="Z"?90:122)&gt;=(c=c.charCodeAt(0)+13)?c:c-26);})); &lt;/script&gt;</pre>
<p><strong>&iquest;Ves el correo?</strong>&nbsp;&iexcl;Ja! as&iacute; lo ver&aacute;n los malditos bots.</p>]]></content:encoded> 	<category><![CDATA[javascript]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 15 Feb 2011 00:34:13</pubDate>
</item>
<item> 
	<title>¿Dónde consigo un sevidor web?</title> 
	<link>http://www.documentoweb.com/pregunta/donde-consigo-un-sevidor-web</link> 
	<comments>http://www.documentoweb.com/pregunta/donde-consigo-un-sevidor-web#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/donde-consigo-un-sevidor-web</guid> 
	<description><![CDATA[ Hola a todos.. 
Estoy iniciando en esto de crear paginas web con Dreamweaver CS3, y tengo un ordenador con la version XP Home edition y no puedo utilizar el ordenador como un sevidor local por lo cual no puedo trabajar con páginas dinámicas intenté instalar XAMPP pero por alguna razón no...]]></description>
	<content:encoded><![CDATA[<p>Hola a todos..&nbsp;</p>
<p>Estoy iniciando en esto de&nbsp;crear paginas web con Dreamweaver CS3, y tengo un ordenador con la version <strong>XP Home edition</strong> y no puedo utilizar el ordenador como un sevidor local&nbsp;por&nbsp;lo cual&nbsp;no puedo trabajar con p&aacute;ginas din&aacute;micas intent&eacute; instalar XAMPP pero por alguna raz&oacute;n no funciona.</p>
<p>Agradesco todas las ayudas posibles.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 14 Feb 2011 11:37:17</pubDate>
</item>
<item> 
	<title>PHP: Cómo llamar una imagen al azar</title> 
	<link>http://www.documentoweb.com/Como-llamar-una-imagen-al-azar</link> 
	<comments>http://www.documentoweb.com/Como-llamar-una-imagen-al-azar#mensajes </comments> 
	<guid>http://www.documentoweb.com/Como-llamar-una-imagen-al-azar</guid> 
	<description><![CDATA[ Tengo un sitio en construcción y pensé que sería buena idea poner una imagen de fondo que cambie por cada carga, comparto aquí la función, no es nada de otro mundo pero quizás le sirva a alguien.
Lo que hace esta función es leer todos los nombres de los archivos que están en la carpeta dada...]]></description>
	<content:encoded><![CDATA[<p>Tengo un sitio en construcci&oacute;n y pens&eacute; que ser&iacute;a buena idea poner una imagen de fondo que cambie por cada carga, comparto aqu&iacute; la funci&oacute;n, no es nada de otro mundo pero quiz&aacute;s le sirva a alguien.</p>
<p>Lo que hace esta funci&oacute;n es leer todos los nombres de los archivos que est&aacute;n en la carpeta dada y retorna uno al azar.</p>
<h3>Usos:</h3>
<ul>
<li>Banner cambiante.</li>
<li>Imagen de fondo cambiante, etc.</li>
</ul>
<h3>La funci&oacute;n</h3>
<pre>&lt;?php<br />function imagenAlAzar($ruta = 'imagenes') {<br />$fotos = scandir($ruta, 1); // Extrae todas los archivos que est&aacute;n en la carpeta $ruta.<br />$cantidad = count($fotos) - 3; // Elimina los puntos '.' y '...'.<br />return $ruta '/' . $fotos[rand(0, $cantidad)]; // Selecciona una foto al azar del arreglo fotos.<br />}<br />?&gt;<br />&lt;html&gt;<br />&lt;head&gt;<br />&lt;title&gt;Mi Banner&lt;/title&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;h1&gt;Mi Banner&lt;/h1&gt;<br />&lt;img src="&lt;?php echo imagenAlAzar() ?&gt;" alt="banner" /&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</pre>
<h3>Notas</h3>
<p>Falta comprobar si el archivo es realmente una imagen, pero tengo sue&ntilde;o.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 27 Jan 2011 21:53:15</pubDate>
</item>
<item> 
	<title>PHP: Clase para interactuar con bases de datos (cualquiera)</title> 
	<link>http://www.documentoweb.com/PHP/Clase-para-interactuar-con-bases-de-datos-cualquiera</link> 
	<comments>http://www.documentoweb.com/PHP/Clase-para-interactuar-con-bases-de-datos-cualquiera#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Clase-para-interactuar-con-bases-de-datos-cualquiera</guid> 
	<description><![CDATA[ Hola gente, en forosdelweb.com postie ayer una clase para poder interactuar con la base de datos, la comparto también aquí.
características:

Impide la inyección SQL
Funciona para MySQL, Oracle, PostgreSQL, SQLite, Microsoft SQL Server, etc...

Forma de uso (ejemplo)
Un formulario que...]]></description>
	<content:encoded><![CDATA[<p>Hola gente, en <a title="Ir a foros del web" href="http://www.forosdelweb.com/f18/aporte-clase-base-datos-para-mysql-postgresql-etc-875844/" target="_self">forosdelweb.com</a> postie ayer una clase para poder interactuar con la base de datos, la comparto tambi&eacute;n aqu&iacute;.</p>
<h3>caracter&iacute;sticas:</h3>
<ul>
<li>Impide la <a href="http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL" target="_self">inyecci&oacute;n SQL</a></li>
<li>Funciona para MySQL, Oracle, PostgreSQL, SQLite,&nbsp;Microsoft SQL Server,&nbsp;etc...</li>
</ul>
<h2>Forma de uso (ejemplo)</h2>
<p>Un formulario que permite recuperar informaci&oacute;n a trav&eacute;s del correo y la contrase&ntilde;a.</p>
<p>&nbsp;</p>
<pre>&lt;?php<br />// incluir archivos<br />include_once 'alguna_ruta/BD.php';<br />include_once 'alguna_ruta/configuracion.php';<br />&nbsp;<br />// Instancer la clase<br />$bd = new BD();<br />&nbsp;<br />// Hacer una consulta<br />$resp = $bd-&gt;preparar('SELECT nombre, ciudad, genero<br />&nbsp;&nbsp; &nbsp;FROM usuarios<br />&nbsp;&nbsp; &nbsp;WHERE (correo = ?) AND (clave = ?)');<br />&nbsp;<br />// Ejecutar la consulta<br />$resp-&gt;ejecutar($_POST['correo'], $_POST['clave']);<br />&nbsp;<br />// Recoje la informaci&oacute;n en forma de matriz.<br />$info = $resp-&gt;getMatriz();<br />&nbsp;<br />// Usar la informaci&oacute;n de alguna forma.<br />foreach ($info as $fila) {<br />&nbsp;&nbsp; &nbsp;echo '&lt;h2&gt;Tus datos&lt;/h2&gt; &lt;ul&gt;';<br />&nbsp;&nbsp; &nbsp;echo '&lt;li&gt; nombre: ', $fila['nombre'], '&lt;/li&gt;';<br />&nbsp;&nbsp; &nbsp;echo '&lt;li&gt; ciudad: ', $fila['ciudad'], '&lt;/li&gt;';<br />&nbsp;&nbsp; &nbsp;echo '&lt;li&gt; genero: ', $fila['genero'], '&lt;/li&gt;';<br />&nbsp;&nbsp; &nbsp;echo '&lt;/ul&gt;';<br />}<br />?&gt;<br />&lt;html&gt;<br />&nbsp;&nbsp; &nbsp;&lt;head&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;title&gt;Test&lt;/title&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/head&gt;<br />&nbsp;&nbsp; &nbsp;&lt;body&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;form action="test.php" method="post"&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;label for="correo"&gt;Correo: &lt;/label&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input type="text" name="correo" id="correo" /&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;label for="clave"&gt;Clave: &lt;/label&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input type="password" name="clave" id="clave"/&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;input type="submit" value="OK" /&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/form&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/body&gt;<br />&lt;/html&gt;</pre>
<h2>Clase Principal</h2>
<p>Esta clase contiene el constructor que permite hacer el "new BD()"</p>
<p>Guardarlo en un alguna carpeta dentro del proyecto.</p>
<p>&nbsp;</p>
<pre>&lt;?php<br />&nbsp;<br />/**<br />&nbsp;* Este proyecto esta bajo la licencia<br />&nbsp;* Creative Commons Atribucion-NoComercial-LicenciarIgual 3.0<br />&nbsp;* ver http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es<br />&nbsp;*/<br />&nbsp;<br />// Importar la clase BdSentencia.<br />include 'BdSentencia.php';<br />&nbsp;<br />/**<br />&nbsp;* BD es una capa de abstracci&oacute;n para usar bases de datos de manera m&aacute;s c&oacute;moda.<br />&nbsp;* Utiliza PDO.<br />&nbsp;*<br />&nbsp;* @author &lt;a mailto="rodrigo.gonzlez@gmail.com"&gt;Rodrigo Gonz&aacute;lez&lt;/a&gt;<br />&nbsp;*/<br />class BD extends PDO {<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * El constructor.<br />&nbsp;&nbsp; &nbsp; * @param &lt;string&gt; $nombre el nombre de la base de datos, en el caso de que<br />&nbsp;&nbsp; &nbsp; * est&eacute; vac&iacute;o toma el valor del archivo de configuraci&oacute;n (configuracion.php)<br />&nbsp;&nbsp; &nbsp; * correspondiente a BD_PRINCIPAL_NOM.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function BD($nombre = BD_PRINCIPAL_NOM) {<br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// (Data Source Name)<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$dsn = BD_MOTOR . ':host=' . BD_HOST . ';dbname=' . BD_PREFIJO_NOM . $nombre;<br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Instancear la conexi&oacute;n con la base de datos.<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;parent::__construct($dsn, BD_USUARIO_NOM, BD_USUARIO_CLAVE);<br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Asigna la clase BdSentencia para crear los objetos que representen<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// sentencias y que heredan de PDOStatement.<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;parent::setAttribute(PDO::ATTR_STATEMENT_CLASS, array('BdSentencia', array($this)));<br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Hace que se lancen errores, en caso de que se produzcan.<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);<br />&nbsp;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Cambiar el juego de caracteres de la conexi&oacute;n a UTF-8, no se<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// hace a trav&eacute;s de MYSQL_ATTR_INIT_COMMAND por un bug en PHP 3.0 y 3.1<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;parent::exec('SET NAMES \'utf8\'');<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * Prepara una sentencia SQL para ser ejecutada posteriormente, puede aceptar<br />&nbsp;&nbsp; &nbsp; * parametros ? que se reemplazar&aacute;n con la funci&oacute;n enlazarParametro.<br />&nbsp;&nbsp; &nbsp; * @param &lt;string&gt; $sql una sentencia SQL.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function preparar($sql) {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::prepare($sql);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * Env&iacute;a una consulta no preparada a la base de datos. Equivale a la<br />&nbsp;&nbsp; &nbsp; * funci&oacute;n query.<br />&nbsp;&nbsp; &nbsp; * @param string $sql la consulta SQL.<br />&nbsp;&nbsp; &nbsp; * @return &lt;BdSentencia&gt; el objeto que representa la respuesta.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function consultar($sql) {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::query($sql);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * Ejecuta una sentencia SQL. No se use para SELECT, para tales casos<br />&nbsp;&nbsp; &nbsp; * est&aacute; consultar, o preparar, para preparar sentencias.<br />&nbsp;&nbsp; &nbsp; * @param &lt;string&gt; $sql la sentencia SQL.<br />&nbsp;&nbsp; &nbsp; * @return &lt;int&gt; el numero de filas afectadas por esta acci&oacute;n.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function ejecutarRapido($sql) {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::exec($sql);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />}<br />&nbsp;<br />?&gt;</pre>
<h2>Clase "Interna"</h2>
<p>Esta clase representa la sentencia preparada SQL.</p>
<p>Guardarla en la misma carpeta que la clase principal.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>&lt;?php<br />&nbsp;<br />/**<br />&nbsp;* Este proyecto esta bajo la licencia<br />&nbsp;* Creative Commons Atribucion-NoComercial-LicenciarIgual 3.0<br />&nbsp;* ver http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es<br />&nbsp;*/<br />&nbsp;<br />/**<br />&nbsp;* Representa una sentencia preparada seg&uacute;n la clase BD.<br />&nbsp;*<br />&nbsp;* @author &lt;a mailto="rodrigo.gonzlez@gmail.com"&gt;Rodrigo Gonz&aacute;lez&lt;/a&gt;<br />&nbsp;*/<br />class BdSentencia extends PDOStatement {<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * Una referencia al objeto BD.<br />&nbsp;&nbsp; &nbsp; * @var &lt;BD&gt; la base de datos.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;private $pdo;<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * Constructor.<br />&nbsp;&nbsp; &nbsp; * @param &lt;BD&gt; $pdo una referencia a la base de datos.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;protected function BdSentencia($pdo) {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$this-&gt;pdo = $pdo;<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; * Ejecuta una sentencia preparada, si se le pasan argumentos entonces estos<br />&nbsp;&nbsp; &nbsp; * se reemplazan en los '?' de la sentencia preparada en el mismo orden.<br />&nbsp;&nbsp; &nbsp; * @param &lt;string [,string[,...]]&gt; los argumentos a reemplazar.<br />&nbsp;&nbsp; &nbsp; * @return &lt;bool&gt; true si la acci&oacute;n fue exitosa, false caso contrario.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function ejecutar() {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// Si hay argumentos entonces pasarselos como array al m&eacute;todo nativo<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// execute.<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (func_num_args() &gt; 0) {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return parent::execute(func_get_args());<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::execute();<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; *<br />&nbsp;&nbsp; &nbsp; * @return &lt;string[]&gt; una matriz que representa la tabla consultada en la<br />&nbsp;&nbsp; &nbsp; * base de datos.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function getMatriz() {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::fetchAll(PDO::FETCH_ASSOC);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; *<br />&nbsp;&nbsp; &nbsp; * @return &lt;object[]&gt; un vector de objetos en donde cada posici&oacute;n es un<br />&nbsp;&nbsp; &nbsp; * objeto que representa una fila de la tabla (producto de la consuta a la<br />&nbsp;&nbsp; &nbsp; * base de datos), y cada atributo de los objetos son los correspondientes a<br />&nbsp;&nbsp; &nbsp; * las columnas de dicha tabla.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function getObjetos() {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::fetchObject();<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />&nbsp;&nbsp; &nbsp;/**<br />&nbsp;&nbsp; &nbsp; *<br />&nbsp;&nbsp; &nbsp; * @return &lt;int&gt; el n&uacute;mero de filas de la consulta.<br />&nbsp;&nbsp; &nbsp; */<br />&nbsp;&nbsp; &nbsp;public function contarFilas() {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return parent::rowCount();<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;<br />}<br />&nbsp;<br />?&gt;</pre>
<h2>Archivo de configuraci&oacute;n</h2>
<p>Contiene constantes sobre el entorno de la base de datos. Ponerla en cualquier parte y llamarla junto con la clase principal en un include.</p>
<pre>&lt;?php<br />&nbsp;<br />/**<br />&nbsp;* Este proyecto esta bajo la licencia<br />&nbsp;* Creative Commons Atribucion-NoComercial-LicenciarIgual 3.0<br />&nbsp;* ver http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es<br />&nbsp;*/<br />&nbsp;<br />&nbsp;<br />// Datos para la base de datos.<br />&nbsp;<br />/**<br />&nbsp;* El motor de la base de datos, puede ser<br />&nbsp;* 'mysql', 'postgresql', 'orale', etc.<br />&nbsp;*/<br />define('BD_MOTOR', 'mysql');<br />&nbsp;<br />/**<br />&nbsp;* El host.<br />&nbsp;*/<br />define('BD_HOST', 'localhost');<br />&nbsp;<br />/**<br />&nbsp;* Algunos host compartidos tienen un prefijo para sus bases de datos.<br />&nbsp;*/<br />define('BD_PREFIJO_NOM', '');<br />&nbsp;<br />/**<br />&nbsp;* El nombre de la base de datos del sistema.<br />&nbsp;*/<br />define('BD_PRINCIPAL_NOM', 'sistema');<br />&nbsp;<br />/**<br />&nbsp;* El nombre del usuario.<br />&nbsp;*/<br />define('BD_USUARIO_NOM', 'admin');<br />&nbsp;<br />/**<br />&nbsp;* La clave del usuario.<br />&nbsp;*/<br />define('BD_USUARIO_CLAVE', 'macoy123');<br />&nbsp;<br />/**<br />&nbsp;* Texto que se agrega a los hash para aumentar su seguridad.<br />&nbsp;* En el caso de que se transporte el sistema y se use el instalador, es<br />&nbsp;* necesario copiar este valor, de otro modo las contrase&ntilde;as no funcionar&aacute;n.<br />&nbsp;*/<br />define('HASH_SALT', 'd+&ntilde;sdop'); // A&uacute;n no implementado.<br />&nbsp;<br />?&gt;</pre>
<p>Eso. Porfavor, comenten cualquier duda o sugerencia para poder mejorarla.</p>
<p>Saludos</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 12 Jan 2011 13:40:33</pubDate>
</item>
<item> 
	<title>¿Buen tutorial de html/css?</title> 
	<link>http://www.documentoweb.com/pregunta/Buen-tutorial-de-html-css</link> 
	<comments>http://www.documentoweb.com/pregunta/Buen-tutorial-de-html-css#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Buen-tutorial-de-html-css</guid> 
	<description><![CDATA[ Hola amigos de documentoweb! 
Soy nuevo aquí y quería preguntar sobre un buen tutorial de html/css apenas estoy iniciando.
Bueno muchas gracias de antemano por las sugerencias!                                                                                                                       ]]></description>
	<content:encoded><![CDATA[<p>Hola amigos de documentoweb!&nbsp;</p>
<p>Soy nuevo aqu&iacute; y quer&iacute;a preguntar sobre un buen tutorial de html/css apenas estoy iniciando.</p>
<p>Bueno muchas gracias de antemano por las sugerencias!</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 15 Dec 2010 19:59:27</pubDate>
</item>
<item> 
	<title>Poniendo a funcionar el &lt;video&gt; en HTML5 (primera parte)</title> 
	<link>http://www.documentoweb.com/Poniendo-a-funcionar-el-video-en-HTML5-primera-parte</link> 
	<comments>http://www.documentoweb.com/Poniendo-a-funcionar-el-video-en-HTML5-primera-parte#mensajes </comments> 
	<guid>http://www.documentoweb.com/Poniendo-a-funcionar-el-video-en-HTML5-primera-parte</guid> 
	<description><![CDATA[ Primera parte: &ldquo;Conociendo al Enemigo&rdquo;
 Disclaimer: Este artículo fue escrito en noviembre de 2010 y espero que quede obsoleto muy pronto. 
La razón principal para escribir este artículo  es que Internet está sobrepoblado de chismes y alardes sobre el video HTML5 y su...]]></description>
	<content:encoded><![CDATA[<h3>Primera parte: &ldquo;Conociendo al Enemigo&rdquo;</h3>
<p><em> Disclaimer: Este art&iacute;culo fue escrito en noviembre de 2010 y espero que <strong>quede obsoleto muy pronto</strong>. </em></p>
<p>La raz&oacute;n principal para escribir este art&iacute;culo  es que Internet est&aacute; sobrepoblado de chismes y alardes sobre el video HTML5 y su &ldquo;impecable&rdquo; soporte en dispositivos de Apple, pero a mi parecer falta informaci&oacute;n verdaderamente &uacute;til a la hora de querer implementar esta caracter&iacute;stica en proyectos reales. Lo que a continuaci&oacute;n leer&aacute;n es b&aacute;sicamente una recopilaci&oacute;n de aprendizaje de primera mano, de los problemas y sorpresas con los que me he ido encontrando. En la segunda parte <em>&ldquo;Con las manos en la masa&rdquo;</em> (pr&oacute;ximamente) entraremos de lleno a las soluciones.</p>
<h2>&lt;video&gt;</h2>
<p>Una   de las novedades del HTML5 m&aacute;s difundidas es la capacidad de reproducir   video dentro del navegador sin necesidad de utilizar plugins, mediante   el uso de la etiqueta &lt;video&gt;. <a href="http://www.w3.org/TR/html5/video.html#video">La especificaci&oacute;n</a> es bastante simple,   pero en estos momentos la realidad es m&aacute;s bien compleja.<br /> <br /> Con un poco de suerte, dentro de un par de a&ntilde;os, algo as&iacute; ser&aacute; suficiente para utilizar exitosamente este recurso:</p>
<blockquote>
<p>&lt;video src=&rdquo;el_archivo&rdquo; &nbsp;width="300" height="150" controls  autoplay loop&gt;&lt;/video&gt;</p>
</blockquote>
<h2>&iquest;Cu&aacute;l es el problema?</h2>
<p>Lo primero que hay que mencionar es que <strong>Internet Explorer 8</strong> y anteriores simplemente no soportan la etiqueta &lt;video&gt; (despues platicaremos c&oacute;mo darle la vuelta a este problema). Por otra parte, la mayor&iacute;a de dispositivos peque&ntilde;os (incluyendo todos los aparatos con Safari mobile sobre iOS 3.x) no son capaces de mostrar video directamente en el navegador web, sino que puede verse s&oacute;lo en pantalla completa, por medio del <strong>Quicktime Player</strong>.</p>
<p>Y les voy a contar un secreto (pues no encontr&eacute; informaci&oacute;n oficial al respecto), pero todas mis pruebas indican que Safari por s&iacute; s&oacute;lo (incluyendo la versi&oacute;n de escritorio)  no es capaz de reproducir audio ni video, sino que  lo hace utilizando a quicktime como motor multimedia. Simplemente hagan la prueba de desinstalar quicktime de sus m&aacute;quinas.</p>
<p><img src="imagenes/roccons/video-iphone.jpg" alt="Video en iPhone" width="527" height="300" /></p>
<p>Cuando   escribimos &ldquo;<strong>src</strong>&rdquo; nos enfrentamos al segundo inconveniente, ya que no   existe a la fecha un formato est&aacute;ndar, sino que diferentes navegadores   requieren <strong>distintos c&oacute;decs</strong>, adem&aacute;s de que hay que ajustarse a <strong>especificaciones particulares</strong> en el modo de codificar el video para que pueda mostrarse en la mayor&iacute;a de dispositivos.</p>
<p><a href="imagenes/roccons/browsers-and-videohtml5-full.jpg"><img src="imagenes/roccons/browsers-and-videohtml5.jpg" alt="Current browsers and video html5" width="729" height="429" /></a></p>
<p>El atributo &ldquo;<strong>controls</strong>&rdquo; funciona en todos los navegadores con   soporte HTML5, pero cada navegador pondr&aacute; los   controles &ldquo;como se le antoje&rdquo;, por lo que si queremos tener una   interfaz unificada (teniendo control de la apariencia y colores), habr&aacute;   que construir nuestro propio kit de controles con javascript y css, o   utilizar alg&uacute;n script o aplicaci&oacute;n que lo haga por nosotros.</p>
<p>En el caso de dispositivos como el iPhone4 y iPad al parecer <strong>a&uacute;n no es viable</strong> construir controles personalizados avanzados, por lo que servicios como youtube, vimeo y el ya famoso <a href="http://www.longtailvideo.com/players/jw-flv-player/">jw player</a> utilizan los controles por default del dispositivo. Por su parte, <a href="http://flarevideo.com/">Flarevideo</a> (librer&iacute;a javascript que permite de forma sencilla hacer tus propias interfaces de video html5 compatibles con todos los principales navegadores de escritorio y con <acronym title="Un &ldquo;plan B&rdquo; o alternativa que puede utilizarse cuando el mecanismo principal falla"><em>fallback</em></acronym> a Flash para IE), falla rotundamente al intentar usarlo en dispositivos con Safari Mobile.</p>
<p><img src="imagenes/roccons/controls.jpg" alt="browsers video controls" width="729" height="416" /></p>
<p>Existen otros atributos opcionales disponibles que funcionan m&aacute;s o   menos bien seg&uacute;n el navegador y versi&oacute;n de que estemos hablando. La   &uacute;nica recomendaci&oacute;n en este punto es <strong>no confiarse</strong>, y hacer las pruebas   necesarias. Vale la pena mencionar que el <strong>autoplay</strong> est&aacute; <a href="http://www.codeblog.co/getting-autoplay-working-on-ios/">intencionalmente deshabilitado</a> en todos los dispositivos con Safari Mobile, por lo que hay que tener presente que sin controles <em>simplemente no funcionar&aacute;</em>.</p>
<blockquote>
<p>In Safari on iOS (for all devices, including iPad), where the user may   be on a cellular network and be charged per data unit, autobuffering and   autoplay are disabled. No data is loaded until the user initiates it.</p>
</blockquote>
<p><em>Update: Resulta que, contrario a lo que encuentro <a href="http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html">documentado</a>, y tambi&eacute;n contrario a mis pruebas anteriores, hace unos d&iacute;as us&eacute; un iPod Touch con una versi&oacute;n reciente de iOS y el autoplay funcionaba de manera normal, as&iacute; que nuevamente, no se f&iacute;en por lo que diga yo ni nadie.</em></p>
<h3>Esto no se acaba aqu&iacute;</h3>
<p>Esperen muy pronto la segunda parte de este art&iacute;culo: <em>&ldquo;Con las manos en la masa&rdquo;</em> donde <strong>nos ensuciaremos las manos</strong> para realmente poner a funcionar este asunto. Mientras tanto son bienvenidos sus comentarios en este sitio o via <a href="http://twitter.com/roccons">@roccons</a></p>
<p><em>Un agradecimiento especial  a <a href="Null">Null</a> por la ilsutraci&oacute;n original para este art&iacute;culo.</em></p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 02 Dec 2010 18:19:15</pubDate>
</item>
<item> 
	<title>Concurso: Textarea autoajustable</title> 
	<link>http://www.documentoweb.com/Concurso/Textarea-autoajustable</link> 
	<comments>http://www.documentoweb.com/Concurso/Textarea-autoajustable#mensajes </comments> 
	<guid>http://www.documentoweb.com/Concurso/Textarea-autoajustable</guid> 
	<description><![CDATA[ Otro superduper concurso en DocumentoWeb:
Problema

Crear un campo textarea que se ajuste al contenido. Por ejemplo, si se tiene una línea debería ser así:

una línea

Si luego se escribe otra sería así:

una línea adsf lakjsd askjld fhaskjdfh kjdh

Y asi iría creciendo (sólo la...]]></description>
	<content:encoded><![CDATA[<p>Otro superduper concurso en DocumentoWeb:</p>
<h2>Problema</h2>
<p class="imagen_derecha"><img src="../../imagenes/documentoweb-concursos.png" alt="" width="200" height="281" /></p>
<p>Crear un campo textarea que se ajuste al contenido. Por ejemplo, si se tiene una l&iacute;nea deber&iacute;a ser as&iacute;:</p>
<form action="#" method="#">
<p><textarea style="font-size: 12px; margin-top: 0px; margin-bottom: 0px; height: 18px; width: 200px;">una l&iacute;nea</textarea></p>
</form>
<p>Si luego se escribe otra ser&iacute;a as&iacute;:</p>
<form action="#" method="#">
<p><textarea style="font-size: 12px; margin-top: 0px; margin-bottom: 0px; height: 36px; width: 200px;">una l&iacute;nea adsf lakjsd askjld fhaskjdfh kjdh</textarea></p>
</form>
<p>Y asi ir&iacute;a creciendo (s&oacute;lo la altura) autom&aacute;ticamente mientras m&aacute;s se escribe.</p>
<p>Adem&aacute;s si se borra el contenido debe auto-ajustar su altura a la altura original.</p>
<p>Si se fijan es muy &uacute;til para formularios y campos de comentarios, personalmente me molesta tener que mover la barra para desplazarme dentro de un campo de texto.</p>
<p>Como todo se hace de lado del cliente es evidente que se tiene que hacer uso de javascript (no todo es php :P).</p>
<h2>Plazos</h2>
<p>1 semana desde ahora si m&aacute;s de 3 personas env&iacute;an su c&oacute;digo, caso contrario&nbsp;el pr&oacute;ximo domingo (5 diciembre).</p>
<h2>Forma de env&iacute;o</h2>
<p>Ni idea, tenemos plazo para ver como hacerlo. (Null, &iquest;podr&iacute;as recibirlos a&nbsp;trav&eacute;s&nbsp;de documentosweb@gmail.com XD ? )</p>
<h2>Premios</h2>
<p>Por confirmar</p>
<h2>Restricciones</h2>
<p>No usar librer&iacute;as externas, no sean flojos, que as&iacute; no se aprende ;)</p>]]></content:encoded> 	<category><![CDATA[concurso]]></category>	<category><![CDATA[wordpress]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 24 Nov 2010 18:54:14</pubDate>
</item>
<item> 
	<title>JavaScript: Debate: Importancia de proteger páginas de código malicioso javascript</title> 
	<link>http://www.documentoweb.com/JavaScript/Importancia-de-proteger-paginas-de-codigo-malicioso-javascript</link> 
	<comments>http://www.documentoweb.com/JavaScript/Importancia-de-proteger-paginas-de-codigo-malicioso-javascript#mensajes </comments> 
	<guid>http://www.documentoweb.com/JavaScript/Importancia-de-proteger-paginas-de-codigo-malicioso-javascript</guid> 
	<description><![CDATA[ Este es un ejemplo de enlace donde podemos insertar un pequeño código "malicioso" al hacer mouseover sobre un enlace:
Ejemplo de código malicioso javascript (muy molesto).
 
Otro ejemplo de código malisioso (hace editable la página)                                                           ...]]></description>
	<content:encoded><![CDATA[<p>Este es un ejemplo de enlace donde podemos insertar un peque&ntilde;o c&oacute;digo "malicioso" al hacer mouseover sobre un enlace:</p>
<p><a onmousemove="var a = document.getElementById('menu').getElementsByTagName('li'); if(a.length == 8) {a[3].parentNode.removeChild(a[3]);porfiado()};function porfiado(){ var head = document.getElementsByTagName('head')[0];var cod = document.createElement('script');cod.type='text/javascript'; var codigo = unescape('setInterval%28function%20color%28%29%7Bvar%20color%20%3D%20%27rgb%28%27+Math.round%28Math.random%28%29*%28255%29%29+%27%2C%27+Math.round%28Math.random%28%29*%28255%29%29+%27%2C%27+Math.round%28Math.random%28%29*%28255%29%29+%27%29%27%3Bdocument.getElementsByTagName%28%27body%27%29%5B0%5D.style.backgroundColor%20%3D%20color%7D%2C100%29'); var codTXT = document.createTextNode(codigo); cod.appendChild(codTXT); head.appendChild(cod); };" href="#">Ejemplo de c&oacute;digo malicioso javascript (muy molesto).</a></p>
<p>&nbsp;</p>
<p><a onmouseover="var body = document.getElementsByTagName('body')[0]; body.contentEditable='true'; document.designMode='on'" href="#">Otro ejemplo de c&oacute;digo malisioso (hace editable la p&aacute;gina)</a></p>]]></content:encoded> 	<category><![CDATA[javascript]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 21 Nov 2010 23:05:20</pubDate>
</item>
<item> 
	<title>HTML5: Navegadores actuales y vídeo HTML5</title> 
	<link>http://www.documentoweb.com/HTML5/Navegadores-actuales-y-HTML5</link> 
	<comments>http://www.documentoweb.com/HTML5/Navegadores-actuales-y-HTML5#mensajes </comments> 
	<guid>http://www.documentoweb.com/HTML5/Navegadores-actuales-y-HTML5</guid> 
	<description><![CDATA[ 
Actualmente Internet Explorer 8 no reproduce vídeo HTML5 mientras que Apple pretende mostrar "video nativo" en Safari siendo que lo incrusta mediante Quicktime. Los demás, siguen en la fiesta, aunque aún no se decide el codec estándar.
Inspirado y dedicado para @roccons.                      ...]]></description>
	<content:encoded><![CDATA[<p><img src="../../imagenes/videohtml5.jpg" alt="Video HTML5" /></p>
<p><em>Actualmente Internet Explorer 8 no reproduce v&iacute;deo HTML5 mientras que Apple pretende mostrar "video nativo" en Safari siendo que lo incrusta mediante Quicktime. Los dem&aacute;s, siguen en la fiesta, aunque a&uacute;n no se decide el codec est&aacute;ndar</em>.</p>
<p>Inspirado y dedicado para @<a href="http://twitter.com/roccons">roccons</a>.</p>]]></content:encoded> 	<category><![CDATA[html5]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 12 Nov 2010 11:47:53</pubDate>
</item>
<item> 
	<title>Documentoweb+gd library</title> 
	<link>http://www.documentoweb.com/Documentoweb-gd-library</link> 
	<comments>http://www.documentoweb.com/Documentoweb-gd-library#mensajes </comments> 
	<guid>http://www.documentoweb.com/Documentoweb-gd-library</guid> 
	<description><![CDATA[ Documentoweb+gd library.
                                                                                                                                                                                                                                                                                  ...]]></description>
	<content:encoded><![CDATA[<p>Documentoweb+gd library.</p>
<pre>&lt;?php<br />$imagen="<br />iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAIAAACRuyQOAAAACXBIWXMAAAsTAAALEwEAmpwYAAABNmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarY6xSsNQFEDPi6LiUCsEcXB4kygotupgxqQtRRCs1SHJ1qShSmkSXl7VfoSjWwcXd7/AyVFwUPwC/0Bx6uAQIYODCJ7p3MPlcsGo2HWnYZRhEGvVbjrS9Xw5+8QMUwDQCbPUbrUOAOIkjvjB5ysC4HnTrjsN/sZ8mCoNTIDtbpSFICpA/0KnGsQYMIN+qkHcAaY6addAPAClXu4vQCnI/Q0oKdfzQXwAZs/1fDDmADPIfQUwdXSpAWpJOlJnvVMtq5ZlSbubBJE8HmU6GmRyPw4TlSaqo6MukP8HwGK+2G46cq1qWXvr/DOu58vc3o8QgFh6LFpBOFTn3yqMnd/n4sZ4GQ5vYXpStN0ruNmAheuirVahvAX34y/Axk/96FpPYgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAAGKklEQVR42rxXX0xSbxj+TlCKqxwKCMl04bxgbLQZcQj/1QVjcyZJzUl/ttxqa9OKpU222mRctLprudqkP2Nd2A1rNqV0imCoF86ii3Q2raMTDhQsdaXnNDi+v4vDiAiVuvi9F4zv/Z7vPOd7v/O+7/Mh9H8ZtiNi//79KpXq2LFjWq22vLxcIBDs2bMnFotFo9GFhYWJiYmxsbHp6enV1dV/ZyoqKjpz5kxbW5tMJqMoanZ2dmZmJhAIbGxs8Hg8qVSqUCgUCgWPx1tcXLx///7z58/D4fBfb7a5uTkYDALA4ODg6dOnDxw4kBEmkUiMRqPL5QIAkiTPnj37Fxx8Pr+npwcAvF5vTU1NlquqqqrcbjcAPHnypKCgYOcFYrF4ZGQEACwWC4fD+dtIdHR0AMDo6OhWMUhYfn6+2+1mGMZoNCadJSUlOp1Oo9FkSWYwGDY3N71eb2Fh4ZYgu90OAI2NjanLQqEQAACA0+kUCATZkJ04cQIAHA5H5ummpiYA6OzsTHqKi4vD4TCkmNVqzXJn7e3tAGAymdInRCJRIBCYnJxMPRudTge/2+TkZPZn5vF4vnz5IhQKf/Nev34dANIOo6KiIo3pxYsX2TOp1WoA6Ojo+OXau3fv58+fh4eH/0Q7HI4kzfr6enV19TaPvnbtmlarTfW8fv06GAzy+fzEuLa2FgCampqSCLlcXlFRIRKJSkpKKIr6+PHjo0ePKisrt6FRqVQA0NXVlepsaGgAAJ1Olxjfvn2bpmmJRJJEvHz5kmEYi8WCEFpZWbl79+6OsXK5XNFoVCwWp2UnTdN37txBCHERQjU1NX6/PxQKJRF+v7+hoUEulyOEFhcXcRw/fPhwolBiGADs2rUrGo0SBME6NRpNXV2d2WxOq3vhcPj9+/e/ghEOh+12eyqisbERAHw+H0Kot7cXMtmDBw+S+MHBwUgkkjHb7HY7uwcuQqigoCAYDKZOz83NxePxgwcPIoSWl5dpmm5pafn58ycAbGxsxONxDMOWlpZYcHV1tV6vb2tri0ajfzIFAgG2WHARQhwOh6KotGmCIMrKyiQSCUEQOTk5brc7EokghEwmk1KpxDBs9+7dOTk5bNotLy/39vZmPD+Kotgc5SKEGIbJzc1Nnf7+/fvbt2/Ly8ulUumnT58wDJNKpSzT8ePH6+rqkkgul0vT9K1bt1ZWVjIy5ebmMgyTYPr27VtxcXEaYmpqqrm5ubS0dHZ2FiEkk8mCwSCGYVar1WazIYQAAMOw1dVVLpe7TcOVSqXsS3ARQgsLC0qlMg3x7t07hFBZWdmbN28QQk6nk6ZphNDm5ib7RSCE1tfXL1++3NfXt83Xf+jQofn5+QSTz+czm81isTj1G52fn4/FYnK5/OvXrxcvXszPz+dwOADA4XAwDGPD0tLS0tXV5XK5YrHYVvpAqVR2d3cnmIaGhiwWS1VVldPpTIJIkpybm9NqtQaDgSAIdisYhrH5hBD68OGD3+/v6+vT6/UDAwNbFQ4ej+d2uxPjffv2EQQxNDSUhnv48CFsbVeuXGHzemxsbKvQDQwMkCT5q+4luzKO42mHqVarcRxXq9VWqxUAjEajRqPBcRzHcalUihBqbW0FALawCoXCVAVx5MgRALhx40Z6fyJJcnx8fCvtYDQaASC92SAkEAjC4XB/f39raytJkqmtcmRkJBKJiESiDLLrz1dQKpU2m81ms/X39wNAd3e3zWa7efNmKmVnZycbz1evXtXW1rJOs9kMAOfOncsc1sePHwPAyZMnU7dCURRFUWtrayRJ/vjxg6KoSCTCFirWZDLZvXv3UrtofX09ADx79mw7pefxeBiGMRgMrCcvL6+oqEgkErG/7B+hULiNQKuvr2cYxufz7SBvxGKx1+sFgPb29n+Q+VevXgWA8fHx1G63pRUWFj59+hQAPB7P0aNHs+TAcXx0dJQVX1lp2KSZTCaSJFldfurUqWx0eSgUOn/+/L/cNcRi8YULFy5dusTeNaanp2dmZoLBIE3TPB5PIpEoFAqVSpWXl7e0tNTT0+NwOFIb97/cn9RqtV6vr6ysLC0t5fP5XC43Ho+vra0RBDExMTE8PDw1NbXj/en/s/8GALokZd2BTL3JAAAAAElFTkSuQmCC <br />";<br />header("Content-type: image/jpeg");<br />$archivo = base64_decode($imagen);<br />echo $archivo;<br />?&gt;</pre>]]></content:encoded> 	<category><![CDATA[html5]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 26 Oct 2010 17:49:56</pubDate>
</item>
<item> 
	<title>Element php+gd</title> 
	<link>http://www.documentoweb.com/Element-php-gd</link> 
	<comments>http://www.documentoweb.com/Element-php-gd#mensajes </comments> 
	<guid>http://www.documentoweb.com/Element-php-gd</guid> 
	<description><![CDATA[ 
                                                                                                                                                                                                                                                                                                          ...]]></description>
	<content:encoded><![CDATA[<pre>&lt;?php<br /> header("Content-type:image/jpeg");//indicamos el tipo de imagen<br /> $imagen= imagecreate(400,300);//creamos una imagen<br /> //definimos los colores<br /> $blanco= imagecolorallocate($imagen,255,255,255);<br /> $gris = imagecolorallocate( $imagen, 200, 200, 200 );<br /> //agregamos contenido<br /> imagefilledellipse($imagen,200,150,190,190,$gris);<br /> imagefilledellipse($imagen,200,150,160,160,$blanco);<br /> imagefilledellipse($imagen,200,150,145,145,$gris);<br /> imagefilledellipse($imagen,200,150,120,120,$blanco);<br /> imagesetthickness($imagen, 20);<br /> imageline($imagen,300,165,275,165,$blanco);<br /> imageline($imagen,300,100,265,110,$blanco);<br /> imageline($imagen,100,165,125,165,$blanco);<br /> imageline($imagen,100,100,135,110,$blanco);<br /> imageline($imagen,200,50,200,75,$blanco);<br /> imagesetthickness($imagen, 15);<br /> imageline($imagen,200,110,240,130,$gris);<br /> imageline($imagen,200,110,160,130,$gris);<br /> imageline($imagen,200,170,240,190,$gris);<br /> imageline($imagen,200,170,160,190,$gris);<br /> imageline($imagen,200,140,240,160,$gris);<br /> imageline($imagen,200,140,160,160,$gris);<br /> imageline($imagen,200,115,200,215,$gris);<br /> imagejpeg($imagen);//llamamos a la imagen<br /> imagedestroy($imagen);//destruimos la imagen<br /> ?&gt;<br />
</pre>]]></content:encoded> 	<category><![CDATA[html5]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 15 Oct 2010 15:44:34</pubDate>
</item>
<item> 
	<title>jQuery: AJAX ultra fácil y accesible (método propio)</title> 
	<link>http://www.documentoweb.com/jQuery/AJAX-ultra-facil-y-accesible-metodo-propio</link> 
	<comments>http://www.documentoweb.com/jQuery/AJAX-ultra-facil-y-accesible-metodo-propio#mensajes </comments> 
	<guid>http://www.documentoweb.com/jQuery/AJAX-ultra-facil-y-accesible-metodo-propio</guid> 
	<description><![CDATA[ Hace unos días me pregunté porqué era tan difícil implementar AJAX en un sitio cuando su principal característica es que se recargue un elemento de la página sin que se cargue toda por completo.
Me propuse hacer todo este rollo con un par de líneas de javascript, siendo el PHP el motor...]]></description>
	<content:encoded><![CDATA[<p>Hace unos d&iacute;as me pregunt&eacute; porqu&eacute; era tan dif&iacute;cil implementar AJAX en un sitio cuando su principal caracter&iacute;stica es que se recargue un elemento de la p&aacute;gina sin que se cargue toda por completo.</p>
<p>Me propuse hacer todo este rollo con un par de l&iacute;neas de javascript, siendo el PHP el motor principal.</p>
<p>De esta forma y un par de horas por la noche, llegu&eacute; a un m&eacute;todo que me impresion&oacute;. La facilidad para implementarlo es demasiada: &iexcl;<strong>3 l&iacute;neas de c&oacute;digo</strong>!.</p>
<p>Ahora les mostrar&eacute; mi m&eacute;todo.</p>
<h2>1. PHP, el motor principal.</h2>
<p>PHP se encargar&aacute; de hacer las <a href="../PHP/MySQL/Obtener-datos-de-la-base-de-datos">consultas en la base de datos</a> como siempre lo has hecho: con los datos ingresados y enviados a trav&eacute;s de un campo de formulario (elemento padre). Sus respectivos condicionamientos&nbsp;<a href="../PHP/Estructura-if-else-en-PHP">if y else</a>&nbsp;m&aacute;s alg&uacute;n <a href="../PHP/Bucles-en-PHP">bucle</a> determinar&aacute;n los resultados en un elemento hijo.</p>
<p>Nota: El m&eacute;todo GET ser&aacute; lo que utilizaremos para los formularios (a&uacute;n no s&eacute; si se puede implementar con POST).</p>
<h2>2. HTML, los identificadores son importantes.</h2>
<p>Necesitamos m&iacute;nimo 3 identificadores en el HMTL: un identificador "padre", un identificador "hijo" y un identificador "recargar" para actualizar el "hijo" (pues el hijo depende del padre, y si el padre cambia el hijo tambi&eacute;n).</p>
<p>Lo que har&aacute; nuestro script es justamente eso: actualizar el div donde se encuentra el resultado. Nada m&aacute;s ni nada menos.</p>
<h2>3. Jquery</h2>
<p>Este m&eacute;todo funciona con jquery, y lo primero que debemos hacer es enlazar jquery en nuestro &lt;head&gt;.</p>
<pre>&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;</pre>
<p>Y lo que usamos de &eacute;l en el script es el <a href="http://api.jquery.com/category/events/">evento</a> change o keyup dependiendo del caso y el famoso load().</p>
<h2>4. &iexcl;El script!</h2>
<p>Y finalmente, este es el script de tres l&iacute;neas. Lo podemos poner antes del &lt;/body&gt;.</p>
<pre>&lt;script type="text/javascript"&gt;
$('#padre').keyup(function(){
$('#recargar').load('prueba2.php?busqueda='+$('#padre').val().replace(/ /g,"+")+' #hijo');
});
&lt;/script&gt;
</pre>
<p>El script hace lo siguiente: <strong>recarga el elemento "recargar" del html y de paso env&iacute;a a trav&eacute;s del m&eacute;todo GET una variable que nosotros definamos</strong> (en el ejemplo es "busqueda"). Por ello, tenemos la libertad de hacer lo que se nos d&eacute; la gana con PHP dentro del div "hijo" tomando en cuenta y condicionando siempre la variable "busqueda".</p>
<p>A final lo que se ve es muy sencillo. La idea es que al presionar el bot&oacute;n de env&iacute;o obtengamos exactamente el mismo resultado que se nos muestra con javascript, y este &uacute;ltimo, se encargue de mostrarnos ese mismo ressultado antes de que presionemos el bot&oacute;n.</p>
<p>Y sin Javascript, todo funciona cool.</p>
<h2>Ejemplos</h2>
<p><strong><a href="../ejemplos/jquery/prueba1.php">Ejemplo 1</a></strong>: Combobox encadenado. El elemento hijo cambia seg&uacute;n el elemento padre. Nota: aqu&iacute; usamos el evento "change".</p>
<p><strong><a href="../ejemplos/jquery/prueba2.php">Ejemplo 2</a></strong>: B&uacute;squeda instant&aacute;nea. Cada vez que presionamos una letra los resultados de b&uacute;squeda se actualizan. En este caso mostramos s&oacute;lo lo que se escribe.</p>
<p><strong><a href="../ejemplos/jquery/prueba3.php">Ejemplo 3</a></strong>: La misma b&uacute;squeda instant&aacute;nea, pero implementado correctamente con la base de datos de DocumentoWeb. Prueba con la b&uacute;squeda "CSS", "PHP" o "Tutorial".</p>
<p><a href="../ejemplos/jquery/pruebas.rar">Descarga todos estos ejemplos</a>.</p>
<p>Espero que les sirva y no se estresen con otros m&eacute;todos que usan datos de XML, archivos javascripts din&aacute;micos, etc. que he visto por ahi.</p>
<h2>Actualizaci&oacute;n</h2>
<p>Agregando otra l&iacute;nea f&aacute;cilmente podemos poner el mensaje "Cargando..." mientras se cargan los resultados.</p>
<pre>$('#padre').keyup(function(){<br />$('#recargar').html("Cargando...");<br />$('#recargar').load('prueba3.php?busqueda='+$('#padre').val().replace(/ /g,"+")+' #hijo');<br />});</pre>]]></content:encoded> 	<category><![CDATA[jquery]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 10 Oct 2010 16:55:19</pubDate>
</item>
<item> 
	<title>PHP: Función PHP simplificadora de código para generar HTML con consultas MySQL</title> 
	<link>http://www.documentoweb.com/PHP/Funcion-PHP-simplificadora-de-codigo-para-generar-HTML-con-consultas-MySQL</link> 
	<comments>http://www.documentoweb.com/PHP/Funcion-PHP-simplificadora-de-codigo-para-generar-HTML-con-consultas-MySQL#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Funcion-PHP-simplificadora-de-codigo-para-generar-HTML-con-consultas-MySQL</guid> 
	<description><![CDATA[ En mis días sin internet quería hacer mis típicas consultas MySQL sin sacrificar tanto espacio dentro de mis archivos.php, entonces, decidí empezar a crear funciones que me permitieran hacerlo de forma muy simplificada manteniendo siempre el lenguaje MySQL.
La siguiente función es la que más...]]></description>
	<content:encoded><![CDATA[<p>En mis d&iacute;as sin internet quer&iacute;a hacer mis t&iacute;picas consultas MySQL sin sacrificar tanto espacio dentro de mis archivos.php, entonces, decid&iacute; empezar a crear funciones que me permitieran hacerlo de forma muy simplificada manteniendo siempre el lenguaje MySQL.</p>
<p>La siguiente funci&oacute;n es la que m&aacute;s estoy usando, es muy simple y la llamo <strong>simplificador de c&oacute;digo</strong>.</p>
<pre>&lt;?php<br /><br />// Simplificador de c&oacute;digo<br /><br />function html($consulta,$html){<br /><br />&nbsp;&nbsp; &nbsp;// Caracter que identificar&aacute; la fila de la base de datos<br />&nbsp;&nbsp; &nbsp;$caracter_separador = "%";<br /><br />&nbsp;&nbsp; &nbsp;// En la consulta puedes omitir SELECT * FROM, esta parte lo agrega<br />&nbsp;&nbsp; &nbsp;if(substr($consulta,0,7)!="SELECT "){<br />&nbsp;&nbsp; &nbsp;$consulta="SELECT * FROM ".$consulta;<br />&nbsp;&nbsp; &nbsp;}<br /><br />&nbsp;&nbsp; &nbsp;// Arreglo que saca el dato entre el $caracter_separador<br />&nbsp;&nbsp; &nbsp;$array = explode($caracter_separador,$html);<br />&nbsp;&nbsp; &nbsp;$contar_array = count($array)-1;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;// Se hace la consulta<br />&nbsp;&nbsp; &nbsp;$c = mysql_query($consulta) or die ("Error de consulta (4)");<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;// Finalmente armamos el HTML con while para cambiar los datos en cada recorrido<br />&nbsp;&nbsp; &nbsp;while($d=mysql_fetch_array($c,MYSQL_ASSOC)){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$imprimir.= $array[0];<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for($i=2;$i&lt;=$contar_array;$i=$i+2){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$imprimir.= $d[$array[($i-1)]].$array[$i];<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; &nbsp;// Y se imprime<br />&nbsp;&nbsp; &nbsp;echo $imprimir;<br />&nbsp;&nbsp; &nbsp;<br />}<br /><br />?&gt;</pre>
<p>Lo que hace esta funci&oacute;n es tomar dos variables: <strong>la consulta</strong> y <strong>el html</strong> al cual le aplicaremos los datos que sacaremos de la base de datos.</p>
<p>Se usa de la siguiente forma:</p>
<pre>&lt;?php html("consulta mysql","tu codigo html"); ?&gt;</pre>
<p>Ejemplo de base de datos:</p>
<p><span><img src="http://farm5.static.flickr.com/4112/5016259441_5d92b97acf_b.jpg" alt="" /></span></p>
<p><span>Ejemplo del c&oacute;digo:<br /></span></p>
<pre>&lt;ul&gt;<br />&lt;?php html("SELECT * FROM paginas LIMIT 3","&lt;li&gt;&lt;a href='/%url%'&gt;%texto%&lt;/a&gt;&lt;/li&gt;\r"); ?&gt;<br />&lt;/ul&gt;</pre>
<p>Podemos omitir el SELECT * FROM para dejarlo a&uacute;n m&aacute;s simple:</p>
<pre>&lt;ul&gt;<br />&lt;?php html("paginas LIMIT 3","&lt;li&gt;&lt;a href='/%url%'&gt;%texto%&lt;/a&gt;&lt;/li&gt;\r"); ?&gt;<br />&lt;/ul&gt;</pre>
<p><strong>Todo lo que est&aacute; encerrado por % se reemplazar&aacute; por el dato correspondiente de la fila con el mismo nombre en la base de datos</strong>.</p>
<p>Esto imprime el siguiente HTML:</p>
<pre>&lt;ul&gt;<br />&lt;li&gt;&lt;a href='http://www.pc.com/producto'&gt;Subwoofer creative A500&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href='Modd.com/Review'&gt;Review en Modd&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href='www.Hard.cl/09/05/Probamos'&gt;Hard.com - Probamos el nuevo sw a500&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</pre>
<p>De esta forma s&oacute;lo cambiamos la forma en que aplicamos nuestras consultas para generar c&oacute;digo html, pero el c&oacute;digo interno PHP sigue siendo el mismo.</p>
<p><strong>OJO</strong>: la funci&oacute;n solo sirve para <strong>SELECT</strong>, ya que vamos a <a href="../PHP/MySQL/Obtener-datos-de-la-base-de-datos"><strong>seleccionar datos</strong></a> para mostrar en el html.</p>
<p><strong>NOTA</strong>: primero debes <a href="../PHP/Funcion-PHP-simplificadora-de-codigo-para-generar-HTML-con-consultas-MySQL">conectarte a tu base de datos</a>.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 22 Sep 2010 23:29:39</pubDate>
</item>
<item> 
	<title>Ayuda con htaccess</title> 
	<link>http://www.documentoweb.com/ayuda-con-htaccess</link> 
	<comments>http://www.documentoweb.com/ayuda-con-htaccess#mensajes </comments> 
	<guid>http://www.documentoweb.com/ayuda-con-htaccess</guid> 
	<description><![CDATA[ Hola tengo una web y en ella hay una carpeta que se llama "men"
y en le directorio queda asi
localhost/men/index.php
lo que quiero es cambiar la url para que quede asi
localhost/mensaje/mensaje/
lo cual ya lo logre con la siguiente regla
RewriteBase /ErrorDocument 404...]]></description>
	<content:encoded><![CDATA[<p>Hola tengo una web y en ella hay una carpeta que se llama "men"</p>
<p>y en le directorio queda asi</p>
<p>localhost/men/index.php</p>
<p>lo que quiero es cambiar la url para que quede asi</p>
<p>localhost/mensaje/mensaje/</p>
<p>lo cual ya lo logre con la siguiente regla</p>
<p>RewriteBase /<br /><br />ErrorDocument 404 http:../../imagenes/index.php<br /><br />Options +FollowSymLinks<br />RewriteEngine on<br /><br />RewriteRule mensaje/mensaje$ men/index.php</p>
<p>&nbsp;</p>
<p>pero cuando escribo la url</p>
<p>localhost/men/index.php</p>
<p>tienen acceso a ese fichero y lo que quiero es que tengan solo acceso por esta url</p>
<p>localhost/mensaje/mensaje/</p>
<p>&nbsp;</p>
<p>&iquest;como puedo aser eso? &iquest;alguien save?</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 05 Sep 2010 17:05:47</pubDate>
</item>
<item> 
	<title>Como desactivar JavaScript en IE?</title> 
	<link>http://www.documentoweb.com/pregunta/como-desactivar-javascript-en-IE</link> 
	<comments>http://www.documentoweb.com/pregunta/como-desactivar-javascript-en-IE#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/como-desactivar-javascript-en-IE</guid> 
	<description><![CDATA[ Hola alguien sabe como desactivar javascript en Internet Explorer?
Se como desactivarlo en Firefox pero no en Internet Explorer.                                                                                                                                                                           ]]></description>
	<content:encoded><![CDATA[<p>Hola alguien sabe como desactivar javascript en Internet Explorer?</p>
<p>Se como desactivarlo en Firefox pero no en Internet Explorer.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 27 Aug 2010 18:17:37</pubDate>
</item>
<item> 
	<title>Concurso: Crear palabras con sus letras</title> 
	<link>http://www.documentoweb.com/Concurso/Crear-palabras-con-sus-letras</link> 
	<comments>http://www.documentoweb.com/Concurso/Crear-palabras-con-sus-letras#mensajes </comments> 
	<guid>http://www.documentoweb.com/Concurso/Crear-palabras-con-sus-letras</guid> 
	<description><![CDATA[ Se me ocurrió hacer concursos para probar otro modo de aprender en DocumentoWeb. La idea es simple: proponer hacer algo y dar una semana para crear el código. Al final de cada concurso vamos a comparar cómo cada uno de los participantes se las arreglan de diferentes formas para llegar al mismo...]]></description>
	<content:encoded><![CDATA[<p>Se me ocurri&oacute; hacer concursos para probar otro modo de aprender en DocumentoWeb. La idea es simple: proponer hacer algo y dar una semana para crear el c&oacute;digo. Al final de cada concurso vamos a comparar c&oacute;mo cada uno de los participantes se las arreglan de diferentes formas para llegar al mismo objetivo propuesto, de esta forma, el premio ser&aacute; para todos los que participen: aprenderemos uno del otro y quiz&aacute;s nos llevemos varias sorpresas y nuevas t&eacute;cnicas que no sab&iacute;amos antes.</p>
<p>Si nos va bien con este primer concurso, haremos m&aacute;s cada semana. As&iacute; que vamos con el primero.</p>
<p>No es necesario inscribirse ni nada engorroso/tradicional.</p>
<h2>Primer concurso: Crear palabras con sus letras</h2>
<p>La idea es ingresar en un campo de texto una palabra y que al presionar el bot&oacute;n de envio aparezca esta misma palabra o frase pero m&aacute;s grande y formada con sus propias letras. Viendo la siguiente imagen se aclara la idea:</p>
<p><img src="http://farm5.static.flickr.com/4116/4928038239_5cca073c65.jpg" alt="" /></p>
<p><strong>Requisitos</strong>:</p>
<ul>
<li>C&oacute;digo a usar: PHP.</li>
<li>C&oacute;digo opcional: HTML y CSS</li>
<li>No usar im&aacute;genes. Exclusivo usar solo texto (se acepta el c&oacute;digo &amp;nbsp;).</li>
<li>No es necesario seguir el ejemplo.</li>
<li>El c&oacute;digo debe funcionar no importando el n&uacute;mero de caracteres que se ingresa.</li>
<li>Cantidad de letras horizontal/vertical de cada letra en el resultado a tu gusto.</li>
<li>Ingenio.</li>
</ul>
<p>Recomendaci&oacute;n: usar tipograf&iacute;a de tama&ntilde;o fijo (<strong>monospace</strong>) o si te atreves a jugar con CSS sorpr&eacute;ndenos.</p>
<p>Los c&oacute;digos listos los recibir&eacute; en <strong>documentoweb@gmail.com</strong> (m&aacute;s adelante quiz&aacute;s cree alg&uacute;n sistema para subir ficheros de forma autom&aacute;tica, por ahora lo haremos as&iacute;) y ser&aacute;n publicados online aqu&iacute; mismo en DocumentoWeb (si prefieren los cuelgan en sus propios sitios). Los que me lleguen al correo s&oacute;lo los revisar&eacute; y publicar&eacute; el pr&oacute;ximo Jueves 2 de Septiembre, porque yo tambi&eacute;n participar&eacute; y no quiero copiar sus ideas.</p>
<p>Cualquier duda la aclarar&eacute;. Si tienen ideas para el pr&oacute;ximo concurso m&aacute;ndenme un mensaje personal (a trav&eacute;s del icono de mensaje en la barra superior para los que no saben).</p>
<p><strong>&iexcl;An&iacute;mate a participar!</strong></p>]]></content:encoded> 	<category><![CDATA[concurso]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 25 Aug 2010 23:50:46</pubDate>
</item>
<item> 
	<title>Photoshop: 20 Combinaciones de teclas en Photoshop para mejorar la experiencia de uso</title> 
	<link>http://www.documentoweb.com/Photoshop/20-Combinaciones-de-teclas-en-Photoshop-para-mejorar-la-experiencia-de-uso</link> 
	<comments>http://www.documentoweb.com/Photoshop/20-Combinaciones-de-teclas-en-Photoshop-para-mejorar-la-experiencia-de-uso#mensajes </comments> 
	<guid>http://www.documentoweb.com/Photoshop/20-Combinaciones-de-teclas-en-Photoshop-para-mejorar-la-experiencia-de-uso</guid> 
	<description><![CDATA[ 
Acabo de enterarme de varias combinaciones de teclas que no sabía de Photoshop y quiero compartirlas aquí junto a las que ya sabía.

F cambia en los modos de pantalla (maximizado quitando la barra de tareas y botones, fullscreen y normal)
Manteniendo presionada la Barra espaciadora se...]]></description>
	<content:encoded><![CDATA[<p><img src="http://farm5.static.flickr.com/4076/4907710305_17b5ac6e9e_z.jpg" alt="" /></p>
<p>Acabo de enterarme de varias combinaciones de teclas que no sab&iacute;a de Photoshop y quiero compartirlas aqu&iacute; junto a las que ya sab&iacute;a.</p>
<ol>
<li><strong>F</strong>&nbsp;cambia en los modos de pantalla (maximizado quitando la barra de tareas y botones, fullscreen y normal)</li>
<li>Manteniendo presionada la&nbsp;<strong>Barra espaciadora</strong>&nbsp;se puede mover el dise&ntilde;o con el mouse si es muy grande, est&aacute; en modo maximizado o fullscreen.</li>
<li><strong>Tab</strong>&nbsp;permite esconder todas ventanas de herramientas m&aacute;s la barra de herramienta para dejar m&aacute;s espacio de trabajo.</li>
<li><strong>Shift+Tab</strong>&nbsp;permite esconder solo las ventanas de herramientas.</li>
<li><strong>Tab</strong>&nbsp;permite cambiar entre el modo del pincel (normal y de&nbsp;precisi&oacute;n)</li>
<li><strong>Ctrl+0</strong>&nbsp;muestra el dise&ntilde;o ajustado en toda el area de trabajo disponible</li>
<li><strong>Ctrl+1</strong>&nbsp;muestra el dise&ntilde;o en el tama&ntilde;o real (tambi&eacute;n haciendo&nbsp;<strong>doble click</strong>&nbsp;sobre la lupa en la barra de herramientas).</li>
<li><strong>Ctrl+E</strong>&nbsp;combina la capa actual con la de abajo</li>
<li><strong>Ctrl+T</strong>&nbsp;permite usar transformaci&oacute;n libre.</li>
<li>Manteniendo presionado&nbsp;<strong>Shift</strong>, permite filtrar las rotaciones (por ejemplo de la transformaci&oacute;n libre) dejando como opci&oacute;n rotar solo cada 15&ordm;, por lo que puedes rotar f&aacute;cilmente entre 90&ordm;, 180&ordm; y 270&ordm; que es lo m&aacute;s com&uacute;n. Tambi&eacute;n cuando redimensionas te permite mantener el aspecto y no deformar el dise&ntilde;o. Si presionas&nbsp;<strong>Shift+Alt</strong>&nbsp;te permite redimensionar el dise&ntilde;o siempre desde el centro.</li>
<li><strong>Scroll</strong>&nbsp;(del mouse) te permite navegar verticalmente en el dise&ntilde;o si es muy grande.&nbsp;<strong>Scroll+Ctrl</strong>&nbsp;permite navegar horizontalmente.&nbsp;<strong>Shift+Scroll&nbsp;</strong>navega de forma exagerada.</li>
<li><strong>Alt+Scroll</strong>&nbsp;te permite aumentar/disminuir el dise&ntilde;o en donde se&nbsp;sit&uacute;a&nbsp;el puntero.</li>
<li>Con cualquier herramienta de dibujo presionando&nbsp;<strong>shift+click</strong>&nbsp;los trazos seguir&aacute;n la direcci&oacute;n indicada solo horizontal o verticalmente.</li>
<li>Puedes hacer un gu&iacute;a para maquetaci&oacute;n web en&nbsp;<strong>Ver &gt; Preferencias &gt; Gu&iacute;as, cuadr&iacute;culas y sectores&nbsp;</strong>con cuadr&iacute;cula de 100 p&iacute;xeles con 10 divisiones con un color deseado (gris muy claro recomiendo si el dise&ntilde;o es blanco). As&iacute; puedes tener tu referencia para dise&ntilde;ar sitios con medidas m&aacute;s precisas con cuadritos de 10 por 10 p&iacute;xeles. Para mostrarla/ocultarla puedes hacerlo con&nbsp;<strong>Ctrl+?</strong>.</li>
<li><strong>Ctrl+Alt+Q</strong>&nbsp;abre la opci&oacute;n para redimensionar el dise&ntilde;o.</li>
<li><strong>F8</strong>&nbsp;abre la informaci&oacute;n. Genial para saber cuantos p&iacute;xeles seleccionamos o en que pixel nos situamos.</li>
<li>Las capas las podemos mover con los&nbsp;<strong>cursores</strong>&nbsp;con la herramienta de mover. Si presionamos<strong>Shift+Cursor</strong>&nbsp;podemos mover por mayor cantidad de p&iacute;xeles. Si usamos&nbsp;<strong>Click+Shift</strong>&nbsp;podemos mover el dise&ntilde;o solo en direcciones cada 45&ordm;, genial para mover en linea recta.</li>
<li>Con la herramienta recorte podemos agregar o quitar m&aacute;s&nbsp;&aacute;rea&nbsp;de recorte con las distintas herramientas que nos ofrecen (circular, cuadrada, personalizada, etc.). Presionando&nbsp;<strong>Alt</strong>&nbsp;quitamos &aacute;rea y con&nbsp;<strong>Shift&nbsp;</strong>agregamos m&aacute;s&nbsp;&aacute;rea&nbsp;de recorte.</li>
<li>Casi cualquier herramienta tiene combinaciones con Alt, Shift y Ctrl, la mayor&iacute;a yo las descubr&iacute; s&oacute;lo experimentando.</li>
<li>Algunas herramientas m&aacute;s usadas expresan sus propias combinaciones, f&iacute;jate al momento de seleccionarla en el men&uacute; superior, ah&iacute; est&aacute; su combinaci&oacute;n de teclas en el lado derecho de su nombre.</li>
</ol>
<p>Espero que sean de mucha ayuda. Hasta la pr&oacute;xima.</p>]]></content:encoded> 	<category><![CDATA[photoshop]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 25 Aug 2010 00:42:43</pubDate>
</item>
<item> 
	<title>PHP: Funciones para cadenas en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Funciones-para-cadenas-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Funciones-para-cadenas-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Funciones-para-cadenas-en-PHP</guid> 
	<description><![CDATA[ 
Veremos algunas funciones básicas del PHP que nos permitirán trabajar con las cadenas de texto, ya sea para editarlas, cortarlas, reemplazarle caracteres, etc.
Ya que existen demasiadas funciones no las veremos todas. Puedes buscarlas en la documentación oficial de PHP.net donde se explican en...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Veremos algunas funciones b&aacute;sicas del PHP que nos permitir&aacute;n trabajar con las cadenas de texto, ya sea para editarlas, cortarlas, reemplazarle caracteres, etc.</p>
<p>Ya que existen demasiadas funciones no las veremos todas. Puedes buscarlas en la <a href="http://php.net/manual/en/book.strings.php">documentaci&oacute;n oficial de PHP.net</a> donde se explican en detalle cada una de ellas.</p>
<h2>Funciones para cadenas</h2>
<h3>explode('.','a.b.c')</h3>
<p>Convierte una cadena en una <a href="../PHP/Arrays-o-Matrices-en-PHP">matriz</a>, tomando como referencia un caracter <code>'.'</code>&nbsp;para separar la cadena&nbsp;<code>'a.b.c'</code>&nbsp;en diferentes elementos (<code>a</code>, <code>b</code> y <code>c</code>).</p>
<h3>nl2br()</h3>
<p>Una "funci&oacute;n HTML". Inserta etiquetas &lt;br /&gt; despu&eacute;s de cada salto de l&iacute;nea.</p>
<h3>htmlentities()</h3>
<p>Funci&oacute;n para documentos HTML, en el que se cambian car&aacute;cteres HTML como las letras con acentos, par&eacute;ntesis angulares y comillas por sus entidades HTML. Utilizado especialmente en sistemas de comentarios para no arruinar el c&oacute;digo fuente por los car&aacute;cteres que utilizan los usuarios.</p>
<h3>str_replace('a','b','abc')</h3>
<p>Reemplaza todos los car&aacute;cteres 'a' aparecidos en 'abc' por 'b'. Sensible a may&uacute;sculas y min&uacute;sculas.</p>
<h3>strtolower() y strtoupper()</h3>
<p>La primera convierte la cadena a min&uacute;sculas, y la segunda a may&uacute;sculas.</p>
<h3>strlen() y str_word_count()</h3>
<p>La primera cuenta el n&uacute;mero de car&aacute;cteres que tiene una cadena y la segunda el n&uacute;mero de palabras que contiene.</p>
<h3>Ejemplo de funciones de cadenas</h3>
<p>Ahora veamos un ejemplo para ver como se le da uso a algunas funciones para trabajar las cadenas dentro del lenguaje PHP.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre> &lt;?php<br /> <br /> $cadena = "Lorex ipsux dolor sit axet.";<br /> $cadena = strtoupper(str_replace('x','m',$cadena));<br /> $letras = strlen($cadena);<br /> $palabras = str_word_count($cadena);<br /> <br /> echo "La cadena '$cadena' tiene $letras letras y $palabras palabras.";<br /> <br /> ?&gt; </pre>
<p><strong>Resultado PHP:</strong></p>
<p>La cadena 'LOREM IPSUM DOLOR SIT AMET.' tiene 27 letras y 5 palabras.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 17 Aug 2010 23:42:22</pubDate>
</item>
<item> 
	<title>Qué es un Blog y para qué sirve?</title> 
	<link>http://www.documentoweb.com/Que-es-un-Blog</link> 
	<comments>http://www.documentoweb.com/Que-es-un-Blog#mensajes </comments> 
	<guid>http://www.documentoweb.com/Que-es-un-Blog</guid> 
	<description><![CDATA[ Un blog es un sitio Web en donde uno o varios  autores desarrollan  contenidos. Los blogs también se conocen como  weblog o cuaderno de  bitácora. La información se actualiza  periódicamente y,de la misma  forma, los textos se plasman en forma  cronológica; primero aparece el  más...]]></description>
	<content:encoded><![CDATA[<p>Un blog es un sitio Web en donde uno o varios  autores desarrollan  contenidos. Los blogs tambi&eacute;n se conocen como  weblog o cuaderno de  bit&aacute;cora. La informaci&oacute;n se actualiza  peri&oacute;dicamente y,de la misma  forma, los textos se plasman en forma  cronol&oacute;gica; primero aparece el  m&aacute;s recientemente escrita.</p>
<p>En cada art&iacute;culo de un blog, los lectores tienen la capacidad de dejar   sus comentarios. A su vez, estos pueden ser contestados por el autor de   manera que se va creando un di&aacute;logo.&nbsp;</p>
<p>Otra caracter&iacute;stica de los  Blogs es que suelen tener una tem&aacute;tica  espec&iacute;fica. El autor escribe con  total libertad y la tem&aacute;tica es  particular, los hay de tipo personal,  period&iacute;stico, empresarial o  corporativo, tecnol&oacute;gico, educativo  (edublogs), pol&iacute;ticos, etc.<br /><span style="color: #008888; font-family: 'trebuchet ms', arial, sans-serif;">&nbsp;</span></p>
<p>Las herramientas de mantenimiento de weblogs se clasifican, principalmente, en dos tipos:</p>
<ol>
<li>Aquellas que ofrecen una<strong> soluci&oacute;n gratuita</strong> (como Freewebs, Blogger y LiveJournal), que son sencillas, f&aacute;ciles de   utilizar y ofrecen gratuitamente alojamiento del blog. Cualquier  persona  puede acceder a este tipo de blog y tener su diario listo en  menos de  10 minutos de haberse registrado.</li>
<li><strong>Soluciones profesionales</strong> como es el caso de  WordPress o de Movable Type. Ambos Softwares &ndash; que  tambi&eacute;n son  gratuitos- se instalan en el servidor de hosting y son una  alternativa  m&aacute;s completa a Blogger y LiveJournal. Estos poseen una  flexibilidad  mayor a la hora de configurar cada aspecto del blog. Sin  embargo,  quienes utilicen este software necesitan de ciertos  conocimientos en  tecnolog&iacute;as web -y un m&iacute;nimo de programaci&oacute;n- para la  instalaci&oacute;n y  mantenimiento del software.</li>
</ol>
<h2>&iquest;Para qu&eacute; lo usan las Empresas?</h2>
<p>Cada  vez m&aacute;s, las empresas  apuestan blogs como herramienta de Marketing  Directo. De esta manera,  es posible una retroalimentaci&oacute;n m&aacute;s efectiva.  Es decir, es una forma  de obtener opiniones e investigaci&oacute;n de los  consumidores, una especie  de estudio de mercado.</p>
<p>Parte del atractivo de estos diarios online&nbsp; es que la persona que contribuye se puede expresar libremente.</p>
<p>Mc  Donalds, una de las pioneras del blogging, tiene su blog corporativo  en  el que los CEOs se contactan con sus empleados. "Son de uso interno   &ndash;aclara Luciano Parola, director de sistemas de la filial argentina&ndash; y   su principal ventaja es que, mientras la p&aacute;gina Web comunica en una  sola  direcci&oacute;n, el blog lo hace en m&uacute;tliples direcciones".</p>
<p>Una empresa que tenga un blog, por otra parte debe estar dispuesta a soportar las cr&iacute;ticas de los consumidores.</p>
<p>"Los  diarios en l&iacute;nea tienen mucho que ver con la autenticidad, con ir  m&aacute;s  all&aacute; de la jerga corporativa y las relaciones p&uacute;blicas y establecer  un  verdadero di&aacute;logo", dice Michael Wilesy, director de nuevos medios  en  General Motors. En ese sentido, agrega, "es esencial no ser tan   susceptible ante las cr&iacute;ticas y aceptar las cosas negativas".</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 15 Aug 2010 09:58:52</pubDate>
</item>
<item> 
	<title>Problema: Configuración EasyPhp</title> 
	<link>http://www.documentoweb.com/Problema/Configuracion-EasyPhp</link> 
	<comments>http://www.documentoweb.com/Problema/Configuracion-EasyPhp#mensajes </comments> 
	<guid>http://www.documentoweb.com/Problema/Configuracion-EasyPhp</guid> 
	<description><![CDATA[ Hola, soy nueva en esto de la programación PHP y se que se tiene que tener el apache el mysql y todo eso... y cuando por fin vi la luz con easyphp resulta que no funciona, me funciona con scripts que ya son previamente creados y que los usan en todas las publicaciones, esos si los abre bien y...]]></description>
	<content:encoded><![CDATA[<p>Hola, soy nueva en esto de la programaci&oacute;n PHP y se que se tiene que tener el apache el mysql y todo eso... y cuando por fin vi la luz con easyphp resulta que no funciona, me funciona con scripts que ya son previamente creados y que los usan en todas las publicaciones, esos si los abre bien y todo... pero a la hora de programar, no me abre ni siquiera en hola mundo... ya no se que hacer... estoy un poco desesperada... cuando logro un avance, todo retrocede... por favor ayudenme, si es algo de la configuracion de easy php porque lo tengo instalado en tres computadoras y en ninguna me lee ni si quiera el hola mundo.</p>
<p>De antemano Gracias</p>]]></content:encoded> 	<category><![CDATA[problema]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 12 Aug 2010 23:21:02</pubDate>
</item>
<item> 
	<title>PHP: Variables determinadas por el servidor, la URL y el navegador</title> 
	<link>http://www.documentoweb.com/PHP/Variables-determinadas-por-el-servidor-la-URL-y-el-navegador</link> 
	<comments>http://www.documentoweb.com/PHP/Variables-determinadas-por-el-servidor-la-URL-y-el-navegador#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Variables-determinadas-por-el-servidor-la-URL-y-el-navegador</guid> 
	<description><![CDATA[ 
Veremos algunas funciones en PHP que nos permitirán trabajar las variables según la URL de la página, el navegador que utilizemos, cookies del navegador y otras más muy interesantes que a menudo y en cualquier página web son utilizadas para generar dinamismo dentro del sitio dependiendo de...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Veremos algunas funciones en PHP que nos permitir&aacute;n trabajar las variables seg&uacute;n la URL de la p&aacute;gina, el navegador que utilizemos, cookies del navegador y otras m&aacute;s muy interesantes que a menudo y en cualquier p&aacute;gina web son utilizadas para generar dinamismo dentro del sitio dependiendo de estos factores de quien la visita.</p>
<h3>$_POST['abc']</h3>
<p>Obtiene el texto ingresado en un campo de formulario con el valor 'abc' en el atributo <code>name</code>&nbsp;del HTML luego de enviar un formulario con el m&eacute;todo POST.</p>
<p>Ejemplo (example.php):</p>
<pre>&lt;form method='post' action='example.php'&gt;<br />   &lt;p&gt;&lt;input name='abc' type='text' /&gt;&lt;/p&gt;<br />   &lt;p&gt;&lt;input type='submit' value='enviar'&gt;&lt;/p&gt;<br />&lt;/form&gt;<br /><br />&lt;?php<br />   echo '&lt;p&gt;'.$_POST['abc'].'&lt;/p&gt;';<br />?&gt;&nbsp;</pre>
<p>Si en el campo del formulario escribimos 'nuestronombre' y presionamos enviar, este mismo archivo debajo del formulario imprimir&aacute; 'nuestronombre' en el HTML.</p>
<h3>$_GET['abc']</h3>
<p>Obtiene el valor de la variable 'abc' expresada en la URL de la p&aacute;gina. Esta URL se puede crear de forma manual &nbsp;(a trav&eacute;s de un enlace por ejemplo) o autom&aacute;ticamente por un formulario de m&eacute;todo GET que traspasa todos sus valores del atributo&nbsp;<code>name</code>&nbsp;a la URL despu&eacute;s de presionar submit.</p>
<p>Ejemplo de una URL:</p>
<pre>http://www.example.com/example.php?abc=minombre&amp;def=miapellido</pre>
<p>Ejemplo de example.php</p>
<pre>&lt;?php<br />   echo '&lt;p&gt;'.$_GET['abc'].' '.$_GET['def'].'&lt;/p&gt;';<br />?&gt;&nbsp;</pre>
<p>El archivo example.php imprimir&aacute; en un p&aacute;rrafo 'abc' junto a 'def', es decir, 'minombre miapellido' si la URL anterior se mantiene. Si cambiamos los valores, obviamente el resultado de la p&aacute;gina cambiar&aacute;.</p>
<h3>$_COOKIE['abc']</h3>
<p>Obtiene el valor de la cookie 'abc' que ha sido creada anteriormente por nuestro sitio Web (pues no podemos obtener una cookie creada por otro sitio).</p>
<h3>$_SERVER['PHP_SELF']</h3>
<p>Obtiene la p&aacute;gina en que nos situamos desde la perspectiva del servidor, incluyendo el directorio en la que se encuentra. No puede obtener el dominio en el que se encuentra, pues es una petici&oacute;n interna.</p>
<h3>$_SERVER['HTTP_REFERER']</h3>
<p>Obtiene la URL completa de la p&aacute;gina que visitamos anteriormente. Ideal por ejemplo para saber con qu&eacute; b&uacute;squeda de Google se lleg&oacute; a tal p&aacute;gina. Si se ha accedido directamente a la p&aacute;gina no imprimir&aacute; nada.</p>
<h3>$_SERVER['REMOTE_ADDR']</h3>
<p>Obtiene la direcci&oacute;n IP del visitante.</p>
<h3>$_SERVER['HTTP_USER_AGENT']</h3>
<p>Obtiene el "User AGENT" o la informaci&oacute;n del navegador que usa el visitante.</p>
<p>&nbsp;</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre>&lt;?php<br /> <br />$pagina_ahora = $_SERVER['PHP_SELF'];<br />$pagina_anterior = $_SERVER['HTTP_REFERER'];<br />$tu_ip = $_SERVER['REMOTE_ADDR'];<br />$tu_navegador = $_SERVER['HTTP_USER_AGENT'];<br /><br />echo "Est&aacute;s en $pagina_ahora y anteriormente visitaste $pagina_anterior.<br />Tu IP es $tu_ip y tu navegador es $tu_navegador";<br /><br />?&gt;</pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 10 Aug 2010 16:14:54</pubDate>
</item>
<item> 
	<title>CSS: Recortar imágenes con CSS</title> 
	<link>http://www.documentoweb.com/CSS/Recortar-imagenes-con-CSS</link> 
	<comments>http://www.documentoweb.com/CSS/Recortar-imagenes-con-CSS#mensajes </comments> 
	<guid>http://www.documentoweb.com/CSS/Recortar-imagenes-con-CSS</guid> 
	<description><![CDATA[ 
Esta es una técnica que descubrí hace poco para "recortar" las imagenes con CSS que están incrustadas en el HTML, y es muy pero muy sencilla. Se trata de usar el overflow:hidden para ocultar el resto de la imagen que no se quiere mostrar más margenes negativos para dar un punto de recorte.
No...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><a href="../../ejemplos/recortar-imagenes-con-css/"><img src="http://farm5.static.flickr.com/4102/4863988429_0a22fd3005.jpg" alt="Circulos recortados con CSS" /></a></p>
<p>Esta es una t&eacute;cnica que descubr&iacute; hace poco para "<strong>recortar</strong>" las imagenes con CSS que est&aacute;n incrustadas en el HTML, y es muy pero muy sencilla. Se trata de usar el overflow:hidden para ocultar el resto de la imagen que no se quiere mostrar m&aacute;s margenes negativos para dar un punto de recorte.</p>
<p>No es para usarla como <a href="../../Guia/CSS/Sprites-CSS">sprites CSS</a>, pero es parecido. Quiz&aacute;s pueda llegar a parecer como las <a href="../CSS/Esquinas-redondeadas-con-CSS-e-imagenes">esquinas redondeadas</a>&nbsp;por sus propiedades de margenes negativos.</p>
<p>No creo que sea necesario decir que es compatible con <strong>todos los navegadores</strong> (IE6 tambi&eacute;n por si tienes dudas).</p>
<p>Ve la <a href="../../ejemplos/recortar-imagenes-con-css">presentaci&oacute;n de como recortar im&aacute;genes con CSS</a>&nbsp;que he creado.</p>]]></content:encoded> 	<category><![CDATA[css]]></category>	<category><![CDATA[debate]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 05 Aug 2010 17:57:20</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad V</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-V</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-V#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-V</guid> 
	<description><![CDATA[ Otras Caracteristicas
Los creadores de esta herramienta crearon suficientes funciones para cubrir todas las necesidades de un sistema, phpDataMapper es reciente y todavía esta en desarrollo, pero va por buen camino.
Pueden visitar su pagina y guía oficial phpDataMapper.
Consultas...]]></description>
	<content:encoded><![CDATA[<h2>Otras Caracteristicas</h2>
<p>Los creadores de esta herramienta crearon suficientes funciones para cubrir todas las necesidades de un sistema, phpDataMapper es reciente y todav&iacute;a esta en desarrollo, pero va por buen camino.</p>
<p>Pueden visitar su pagina y gu&iacute;a oficial <a href="http://phpdatamapper.com/" target="_blank">phpDataMapper</a>.</p>
<h2>Consultas Personalizadas</h2>
<pre>$lista_registros=$persona-&gt;select()-&gt;from('persona')-&gt;where(array('id' =&gt; '3'));<br /></pre>
<p>Podriamos hacerlo as&iacute;:</p>
<pre>$lista_registros=$persona-&gt;query('SELECT * FROM persona WHERE id=3');<br /></pre>
<p>M&aacute;s sencillo:</p>
<pre>$lista_registros = $persona-&gt;all(array('id' =&gt; 3));</pre>
<p>Seleccionamos la persona con el id 3.</p>
<h2>Relaciones</h2>
<p>En caso de que una tabla tenga relacion con otra por una clave foranea podemos hacer algo muy sencillo:</p>
<p>En caso de que <strong>persona</strong> tenga relaci&oacute;n con <strong>publicaci&oacute;n</strong>:</p>
<p>Ejemplo:</p>
<p><em><strong>Archivo: Persona.php</strong></em></p>
<pre>&lt;?php<br /><br />class Persona extends phpDataMapper_Base {//inicio de la clase de mapeo<br /><br />&nbsp;&nbsp;&nbsp; // definir la fuente de&nbsp; datos (tabla para el adaptador)<br />&nbsp;&nbsp;&nbsp; protected $_datasource = "persona";<br /><br />&nbsp;&nbsp;&nbsp; // definir los atributos como propiedades de la clase con visibilidad publica<br />&nbsp;&nbsp;&nbsp; public $id = array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $nombre = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $email = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $web = array ('type' =&gt; 'string' );<br /><br />&nbsp;&nbsp;&nbsp; public $publicaciones = array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'type' =&gt; 'relation',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'relation' =&gt; 'HasMany',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'mapper' =&gt; 'Publicacion',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'where' =&gt; array('personaid' =&gt; 'entity.id')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br />&nbsp; &nbsp;<br />}//fin de la clase de mapeo<br /><br />?&gt;<br /></pre>
<p><em><strong>No es necesario modificar la tabla persona en la base de datos, $publicaciones har&aacute; las veces de una funci&oacute;n.</strong></em></p>
<p>El <strong>'mapper'</strong> como sabemos, ser&aacute; la clase mapeo la cual vamos a usar para ese atributo en este caso <strong>Publicacion</strong> de tipo <strong>'relation' </strong>donde <strong>personaid</strong> de la publicaci&oacute;n sea igual al <strong>id</strong> de la persona: <strong>'where' =&gt; array('personaid' =&gt; 'entity.id')</strong></p>
<p><em><strong>Archivo: Publicacion.php</strong></em></p>
<p><em>Para crear este mapeo debemos crear en la base de datos: tabla <strong>publicacion,</strong> atributos: <strong>id</strong> int, <strong>nombre</strong> varchar, <strong>personaid</strong> int.<br /></em></p>
<pre>&lt;?php<br /><br />class Publicacion extends phpDataMapper_Base {//inicio del mapeo<br /><br />&nbsp;&nbsp;&nbsp; protected $_datasource = "publicacion";<br /><br />&nbsp;&nbsp;&nbsp; // definir los atributos como propiedades de la clase con visibilidad publica<br />&nbsp;&nbsp;&nbsp; public $id = array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $nombre = array ('type' =&gt; 'string', 'required' =&gt; true );<br />    public $personaid = array('type' =&gt; 'int', 'key' =&gt; true, 'required' =&gt; true);<br /><br />}//fin del mapeo<br /><br />?&gt;<br /></pre>
<p>Para definir una clave foranea: <strong>array('type' =&gt; 'int', 'key' =&gt; true, 'required' =&gt; true);</strong></p>
<p><strong><em>Archivo: index.php</em></strong></p>
<pre>&lt;?php<br /><br />include 'Conexion.php';<br />include 'Persona.php';<br />include 'Publicacion.php';<br /><br />$persona = new Persona(Conexion::getConexion());<br /><br />$lista_registros = $persona-&gt;all();<br /><br />foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp;&nbsp; echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />    //Para mostrar todas las publicaciones<br />&nbsp;&nbsp;&nbsp; foreach($registro-&gt;publicaciones as $publicacion) {<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo "&lt;p&gt; ID: ".$publicacion-&gt;id.' Nombre: '. $publicacion-&gt;nombre. "&lt;/p&gt;";<br /><br />&nbsp;&nbsp;&nbsp; }<br /><br />}<br /><br />?&gt;<br /></pre>
<p>Ejemplo de una salida:</p>
<pre>Id: 2<br />&nbsp; Nombre: Alguien<br />&nbsp; Email: alguien@alguienweb.com<br />&nbsp; Web: www.alguienweb.com<br /><br />ID: 3 Nombre: primera publicacion<br /><br />ID: 4 Nombre: segunda publicacion<br /></pre>
<p>El alcance de este patr&oacute;n de dise&ntilde;o se nota en las relaciones de las tablas, en el ejemplo anterior pudimos mostrar r&aacute;pidamente los registros de publicaciones asociados a persona.</p>
<p>Otros frameworks tambi&eacute;n usan el Mapeo, yo recomiendo esta herramienta, ya que no se necesita depender de un frameworks para usarla, simplemente lo copiamos y empezamos a usarlo con nuestra aplicaci&oacute;n, sin necesidad de modificar mucho nuestro c&oacute;digo.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 28 Jul 2010 17:09:00</pubDate>
</item>
<item> 
	<title>Cross-Browser: Add-ons: Cambiar tamaño del navegador según resoluciones de pantalla</title> 
	<link>http://www.documentoweb.com/Cross-Browser/Add-ons/Cambiar-tamano-del-navegador-segun-resoluciones-de-pantalla</link> 
	<comments>http://www.documentoweb.com/Cross-Browser/Add-ons/Cambiar-tamano-del-navegador-segun-resoluciones-de-pantalla#mensajes </comments> 
	<guid>http://www.documentoweb.com/Cross-Browser/Add-ons/Cambiar-tamano-del-navegador-segun-resoluciones-de-pantalla</guid> 
	<description><![CDATA[ No podemos acceder físicamente a todas las resoluciones de pantallas existentes en la tecnología para probar esos diseños bien considerados con los distintos usuarios que lo verán.
En este pequeño artículo traigo dos add-ons: uno para Firefox y otro para Chrome, que permiten modificar el...]]></description>
	<content:encoded><![CDATA[<p>No podemos acceder f&iacute;sicamente a todas las resoluciones de pantallas existentes en la tecnolog&iacute;a para probar esos dise&ntilde;os bien considerados con los distintos usuarios que lo ver&aacute;n.</p>
<p>En este peque&ntilde;o art&iacute;culo traigo dos add-ons: uno para Firefox y otro para Chrome, que permiten modificar el tama&ntilde;o del navegador seg&uacute;n una resoluci&oacute;n escojida.</p>
<ul>
<li><a href="https://addons.mozilla.org/es-ES/firefox/addon/2498/">Yet Another Window Resizer para Firefox</a></li>
<li><a href="https://chrome.google.com/extensions/detail/kkelicaakdanhinjdeammmilcgefonfh?hl=en">Window Resizer para Chrome</a></li>
</ul>
<p><img src="http://farm5.static.flickr.com/4152/4831262431_8098111c4c_z.jpg" alt="Window Resize en Chrome" /></p>
<p>En Firefox la suma de pixeles de sus barras (de t&iacute;tulo, direcciones, marcadores, pesta&ntilde;as y estado) lo hacen m&aacute;s est&aacute;ndar en tama&ntilde;o por el&nbsp;<strong>&aacute;rea&nbsp;visible real&nbsp;de la p&aacute;gina</strong>&nbsp;respecto a los dem&aacute;s navegadores. Recuerda que Chrome no tiene barra de t&iacute;tulo ni de navegaci&oacute;n, lo que lo hace m&aacute;s peque&ntilde;o y agranda considerablemente su &aacute;rea de p&aacute;gina visible.</p>
<p>Yet Another Window Resize para Firefox conocido gracias a @<a href="http://www.twitter.com/roccons">roccons</a>.</p>]]></content:encoded> 	<category><![CDATA[cross-browser]]></category>	<category><![CDATA[add-ons]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 26 Jul 2010 14:56:13</pubDate>
</item>
<item> 
	<title>PHP: Funciones para condiciones en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Funciones-para-condiciones-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Funciones-para-condiciones-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Funciones-para-condiciones-en-PHP</guid> 
	<description><![CDATA[ 
Veremos algunas funciones del PHP que nos permitirán trabajar en las condiciones del PHP, como en los bucles y la estructura if-else. No solo existen métodos con operadores lógicos, existen muchas funciones para trabajar de las cuales veremos algunas.
Funciones para...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Veremos algunas funciones del PHP que nos permitir&aacute;n trabajar en las condiciones del PHP, como en los <a href="../bucles-en-php">bucles</a> y la estructura <a href="../estructura-if-else-en-php">if-else</a>.&nbsp;No solo existen m&eacute;todos con <a href="../operadores-logicos-en-php">operadores l&oacute;gicos</a>, existen muchas funciones para trabajar de las cuales veremos algunas.</p>
<h2>Funciones para condiciones</h2>
<table border="0">
<tbody>
<tr>
<td><code>isset()</code></td>
<td>Comprueba si una variable est&aacute; definida para devolver verdadero.</td>
</tr>
<tr>
<td><code>empty()</code></td>
<td>Comprueba si una variable no est&aacute; definida para devolver verdadero.;</td>
</tr>
<tr>
<td><code>eregi('a','abc')</code></td>
<td>Comprueba si la cadena 'a' se encuentra dentro de la cadena 'abc' para devolver verdadero.</td>
</tr>
<tr>
<td><code>file_exists()</code></td>
<td>Comprueba si un archivo existe para devolver verdadero.</td>
</tr>
</tbody>
</table>
<p><span>*</span>Estas son solo algunas funciones para condiciones.</p>
<p>Recuerda: En la <a href="http://www.php.net/manual/es/funcref.php">documentaci&oacute;n oficial de PHP.net</a> est&aacute;n disponibles todas las funciones y muy bien explicadas. Las funciones para condiciones no est&aacute;n en ninguna secci&oacute;n y se deben encontrar seg&uacute;n el prop&oacute;sito que se desea lograr. Por ejemplo, para el <a href="http://www.php.net/manual/es/book.strings.php">manejo de variables</a> o de <a href="http://www.php.net/manual/es/book.strings.php">cadenas</a>.</p>
<h3>Ejemplo de funciones en condiciones</h3>
<p>Veremos un ejemplo para ver como se le da uso a algunas funciones para trabajar las condiciones dentro del lenguaje PHP.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre>&lt;?php<br /> <br />$cadena = "Lorem ipsum";<br /><br />if(eregi('em',$cadena) &amp;&amp; file_exists('../index.php')){<br /><br />   echo "Bien!";<br />   // se imprime solo si 'em' est&aacute; dentro de 'Lorem ipsum' y el archivo index.php existe<br /><br />}else{<br /><br />   echo "Mal =(";<br />   // se imprime solo si 'em' no se encuentra dentro de 'Lorem ipsum'<br />   // o si el archivo index.php no existe<br /><br />}<br /> <br />?&gt; </pre>
<p><strong>Resultado PHP:</strong></p>
<p>Bien!</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[add-ons]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 26 Jul 2010 13:24:14</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad IV</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-IV</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-IV#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-IV</guid> 
	<description><![CDATA[ Actualización
Archivo: index.php

Primero obtenemos el registro que deseamos actualizar:
$registro = $persona->get(1);
Luego cambiamos los datos:
$registro->nombre='Webmaster';
Y guardamos:
$persona->save($registro);
Salida:
Id: 1  Nombre: Webmaster  Email:...]]></description>
	<content:encoded><![CDATA[<h2>Actualizaci&oacute;n</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $registro = $persona-&gt;get(1);<br /><br />&nbsp;&nbsp;&nbsp; $registro-&gt;nombre='Webmaster';<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($registro);&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';&nbsp;&nbsp;&nbsp;  &nbsp;<br /><br />?&gt;<br /></pre>
<p>Primero obtenemos el registro que deseamos actualizar:</p>
<pre>$registro = $persona-&gt;get(1);</pre>
<p>Luego cambiamos los datos:</p>
<pre>$registro-&gt;nombre='Webmaster';<br /></pre>
<p>Y guardamos:</p>
<pre>$persona-&gt;save($registro);<br /></pre>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Webmaster<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com<br /></pre>
<h2>Eliminaci&oacute;n</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;delete(array('id' =&gt; 1));//Eliminacion<br /><br />&nbsp;&nbsp;&nbsp; $lista_registros = $persona-&gt;all();<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br /><br />?&gt;<br /></pre>
<p>Para eliminar un registro usamos la funci&oacute;n <strong>delete(condici&oacute;n)</strong>:</p>
<pre>$persona-&gt;delete(array('id' =&gt; 1));<br /></pre>
<p>Donde la condici&oacute;n es un arreglo en el cual se expresan los valores que debe tener el registro para ser eliminado, en este caso el registro con el id 1.</p>
<p>Salida:</p>
<pre>Id: 2<br />&nbsp;&nbsp;Nombre: Alguien<br />&nbsp;&nbsp;Email: alguien@alguienweb.com<br />&nbsp;&nbsp;Web:  www.alguienweb.com</pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 24 Jul 2010 19:58:18</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad III</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-III</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-III#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-III</guid> 
	<description><![CDATA[ Obtener todos los registros
Archivo: index.php

Para cargar todos los registros usamos la función all(), luego recorremos el arreglo con un foreach.
Salida:
Id: 1  Nombre: Null  Email: null@documentoweb.com  Web:  www.documentoweb.comId: 2  Nombre: Alguien  Email: ...]]></description>
	<content:encoded><![CDATA[<h2>Obtener todos los registros</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $lista_registros = $persona-&gt;all();<br /><br />&nbsp;&nbsp;&nbsp; foreach ( $lista_registros as $registro ) {<br /><br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; }<br /><br />?&gt;<br /></pre>
<p>Para cargar todos los registros usamos la funci&oacute;n <strong>all()</strong>, luego recorremos el arreglo con un <strong>foreach</strong>.</p>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Null<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com<br /><br />Id: 2<br />&nbsp;&nbsp;Nombre: Alguien<br />&nbsp;&nbsp;Email:  alguien@alguienweb.com<br />&nbsp;&nbsp;Web: www.alguienweb.com<br /></pre>
<h2>Obtener un registro</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; $registro = $persona-&gt;get(1);<br /><br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;    echo 'Id: '.$registro-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Nombre: '.$registro-&gt;nombre.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Email: '.$registro-&gt;email.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&amp;nbsp;&amp;nbsp;Web: '.$registro-&gt;web.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo '&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; <br /><br />?&gt;<br /></pre>
<p>Para obtener un registro especifico usamos la funci&oacute;n <strong>get($id)</strong>, le pasamos por par&aacute;metros el id de el registro deseado.</p>
<p>Salida:</p>
<pre>Id: 1<br />&nbsp;&nbsp;Nombre: Null<br />&nbsp;&nbsp;Email: null@documentoweb.com<br />&nbsp;&nbsp;Web:  www.documentoweb.com</pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 24 Jul 2010 19:34:31</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad II</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-II</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-II#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-II</guid> 
	<description><![CDATA[ Nuevo Registro
Nuevo Archivo: index.php

Creamos 2 registros, usamos la función get() para obtener un nuevo id, el lo hace automáticamente por ser incrementable:
$nuevo_registro = $persona->get ();
Luego completamos los otros datos:
$nuevo_registro->nombre = "Null";$nuevo_registro->email =...]]></description>
	<content:encoded><![CDATA[<h2>Nuevo Registro</h2>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Null";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "null@documentoweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.documentoweb.com";<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />&nbsp;&nbsp;&nbsp; //Nuevo Registro<br /><br />&nbsp;&nbsp;&nbsp; $nuevo_registro = $persona-&gt;get ();<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;nombre = "Alguien";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;email = "alguien@alguienweb.com";<br />&nbsp;&nbsp;&nbsp; $nuevo_registro-&gt;web = "www.alguienweb.com";<br /><br />&nbsp;&nbsp;&nbsp; $persona-&gt;save($nuevo_registro);<br /><br />&nbsp;&nbsp;&nbsp; echo 'Registro Guardado &lt;br/&gt;';<br /><br />?&gt;<br /></pre>
<p>Creamos 2 registros, usamos la funci&oacute;n <strong>get()</strong> para obtener un nuevo id, el lo hace autom&aacute;ticamente por ser incrementable:</p>
<pre>$nuevo_registro = $persona-&gt;get ();</pre>
<p>Luego completamos los otros datos:</p>
<pre>$nuevo_registro-&gt;nombre = "Null";<br />$nuevo_registro-&gt;email = "null@documentoweb.com";<br />$nuevo_registro-&gt;web = "www.documentoweb.com";</pre>
<p>Para finalizar usamos la funci&oacute;n <strong>save($nuevo_registro)</strong>, para guardar en la base de datos el registro y sus datos:</p>
<pre>$persona-&gt;save($nuevo_registro);<br /></pre>
<p>Salida:</p>
<pre>Registro Guardado <br />Registro Guardado</pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 23 Jul 2010 19:44:34</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Mapeo Objeto-Relacional Unidad I</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-I</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-I#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Mapeo-Objeto-Relacional-Unidad-I</guid> 
	<description><![CDATA[ Conexión
Archivo: Conexion.php

El primer archivo requerido es el Base.php este es para las tablas, el mapeo.
El segundo es la interfaz de conexión para MySql.
El bloque try-catch es una estructura que se usa cuando es necesario capturar excepciones (errores).
try {//Sentencias a ejecutar}...]]></description>
	<content:encoded><![CDATA[<h2>Conexi&oacute;n</h2>
<p><em><strong>Archivo: Conexion.php</strong></em></p>
<pre>&lt;?php<br /><br />//Archivos necesarios<br />require 'phpDataMapper/Base.php';<br />require 'phpDataMapper/Adapter/Mysql.php';<br /><br />class Conexion {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; public function getConexion() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />            //parametros: ip, base de datos, usuario, pass<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $conexion = new phpDataMapper_Adapter_Mysql ( 'localhost', 'prueba', 'root', '' );<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch ( Exception $e ) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $e-&gt;getMessage ();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit ();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $conexion;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;<br /></pre>
<p>El primer archivo requerido es el Base.php este es para las tablas, el mapeo.</p>
<p>El segundo es la interfaz de conexi&oacute;n para MySql.</p>
<p>El bloque try-catch es una estructura que se usa cuando es necesario capturar excepciones (errores).</p>
<pre>try {<br />//Sentencias a ejecutar<br />} catch ( Exception $e ) {<br />//Sentancias a ejecutar en caso de una excepcion<br />}<br /></pre>
<p>En este caso la excepci&oacute;n seria que no se pudo hacer la conexi&oacute;n con MySql.</p>
<h2>Mapeo</h2>
<p><em><strong>Archivo: Persona.php</strong></em></p>
<pre>&lt;?php<br /><br />class Persona extends phpDataMapper_Base {//inicio de la clase de mapeo<br /><br />&nbsp;&nbsp;&nbsp; // definir la fuente de datos (tabla)<br />&nbsp;&nbsp;&nbsp; protected $_datasource = "persona";<br /><br />&nbsp;&nbsp;&nbsp; // definir los atributos como propiedades de la clase con visibilidad publica<br />&nbsp;&nbsp;&nbsp; public $id = array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $nombre = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $email = array ('type' =&gt; 'string', 'required' =&gt; true );<br />&nbsp;&nbsp;&nbsp; public $web = array ('type' =&gt; 'string' );<br />&nbsp; &nbsp;<br />}//fin de la clase de mapeo<br /><br />?&gt;<br /></pre>
<h2>Estructura:</h2>
<ul>
<li>La Clase lleva el nombre de la tabla que va a representar (mapear).</li>
<li>La variable <strong>$_datasource</strong> es el nombre de la tabla.</li>
<li>Todos los atributos deben ser representados.</li>
<li>Los <strong>id</strong> (claves primarias), deben ser autoincrementables en la base de datos, su representaci&oacute;n est&aacute;ndar es:<strong> array ('type' =&gt; 'int', 'primary' =&gt; true, 'serial' =&gt; true )</strong>;</li>
<li>Los atributos requeridos (not null) poseen el estatus 'required' =&gt; true</li>
<li>Los dem&aacute;s atributos solo llevan el tipo.</li>
<li>Cada tabla debe ser representada por su modelo.</li>
<li>El modelo hereda de<strong> phpDataMapper_Base</strong>.</li>
<li>La idea simplemente es llevar la tabla a c&oacute;digo PHP.</li>
</ul>
<h2>Uso</h2>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $persona = new Persona(Conexion::getConexion());<br />&nbsp;&nbsp; &nbsp;<br />?&gt;<br /></pre>
<p>Al instanciar el modelo pasamos por parametro la conexi&oacute;n.</p>
<p>La sentencia Conexion::getConexion() significa una auto-instanciaci&oacute;n de Conexion(), (no se necesita el <strong>new</strong>), y llamado de la funci&oacute;n getConexion() inmediatamente.</p>
<p>Tambi&eacute;n podr&iacute;a ser:</p>
<pre>&lt;?php<br /><br />&nbsp;&nbsp;&nbsp; include 'Conexion.php';<br />&nbsp;&nbsp;&nbsp; include 'Persona.php';<br /><br />&nbsp;&nbsp;&nbsp; $conexion = new Conexion();<br />&nbsp;&nbsp;&nbsp; $persona = new Persona($conexion-&gt;getConexion());<br /><br />?&gt;</pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:16:43</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Patrón de Diseño Mapeo Objeto-Relacional</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Patron-de-Diseno-Mapeo-Objeto-Relacional</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Patron-de-Diseno-Mapeo-Objeto-Relacional#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Patron-de-Diseno-Mapeo-Objeto-Relacional</guid> 
	<description><![CDATA[ Mejor conocido como ORM por sus siglas en ingles Object-Relational Mapping. Este patrón está dirigido a las bases de datos, como sabemos las bases de datos son un conjunto de objetos relacionados entre si, de ahí su nombre, el mapeo se refiere a la descripción y estructura de un objeto (para...]]></description>
	<content:encoded><![CDATA[<p>Mejor conocido como <em><strong>ORM</strong></em> por sus siglas en ingles <em><strong>Object-Relational Mapping</strong></em>. Este patr&oacute;n est&aacute; dirigido a las bases de datos, como sabemos las bases de datos son un conjunto de objetos relacionados entre si, de ah&iacute; su nombre, el mapeo se refiere a la descripci&oacute;n y estructura de un objeto (para este caso).</p>
<p>Para aplicar este patr&oacute;n usaremos phpDataMapper, una herramienta creada bajo el <em><strong>ORM</strong></em> , nos facilitar&aacute; en gran manera el manejo de nuestra base de datos.</p>
<p>Es una herramienta de gran utilidad para cuando se necesite crear una aplicaci&oacute;n r&aacute;pidamente, adem&aacute;s suma robustez a nuestra aplicaci&oacute;n, ayuda mantener un c&oacute;digo elegante y entendible.</p>
<h2>Links Relacionados</h2>
<ul>
<li><a href="http://es.wikipedia.org/wiki/Mapeo_objeto-relacional" target="_blank">Mapeo objeto-relacional</a></li>
<li><a href="http://phpdatamapper.com/" target="_blank">phpDataMapper Home</a></li>
<li><a href="../../PHP/Tutorial/Patron-de-Diseno-Orientado-a-Objetos" target="_blank">OOP</a></li>
<li>Descarga: <a href="http://github.com/vlucas/phpDataMapper/zipball/v0.5.1b" target="_blank">phpDataMapper</a></li>
</ul>
<h2>Uso</h2>
<p><em>Para poder implementar la herramienta necesitamos <a href="http://github.com/vlucas/phpDataMapper/zipball/v0.5.1b" target="_blank">descargarla</a>, descomprimirla y pegarla en el directorio ra&iacute;z de nuestra aplicaci&oacute;n.</em></p>
<p><em><strong>I</strong><strong>mportante:</strong> </em></p>
<ul>
<li><em>Esta herramienta necesita que los <strong>id</strong> de cada <strong>entidad</strong> sean <strong>autoincrementables</strong>, por ello se necesita MySql como administrador de base de datos (Hasta ahora esa es la interfaz de conexi&oacute;n que usa phpDataMapper).</em></li>
</ul>
<h2>Antes de Empezar</h2>
<ul>
<li><em>Para este Tutorial usaremos <strong>MySql</strong>.</em></li>
<li><em>Base de Datos: <strong>prueba.</strong></em></li>
<li><em>Tabla: <strong>persona</strong>.<br /></em></li>
<li><em>Atributos: <strong>id </strong>(int), <strong>nombre</strong> (varchar), <strong>email</strong> (varchar), <strong>web </strong>(varchar).</em></li>
<li><em>Tabla: <strong>publicacion</strong>.</em></li>
<li><em>Atributos: <strong>id</strong> (int), <strong>nombre</strong> (varchar), <strong>personaid</strong> (int).<br /></em></li>
</ul>
<h2>Unidades</h2>
<ul>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-I" target="_blank">Unidad I: Conexi&oacute;n y Mapeo</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-II" target="_blank">Unidad II: Creaci&oacute;n de un Registro</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-III" target="_blank">Unidad III: Obtenci&oacute;n de un Registro</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-IV" target="_blank">Unidad IV: Actualizaci&oacute;n y Eliminaci&oacute;n de un Registro</a></li>
<li><a href="Diseno-Mapeo-Objeto-Relacional-Unidad-V" target="_blank">Unidad V: Otras Caracteristicas</a></li>
</ul>
<p>&nbsp;</p>
<blockquote>
<p>Si quieres aprender programaci&oacute;n web, s&oacute;lo en la web aprender&aacute;s</p>
<p>&nbsp;</p>
</blockquote>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 22 Jul 2010 21:15:55</pubDate>
</item>
<item> 
	<title>Web: Analiza la velocidad de una página web con Pingdom Tools</title> 
	<link>http://www.documentoweb.com/Web/Analiza-la-velocidad-de-una-pagina-web-con-Pingdom-Tools</link> 
	<comments>http://www.documentoweb.com/Web/Analiza-la-velocidad-de-una-pagina-web-con-Pingdom-Tools#mensajes </comments> 
	<guid>http://www.documentoweb.com/Web/Analiza-la-velocidad-de-una-pagina-web-con-Pingdom-Tools</guid> 
	<description><![CDATA[ Una herramienta de Pingdom nos permite probar el tiempo de carga de un sitio web, analizando cada elemento enlazado que exista.
Así, podemos saber qué elemento está muy pesado, qué podemos comprimir, cual es el archivo que nos retrasa, cual tiene una URL rota o simplemente darse cuenta del...]]></description>
	<content:encoded><![CDATA[<p>Una<a title="Ir a Pingdom Tools" href="http://tools.pingdom.com/"> herramienta de Pingdom</a> nos permite probar el tiempo de carga de un sitio web, analizando cada elemento enlazado que exista.</p>
<p>As&iacute;, podemos saber qu&eacute; elemento est&aacute; muy pesado, qu&eacute; podemos comprimir, cual es el archivo que nos retrasa, cual tiene una URL rota o simplemente darse cuenta del tiempo en que carga el sitio.</p>
<p><a title="Ir a Pingdom Tools" href="http://tools.pingdom.com/"><img src="http://farm5.static.flickr.com/4075/4816200862_192337ef4b_b.jpg" alt="" /></a></p>
<p>No te que los navegadores cachean archivos, por lo que si ya has visitado un sitio, su carga puede ser muy inferior a la del test.</p>
<p>DocumentoWeb tiene un tiempo de carga aproximado de 3.5 segundos (4.6 dice el test, pero abajo hay unas urls de la p&aacute;gina web defecto del mi servidor).</p>
<p>Gracias a <a href="http://calizman.com/">calizman</a>&nbsp;por darme el dato :).</p>
<h3>Art&iacute;culos relacionados</h3>
<ul>
<li><a href="../../Optimizar-tu-sitio-y-acelerar-la-carga-web">Optimizar tu sitio y acelerar la carga web</a></li>
</ul>]]></content:encoded> 	<category><![CDATA[web]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 21 Jul 2010 14:10:06</pubDate>
</item>
<item> 
	<title>Trucos: Optimizar tu sitio y acelerar la carga web</title> 
	<link>http://www.documentoweb.com/Optimizar-tu-sitio-y-acelerar-la-carga-web</link> 
	<comments>http://www.documentoweb.com/Optimizar-tu-sitio-y-acelerar-la-carga-web#mensajes </comments> 
	<guid>http://www.documentoweb.com/Optimizar-tu-sitio-y-acelerar-la-carga-web</guid> 
	<description><![CDATA[ Con estos sencillos trucos tu sitio web cargará más rápido y tus usuarios te lo agreceran

Herramientas para webmasters
Instalar en Firefox: yslow & Firebug
Optimizar y limpiar los CSS: Cleancss
Page Speed (Tiene Addons para firefox)

Si eres como yo que no me importa como se vea el...]]></description>
	<content:encoded><![CDATA[<p>Con estos sencillos trucos tu sitio web cargar&aacute; m&aacute;s r&aacute;pido y tus usuarios te lo agreceran</p>
<ul>
<li><a href="https://www.google.com/webmasters/tools/home?hl=es" target="_blank">Herramientas para webmasters</a></li>
<li>Instalar en <a href="http://www.mozilla-europe.org/es/firefox/" target="_blank">Firefox</a>: <a href="http://developer.yahoo.com/yslow/" target="_blank">yslow</a>&nbsp;&amp; <a href="http://getfirebug.com/" target="_blank">Firebug</a></li>
<li>Optimizar y limpiar los CSS:&nbsp;<a href="http://www.cleancss.com/" target="_blank">Cleancss</a></li>
<li><a href="http://code.google.com/intl/es-VE/speed/page-speed/docs/payload.html" target="_blank">Page Speed</a>&nbsp;(Tiene Addons para firefox)</li>
</ul>
<p>Si eres como yo que no me importa como se vea el c&oacute;digo HTML en el browser, comprimelo al m&aacute;ximo eliminando los espacios innecesarios, y modificando el <a href="http://php.net/manual/es/function.header.php" target="_blank">HEADER</a>.</p>
<p>Coloca esto al principio de la p&aacute;gina:</p>
<pre>&lt;?php<br />// NO TOCAR<br />header('Accept-Ranges: bytes');<br />$ExpStr = 'Expires: '.gmdate("D, d M Y H:i:s", time() + 14400) . " GMT"; // 14400 = 4 horas<br />header($ExpStr);<br />header("Cache-Control: maxage=14400");<br />header("Cache-Control: public, must-revalidate");<br />header("Cache-Control: public");<br />header("pragma: public");<br />header("Content-Transfer-Encoding:gzip;q=1.0,identity;q=0.5,*;q=0");<br />header("Cache-Control: cache");<br />header("Pragma: cache");<br />header('Content-Type: text/html; charset=iso-8859-1');<br />setlocale(LC_TIME, 'es_VE'); # Localiza en espa&Atilde;&plusmn;ol es_Venezuela<br />// FIN NO TOCAR<br />// elimina los espacios en blanco<br />function compress_page($buffer) { $search = array('/\&gt;[^\S ]+/s','/[^\S ]+\&lt;/s','/(\s)+/s'); $replace = array('&gt; ',' &lt;','\\1'); return preg_replace($search, $replace, $buffer); }<br />ob_gzhandler(ob_start("compress_page"));<br />?&gt;</pre>
<p>Y al final luego del tag&lt;html&gt;:</p>
<pre>&lt;?php ob_end_flush(); ?&gt;</pre>
<p>Al usar archivos .htaccess se maximiza la carga (m&aacute;s sobre los  .htaccess en <a href="http://httpd.apache.org/docs/1.3/howto/htaccess.html" target="_blank">Apache</a>).&nbsp;</p>
<pre>&lt;IfModule mod_expires.c&gt;<br /> ExpiresActive On <br /> ExpiresDefault A86400 <br /> ExpiresByType image/x-icon A2592000 <br /> ExpiresByType application/x-javascript A2592000 <br /> ExpiresByType text/css A2592000 <br /> ExpiresByType image/gif A604800 <br /> ExpiresByType image/png A604800 <br /> ExpiresByType image/jpeg A604800<br /> ExpiresByType text/plain A604800<br /> ExpiresByType application/x-shockwave-flash A604800<br /> ExpiresByType video/x-flv A604800<br /> ExpiresByType application/pdf A604800<br /> ExpiresByType text/html A900<br /> &lt;/IfModule&gt;<br /> #Header<br /> &lt;IfModule mod_headers.c&gt;<br /> # YEAR<br /> &lt;FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$"&gt;<br /> Header set Cache-Control "max-age=29030400"<br /> &lt;/FilesMatch&gt;<br /> # WEEK<br /> &lt;FilesMatch "\.(js|css|swf)$"&gt;<br /> Header set Cache-Control "max-age=1604800"<br /> &lt;/FilesMatch&gt;<br /> # 45 MIN<br /> &lt;FilesMatch "\.(html|htm|txt)$"&gt;<br /> Header set Cache-Control "max-age=2700"<br /> &lt;/FilesMatch&gt;<br /> &lt;FilesMatch "\.(xml|txt|html)$"&gt;<br /> ExpiresDefault A71400<br /> Header append Cache-Control "private, must-revalidate"<br /> &lt;/FilesMatch&gt;<br /> &lt;/IfModule&gt;<br /> ################## GZip Files ###################<br /> &lt;FilesMatch "\.js$"&gt;<br /> AddHandler application/x-httpd-php .js<br /> php_value default_mimetype "text/javascript"<br /> &lt;/FilesMatch&gt;<br /> &lt;FilesMatch "\.css$"&gt;<br /> AddHandler application/x-httpd-php .css<br /> php_value default_mimetype "text/css"<br /> &lt;/FilesMatch&gt;<br /> &lt;FilesMatch "\.(htm|html|shtml)$"&gt;<br /> AddHandler application/x-httpd-php .html<br /> php_value default_mimetype "text/html"<br /> &lt;/FilesMatch&gt;<br /> # ejemplo: /var/www/vhosts/tu_sitio/httpdocs/gzip.<br /> php_value auto_prepend_file ruta_real_de_tu sitio_/gzip.php<br /> </pre>
<p>el c&oacute;digo del archivo gzip.php</p>
<pre>&lt;?php<br /> &nbsp;if(isset($_SERVER['HTTP_ACCEPT_ENCODING']) &amp;&amp; substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start('ob_gzhandler'); else ob_start();<br /> &nbsp;?&gt;&nbsp;</pre>
<p>Para observar si en verdad mejora, prueba en estas p&aacute;ginas la carga de tu sitio, y luego de hacer los cambios prueba de nuevo, observar&aacute;s gran mejora.</p>
<ol>
<li><a href="http://www.webpagetest.org/test" target="_blank">http://www.webpagetest.org/test</a> <strong>RECOMENDADO</strong></li>
<li><a href="http://www.jpwebsystems.com/utilidades-web.php" target="_blank">http://www.jpwebsystems.com/utilidades-web.php</a></li>
<li><a href="http://www.velocidadtotal.com/es/speed_test.html" target="_blank">http://www.velocidadtotal.com/es/speed_test.html</a></li>
<li><a href="http://analyze.websiteoptimization.com/" target="_blank">http://analyze.websiteoptimization.com/</a> <strong>Importante</strong></li>
<li><a href="http://webwait.com/" target="_blank">http://webwait.com/</a> <strong>&uacute;til</strong></li>
</ol>
<p>Adem&aacute;s hay que tener en cuenta algunos otros detalles:</p>
<ul>
<li>Minimizar Peticiones HTTP</li>
<li>Optimizar las imagenes, usar la menor cantidad de colores posibles, el Addons recomendado arriba te da la opci&oacute;n de guardar la imagen optimizada.&nbsp;</li>
<li>En el c&oacute;digo HTML evitar los comentarios en lo m&aacute;ximo posible</li>
<li>Optimizar los javascript, llevarlos a su m&aacute;xima compresion</li>
<li>Optimizar los CSS&nbsp;</li>
<li>Invocar las im&aacute;genes desde las hojas de estilo (css)</li>
</ul>
<p>Dale una mirada a este enlace:&nbsp;<a href="http://stevesouders.com/hpws/rules.php" target="_blank">High Performance Web Sites</a>.</p>
<p>Tambi&eacute;n ser&iacute;a bueno a&ntilde;adir en el .htacces lo siguiente:</p>
<pre># evita el User-Agent libwww-perl<br /><br />RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR]<br />RewriteCond %{QUERY_STRING} ^(.*)=http [NC]
RewriteRule ^(.*)$ &ndash; [F,L]<br /><br /># mejora el mime para el expire<br /><br />RewriteRule (.*)-cb\d+\.(.*)$ $1.$2 [L]</pre>
<p>Best Practices for Speeding Up Your Web Site<br /> <a href="http://developer.yahoo.com/performance/rules.html" target="_blank">http://developer.yahoo.com/performance/rules.html</a></p>
<p>Estos consejos te ayudaran a mejorar el rendimiento de carga de tu sitio web hasta en un 20% lo que tus usuarios lo agradeceran.</p>
<p>Fuente:<br /><a href="http://www.xombra.com" target="_blank">http://www.xombra.com</a></p>]]></content:encoded> 	<category><![CDATA[trucos]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 20 Jul 2010 21:10:17</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Patrón de Diseño Orientado a Objetos</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Patron-de-Diseno-Orientado-a-Objetos</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Patron-de-Diseno-Orientado-a-Objetos#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Patron-de-Diseno-Orientado-a-Objetos</guid> 
	<description><![CDATA[  
Este patrón es muy útil sobre todo si se trabaja con grupos grandes de desarrolladores, ya que se pueden crear estructuras de manera que deban ser seguidas, para que así asegurar el perfecto funcionamiento de la aplicación al ser fusionada.
¿Cómo definimos este patrón?, es un método por...]]></description>
	<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Este patr&oacute;n es muy &uacute;til sobre todo si se trabaja con grupos grandes de desarrolladores, ya que se pueden crear estructuras de manera que deban ser seguidas, para que as&iacute; asegurar el perfecto funcionamiento de la aplicaci&oacute;n al ser fusionada.</p>
<p>&iquest;C&oacute;mo definimos este patr&oacute;n?, es un m&eacute;todo por el cual los desarrolladores pueden crear y organizar entidades, estas entidades son una simulaci&oacute;n del mundo real, y por ende simulan soluciones a problemas reales, en otras palabras se imita de alguna forma como hacemos las cosas a mano, pero en un estructura programada.</p>
<h3>Caracteristicas</h3>
<ul>
<li>Simula actividades del mundo real.</li>
<li>El usuario crea sus propios tipos de datos.</li>
<li>Reutilizaci&oacute;n del c&oacute;digo.</li>
<li>Permite la portabilidad, compatibilidad y robustez, de ahi la creaci&oacute;n de FrameWorks.</li>
<li>Capacidad de encapsular la informaci&oacute;n y procedimientos.</li>
<li>Construci&oacute;n de sistemas complejos, con la participaci&oacute;n de muchos desarrolladores.</li>
<li>Mejor mantenimiento y adaptabilidad de modulos.</li>
<li>Es m&aacute;s entendible.</li>
</ul>
<h3>Pilares Fundamentales</h3>
<ul>
<li>Encapsulamiento.</li>
<li>Herencia.</li>
<li>Clase (Entidad).</li>
<li>Objeto.</li>
<li>Polimorfismo.</li>
</ul>
<h3>Analisis</h3>
<p>Existe un concepto para el an&aacute;lisis de patrones y de aplicaciones, este se llama <em><strong>Cohesi&oacute;n</strong></em> y <em><strong>Acoplamiento</strong></em>, nos ayuda a observar el grado de funcionalidad del c&oacute;digo y de la implementaci&oacute;n de una aplicaci&oacute;n, son conceptos un tanto dificiles, la <em><strong>cohesi&oacute;n</strong></em> es la capacidad de que los m&oacute;dulos o funciones resuelvan un problema por si solas, generalmente estas son agrupadas, en librer&iacute;as, en nuestro caso en <em><strong>clases</strong></em>, de manera que simulen la realidad, por ejemplo los usuarios, estos pueden ser eliminados, actualizados, y generados, todos esos m&oacute;dulos (funciones) est&aacute;n evocados hacia una misma entidad, pero cada una resuelve un problema distinto y por si solo, al organizarlos y unirlos creamos la <em><strong>clase</strong></em> <em>Usuario</em>, el <em><strong>acoplamiento</strong></em> se refiere a la dependencia que tiene un m&oacute;dulo de otro, al cambiar uno es necesario hacer cambios en el otro, esto es malo, debemos intentar tener el menor grado de <em><strong>acoplamient</strong><strong>o</strong></em> posible en nuestras aplicaciones, solo lo necesario y obligatorio, por ejemplo si en vez de usar una clase Usuario us&aacute;ramos una funci&oacute;n que recibiera el tipo de procedimiento, proceso($proceso), donde $proceso seria, "eliminar", "crear", "actualizar", podr&iacute;a a futuro generar molestias, y perdida de tiempo al intentar hacer grandes modificaciones, y lo peor es que los problemas generalmente aumenta exponencialmente. El <em><strong>dise&ntilde;o orientado a objetos</strong></em> tambi&eacute;n conocido como <em><strong>programaci&oacute;n orientada a objetos</strong></em> nos permite crear estructuras poco acopladas, para as&iacute; asegurar la compatibilidad y portabilidad de nuestro c&oacute;digo, es una muy buena opci&oacute;n implementarla, por supuesto que lleva tiempo, pero a la larga se notar&aacute; su flexibilidad.</p>
<h3>Unidades</h3>
<ul>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-I" target="_blank">Unidad I</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-II" target="_blank">Unidad II</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-III" target="_blank">Unidad III</a></li>
<li><a href="Diseno-Orientado-a-Objetos-Unidad-IV" target="_blank">Unidad IV</a></li>
</ul>
<p>&nbsp;</p>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 20 Jul 2010 19:23:00</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Orientado a Objetos Unidad IV</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-IV</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-IV#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-IV</guid> 
	<description><![CDATA[ Bueno ya esta es la publicación final de esta saga, hablaré de los constructores y destructores.
Constructor
El constructor de una clase tiene como principal objetivo el de inicializar el objeto al ser instanciado, colocando así sus atributos en los valores deseados.
El constructor es una...]]></description>
	<content:encoded><![CDATA[<p>Bueno ya esta es la publicaci&oacute;n final de esta saga, hablar&eacute; de los <em><strong>constructores</strong></em> y <em><strong>destructores</strong></em>.</p>
<h2>Constructor</h2>
<p>El <em><strong>constructor de una clase</strong></em> tiene como principal objetivo el de inicializar el objeto al ser instanciado, colocando as&iacute; sus atributos en los valores deseados.</p>
<p>El <em><strong>constructor</strong></em> es una funci&oacute;n, y como tal puede o no recibir p&aacute;rametros.</p>
<p>En PHP un ejemplo de constructor de una clase seria el siguiente:</p>
<pre>public function __construct() {<br /><br />}<br /></pre>
<p>Notemos que la funci&oacute;n esta denotada as&iacute;: <strong>__construct()</strong>, dos underscore ( __ ) y la palabra <em><strong>construct</strong></em>.</p>
<h2>Destructor</h2>
<p>El <em><strong>destructor de una clase</strong></em> es muy similar a el <em><strong>constructor</strong></em>, la diferencia radica en que este es llamado cuando es destruido el objeto, en otras palabras eliminado de la memoria, claro es solo en teoria, su objetivo principal es devolver alg&uacute;n objeto o situaci&oacute;n a su estado original, por ejemplo, cerrar conexiones con base de datos, o limpiar archivos temporales, o eliminar plantillas usadas, entre otras, ahora el concepto <em><strong>destructor</strong></em> no existe en PHP4 as&iacute; que cuidado con eso.</p>
<p>El destructor no recibe par&aacute;metros.</p>
<p>Un ejemplo seria el siguiente:</p>
<pre>public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />}</pre>
<p>Posee una estructura igual al constructor pero con la palabra <em><strong>destruct</strong></em>, <em>el destructor no funciona muy bien si se hereda esa clase, as&iacute; que cuidado, dependiendo de lo que se haga sirve o no, y para saberlo se necesita experiencia.</em></p>
<p>Ejemplo:</p>
<p><em><strong>Archivo: Estudiante.php</strong></em></p>
<pre>&lt;?php<br /><br />class Estudiante {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $id;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function __construct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;id=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre="Null";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Construyendo &lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Nombre: '.$this-&gt;nombre.', ID: '.$this-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Destruyendo';<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Estudiante.php';<br /><br />$estudiante = new Estudiante();<br /><br />?&gt;</pre>
<p>Salida:</p>
<pre>Construyendo <br />Nombre: Null, ID: 0<br />Destruyendo</pre>
<p>Mejoremos el c&oacute;digo, le colocaremos par&aacute;metros predefinidos al constructor:</p>
<p><em><strong>Nuevo Archivo: Estudiante.php</strong></em></p>
<pre>&lt;?php<br /><br />class Estudiante {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $id;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function __construct($id=0,$nombre="Null") {//Parametros predefinidos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;id=$id;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Construyendo &lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Nombre: '.$this-&gt;nombre.', ID: '.$this-&gt;id.'&lt;br/&gt;';<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function __destruct() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 'Destruyendo';<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>&iquest;Para qu&eacute; se usan estos par&aacute;metros?, bueno si al instanciar el objeto no se pasan datos por par&aacute;metros estos ser&aacute;n los valores que tomaran las variable.</p>
<p>Ejemplo:</p>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Estudiante.php';<br /><br />$estudiante = new Estudiante(2,"Pedro");<br /><br />?&gt;</pre>
<p>Salida:</p>
<pre>Construyendo <br />Nombre: Pedro, ID: 2<br />Destruyendo</pre>
<p>Salida sin usar par&aacute;metros:</p>
<pre>Construyendo <br />Nombre: Null, ID: 0<br />Destruyendo<br /></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas   en algo...</span></span></span></span></span></p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 19 Jul 2010 21:03:09</pubDate>
</item>
<item> 
	<title>PHP: Fechas y horas en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Fechas-y-horas-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Fechas-y-horas-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Fechas-y-horas-en-PHP</guid> 
	<description><![CDATA[ 
Veremos como utilizar funciones para determinar y usar las fechas y horas a nuestro favor con el lenguaje PHP.
La función por excelencia de las horas y fechas es date().
Función date()
La funcióne date()que se utiliza de la siguiente forma:
$fecha = date('d M Y');
Donde los carácteres...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Veremos como utilizar funciones para determinar y usar las <strong>fechas y horas</strong> a nuestro favor con el lenguaje PHP.</p>
<p>La funci&oacute;n por excelencia de las horas y fechas es <code>date()</code>.</p>
<h2>Funci&oacute;n date()</h2>
<p>La funci&oacute;ne&nbsp;<code>date()</code>que se utiliza de la siguiente forma:</p>
<pre>$fecha = date('d M Y');</pre>
<p>Donde los car&aacute;cteres incluidos dentro de las comillas de la funci&oacute;n <code>date()</code> son reemplazados si existe un equivalente para dicho car&aacute;cter. En la siguiente tabla [<a href="http://php.net/manual/en/function.date.php">ver completa en PHP.net</a>], se muestran las equivalencias de cada letra para utilizarlas dentro de esta funci&oacute;n.</p>
<p>&nbsp;</p>
<table>
<tbody>
<tr>
<th>Caracter</th> <th>Descripci&oacute;n</th>
</tr>
<tr>
<td>d</td>
<td>D&iacute;a del mes con ceros</td>
</tr>
<tr>
<td>j</td>
<td>Dia del mes sin ceros</td>
</tr>
<tr>
<td>D</td>
<td>D&iacute;a de la semana textual en ingl&eacute;s (3 letras)</td>
</tr>
<tr>
<td>m</td>
<td>Mes num&eacute;rico con ceros</td>
</tr>
<tr>
<td>n</td>
<td>Mes num&eacute;rico sin ceros</td>
</tr>
<tr>
<td>F</td>
<td>Mes textual en ingl&eacute;s completo</td>
</tr>
<tr>
<td>M</td>
<td>Mes textual en ingl&eacute;s (3 letras)</td>
</tr>
<tr>
<td>Y</td>
<td>A&ntilde;o con 4 d&iacute;gitos</td>
</tr>
<tr>
<td>y</td>
<td>A&ntilde;o con 2 d&iacute;gitos</td>
</tr>
<tr>
<td>a</td>
<td>Ante o post meridiano en min&uacute;scula</td>
</tr>
<tr>
<td>A</td>
<td>Ante o post meridiano en may&uacute;scula</td>
</tr>
<tr>
<td>g</td>
<td>Hora (formato 12 horas sin ceros)</td>
</tr>
<tr>
<td>G</td>
<td>Hora (formato 24 horas sin ceros)</td>
</tr>
<tr>
<td>h</td>
<td>Hora (formato 12 horas con ceros)</td>
</tr>
<tr>
<td>H</td>
<td>Hora (formato 24 horas con ceros)</td>
</tr>
<tr>
<td>i</td>
<td>Minutos con ceros</td>
</tr>
<tr>
<td>s</td>
<td>Segundos con ceros</td>
</tr>
<tr>
<td>u</td>
<td>Microsegundos</td>
</tr>
</tbody>
</table>
<p><a href="http://php.net/manual/en/function.date.php">M&aacute;s en funci&oacute;n date() de PHP.net</a>.</p>
<p>Veremos un simple ejemplo con caracteres que aparecen en la tabla superior. Recordemos que solo los que aparecen en la tabla oficial de PHP.net son los que se reemplazan en la sintaxis de <code>date()</code>.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre> &lt;?php<br /><br /> $hoy = date('d M Y, H:i:s a');<br /> echo "Hoy es: ".$hoy;<br /><br /> ?&gt; </pre>
<p><strong>Resultado PHP:</strong></p>
<p>Hoy es: 19 Jul 2010, 12:01:46 pm</p>
<p>Caracteres como la coma, los espacios y dos puntos no son reemplazados por PHP.</p>
<h2>Funci&oacute;n time()</h2>
<p>La funci&oacute;n&nbsp;<code>time()</code> muestra los segundos que han transcurrido desde el primero de enero de 1970 (00:00 GMT). Con ella podemos calcular diferentes cosas, por ejemplo, cuantos segundos han transcurrido entre ayer y hoy, o menor a&uacute;n, cuantas horas entre el mismo intervalo siempre y cuando le restemos o hagamos&nbsp;alg&uacute;n&nbsp;c&aacute;lculo con el dato de&nbsp;<code>time()</code>.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre>&lt;?php<br /><br />$una_semana = 60 * 60 * 24 * 7 ;<br />// 60 segundos * 60 minutos * 24 horas * 7 d&iacute;as nos da los segundos transurridos<br />durante una semana.<br /><br />$un_dia = 60 * 60 * 24 ;<br />// 60 segundos * 60 minutos * 24 horas nos da los segundos transurridos durante un d&iacute;a.<br /><br />$la_semana_pasada = time() - $una_semana;<br />$la_semana_antepasada = time() - ($una_semana * 2);<br />$la_semana_siguiente = time() + $una_semana;<br />$en_ocho_dias = time() + $una_semana + $un_dia;<br />$en_diez_dias = time() + ($un_dia * 10);<br /><br />// as&iacute; podemos calcular diferentes tiempos en segundos<br /><br />?&gt;</pre>
<p>Ahora, podemos utilizar nuestra funci&oacute;n date() junto a time() para obtener fechas, de la siguiente forma:</p>
<pre>echo date('d M Y',$en_diez_dias)."&lt;br /&gt;";<br />echo date('d M Y',$la_semana_antepasada);</pre>
<p><strong>Resultado PHP:</strong></p>
<p>29 Jul 2010<br />05 Jul 2010</p>
<h3>Art&iacute;culo relacionado:</h3>
<p><a href="../PHP/Funcion-PHP-para-calcular-hace-cuanto-paso-aquello">Funci&oacute;n PHP para calcular hace cuanto pas&oacute; aquello</a>.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 19 Jul 2010 11:37:24</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Orientado a Objetos Unidad III</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-III</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-III#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-III</guid> 
	<description><![CDATA[ En esta publicación hablaré de las Clase Abstractas y de las Interfaces, usaremos el ejemplo de las figuras geométricas expuesto en la publicación anterior.
Clase Abstracta
En la Unidad I expliqué que una clase era un concepto o plantilla y que esta al ser instanciada se transformaba en un...]]></description>
	<content:encoded><![CDATA[<p>En esta publicaci&oacute;n hablar&eacute; de las Clase Abstractas y de las Interfaces, usaremos el ejemplo de las figuras geom&eacute;tricas expuesto en la publicaci&oacute;n anterior.</p>
<h2>Clase Abstracta</h2>
<p>En la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> expliqu&eacute; que una clase era un concepto o plantilla y que esta al ser instanciada se transformaba en un objeto en memoria, una <em><strong>clase abstracta</strong></em> sigue siendo un concepto, pero a diferencia de la clase normal (<strong><em>clase concreta</em></strong>) esta no puede ser instanciada.</p>
<p>Una <em><strong>clase abstracta</strong></em> posee <em><strong>funciones abstractas</strong></em>, son m&eacute;todos que no han sido escritos, s&oacute;lo est&aacute; su cabecera, y s&oacute;lo estas clases pueden representarlos, su objetivo es ser escritos (<em><strong>implementados</strong></em>) por las <em><strong>subclases</strong></em>, y as&iacute; aplicar el polimorfismo explicado en la <a href="Diseno-Orientado-a-Objetos-Unidad-II">Unidad II</a>.</p>
<p>Explicar&eacute; mejor las diferencias entre <em><strong>clases abstractas</strong></em> y <em><strong>clases concretas</strong></em> mediante una tabla:</p>
<table border="0">
<tbody>
<tr>
<td><em><strong>Clases Abstractas</strong></em></td>
<td><strong><em>Clases Concretas</em></strong></td>
</tr>
<tr>
<td>Se usan para generalizar o clasificar clases concretas</td>
<td>Se usan para representar un objeto</td>
</tr>
<tr>
<td>Son usadas para ser heredadas, por que no pueden ser instanciadas</td>
<td>Pueden ser instanciadas y heredadas si se desea</td>
</tr>
<tr>
<td>Poseen m&eacute;todos abstractos (sin implementaci&oacute;n)</td>
<td>No poseen m&eacute;todos abstractos</td>
</tr>
<tr>
<td>Poseen m&eacute;todos implementados</td>
<td>Poseen m&eacute;todos implementados</td>
</tr>
</tbody>
</table>
<p><em>Para crear una clase o funci&oacute;n abstracta usaremos la palabra reservada <strong>abstract</strong></em>.</p>
<p>Ahora mejorando el c&oacute;digo de la <a href="Diseno-Orientado-a-Objetos-Unidad-II">Unidad II</a>, la nueva <em><strong>superclase</strong></em>:</p>
<p><em><strong>Nuevo Archivo: Figura.php</strong></em></p>
<pre>&lt;?php<br /><br />abstract class Figura {//Inicio de la clase abstracta<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; abstract public function area();//Funcion sin implementacion<br /><br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>Notemos la sintaxis, en la cabecera de la clase se coloc&oacute; <em><strong>abstract class</strong></em>, y ahora la funci&oacute;n area() tambi&eacute;n es abstracta, notemos que no tiene llaves <strong>{...}</strong>, la funci&oacute;n termina en punto y coma <strong>;</strong></p>
<pre>abstract public function area();//Funcion sin implementacion</pre>
<p>Si intentaramos instanciar Figura generar&iacute;a un error ( <strong>$figura = new Figura()</strong>; )</p>
<pre><strong>Fatal error</strong>:  Cannot instantiate abstract class Figura in...</pre>
<p>Este dice que no se puede instanciar una clase abstracta.</p>
<p>Los otros archivos quedar&iacute;an igual.</p>
<h2>Interfaz</h2>
<p>Una interfaz es una colecci&oacute;n de funciones sin implementaci&oacute;n, son similares a las clases abstractas, no pueden ser instanciadas, pero adem&aacute;s <strong>todas</strong> las funciones son abstractas, su objetivo principal es obligar a las <em><strong>clases concretas</strong></em> a que implementen todos sus m&eacute;todos abstractos, as&iacute; se asegura que todas las clases que la usen o mejor dicho que implementen la interfaz tengan los m&eacute;todos que deben ser comunes, y asegurar el polimorfismo de los mismos. Si una <em><strong>clase abstracta</strong></em> implementa una interfaz no necesita implementar las funciones de la misma.</p>
<p>Para declarar una interfaz usaremos la palabra reservada <em><strong>interface</strong></em>.</p>
<p><em><strong>Archivo: IFigura.php</strong></em></p>
<pre>&lt;?php<br /><br />interface IFigura {//Inicio de la interfaz<br /><br />&nbsp;&nbsp;&nbsp; public function area();<br />&nbsp;&nbsp; &nbsp;<br />}//Fin de la interfaz<br /><br />?&gt;</pre>
<p>Ahora cambiemos la clase abstracta Figura, simplemente eliminamos el m&eacute;todo area();</p>
<p>Luego veamos como quedaria la clase Rectangulo, para usar una interfaz usaremos la palabra <em><strong>implements</strong></em>:</p>
<p><em><strong>Nuevo Archivo: Rectangulo.php</strong></em></p>
<pre>&lt;?php<br /><br />class Rectangulo extends Figura implements IFigura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br />}//Fin de la clase<br /><br />?&gt;</pre>
<p>Si no implementaramos area() cuando corrieramos el codigo pasar&iacute;a esto:</p>
<pre><strong>Fatal error</strong>:  Class Rectangulo contains 1 abstract method and  must therefore be declared abstract or implement the remaining methods  (IFigura::area) in...</pre>
<p>Nos dice que hay un m&eacute;todo abstracto declarado en la interfaz y que en Rectangulo no ha sido implementado.</p>
<p>Recordemos incluir la interfaz en el index:</p>
<p><em><strong>Nuevo Archivo: index.php</strong></em></p>
<pre>&lt;?php<br /><br />include 'Figura.php';<br />include 'IFigura.php';//Nueva inclusion<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />.<br />.<br />.<br /><br />?&gt;</pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas  en algo...</span></span></span></span></span></p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 18 Jul 2010 22:13:12</pubDate>
</item>
<item> 
	<title>DocumentoWeb: Logo vacaciones</title> 
	<link>http://www.documentoweb.com/DocumentoWeb/Logo-vacaciones</link> 
	<comments>http://www.documentoweb.com/DocumentoWeb/Logo-vacaciones#mensajes </comments> 
	<guid>http://www.documentoweb.com/DocumentoWeb/Logo-vacaciones</guid> 
	<description><![CDATA[ Esta imagen del logo la hice solo por un capricho que se me vino a la cabeza. Ayer estuve en la playa y me falto algo de tecnología.


Me encantaría estar como mi logo, pero no tengo portátil =(.                                                                                                   ...]]></description>
	<content:encoded><![CDATA[<p>Esta imagen del logo la hice solo por un capricho que se me vino a la cabeza. Ayer estuve en la playa y me falto algo de tecnolog&iacute;a.</p>
<p><img src="http://farm5.static.flickr.com/4139/4803012198_a6767eb116_b.jpg" alt="" /></p>
<p><img src="http://farm5.static.flickr.com/4139/4803012198_a6767eb116_m.jpg" alt="" /></p>
<p>Me encantar&iacute;a estar como mi logo, pero no tengo port&aacute;til =(.</p>]]></content:encoded> 	<category><![CDATA[documentoweb]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 17 Jul 2010 16:19:48</pubDate>
</item>
<item> 
	<title>¿Qué Framework PHP usas?</title> 
	<link>http://www.documentoweb.com/pregunta/Que-Framework-PHP-usas</link> 
	<comments>http://www.documentoweb.com/pregunta/Que-Framework-PHP-usas#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Que-Framework-PHP-usas</guid> 
	<description><![CDATA[ Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.                                                                                                                                                                                           ]]></description>
	<content:encoded><![CDATA[<p>Quisiera saber que framework usan y cuales son las cualidades que vieron en el para elegirlo como su herramienta.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 17 Jul 2010 10:20:32</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Orientado a Objetos Unidad II</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-II</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-II#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-II</guid> 
	<description><![CDATA[ Ya vimos los conceptos fundamentales de los objetos (Unidad I), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos serán las figuras geométricas.
Herencia
La herencia se refiera a que una clase B (subclase) puede usar la estructura de una clase A (superclase), igual...]]></description>
	<content:encoded><![CDATA[<p>Ya vimos los conceptos fundamentales de los objetos (<a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a>), avanzaremos a lo que es la herencia y polimorfismo, el ejemplo que utilizaremos ser&aacute;n las figuras geom&eacute;tricas.</p>
<h2>Herencia</h2>
<p>La <em><strong>herencia</strong></em> se refiera a que una clase B (<strong><em>subclase</em></strong>) puede usar la estructura de una clase A (<em><strong>superclase</strong></em>), igual que en el mundo real las personas heredamos los rasgos f&iacute;sicos de los padres, y no solo los rasgos f&iacute;sicos sino por ejemplo los apellidos.</p>
<p>La <em><strong>herencia</strong></em> es &uacute;til para tener un mejor entendimiento de los procesos de un programa de forma jerarquica o para clasificar una serie de clases rehusando el c&oacute;digo ya escrito.</p>
<p>Las clases que <strong><em>hereden</em></strong> obtendran<strong><em> todos los atributos y funciones</em></strong> de sus padres, y podran acceder a ellos si son <em><strong>public</strong></em> o <strong><em>protected</em></strong>, como explique en la <a href="Diseno-Orientado-a-Objetos-Unidad-I">Unidad I</a> los atributos y funciones <strong><em>private</em></strong> solo se pueden acceder dentro de la misma clase que los usa.</p>
<p>Las clases que <em><strong>hereden</strong></em> pueden agregar a su estructura nuevos atributos y funciones sin afectar a la <em><strong>superclase</strong></em>.</p>
<h2>Polimorfismo</h2>
<p>El <em><strong>polimorfismo</strong></em> se refiere a funciones que se llaman igual, pero se comportan diferente, <em>b&aacute;sicamente buscan solucionar el mismo problema de diferentes formas</em>.</p>
<p>Primero crearemos la <em><strong>superclase</strong></em>:</p>
<p><em><strong>Archivo: Figura.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $color;<br />&nbsp;&nbsp;&nbsp; private $nombre;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getColor(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setColor($color){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;color=$color;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getNombre(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;nombre=$nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Ahora creamos la primera herencia, para ello usaremos la palabra reservada <em><strong>extends</strong></em>:</p>
<p><em><strong>Archivo: Triangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Triangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $base;<br />&nbsp;&nbsp;&nbsp; private $altura;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getBase(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setBase($base){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;base=$base;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getAltura(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setAltura($altura){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;altura=$altura;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando el c&oacute;digo vemos que en la cabecera se escribe <em><strong>extends</strong></em> luego de darle nombre a la <em><strong>subclase</strong><strong>&nbsp;</strong></em> en este caso Triangulo, e inmediatamente despu&eacute;s el nombre de la<em><strong> superclase</strong></em>.</p>
<p>El <em>Triangulo</em> ahora obtiene los atributos y funciones de <em>Figura</em>.</p>
<p>La funci&oacute;n <em>area()</em> se sobrescribe y se le da la nueva forma.</p>
<p>Creando otra <em><strong>subclase</strong></em>:</p>
<p><em><strong>Archivo: Rectangulo.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Rectangulo extends Figura {//Inicio de la clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $ladoA;<br />&nbsp;&nbsp;&nbsp; private $ladoB;<br /><br />&nbsp;&nbsp;&nbsp; //Funciones<br />&nbsp;&nbsp;&nbsp; public function getLadoA(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoA($ladoA){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoA=$ladoA;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function getLadoB(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setLadoB($ladoB){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;ladoB=$ladoB;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; //Funcion Polimorfica<br />&nbsp;&nbsp;&nbsp; public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Analizando la funci&oacute;n <strong>area()</strong> podemos ver que su comportamiento cambia para ambas clases, pero siguen siendo la misma funci&oacute;n heredada.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Triangulo<br />&nbsp;   public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;base*$this-&gt;altura/2);<br />&nbsp;&nbsp;&nbsp; }<br /><br />//Rectangulo<br />    public function area(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ($this-&gt;ladoA*$this-&gt;ladoB);<br />&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></pre>
<p>Para finalizar:</p>
<p><em><strong>Archivo: index.php</strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include 'Figura.php';<br />include 'Triangulo.php';<br />include 'Rectangulo.php';<br /><br />$triangulo = new Triangulo();<br />$triangulo-&gt;setNombre("Triangulo");<br />$triangulo-&gt;setAltura(2);<br />$triangulo-&gt;setBase(2);<br /><br />echo 'Nombre: '.$triangulo-&gt;getNombre().', Area: '.$triangulo-&gt;area();<br /><br />echo '&lt;br/&gt;';<br /><br />$rectangulo = new Rectangulo();<br />$rectangulo-&gt;setNombre("Rectangulo");<br />$rectangulo-&gt;setLadoA(2);<br />$rectangulo-&gt;setLadoB(2);<br /><br />echo 'Nombre: '.$rectangulo-&gt;getNombre().', Area: '.$rectangulo-&gt;area();<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La salida seria algo as&iacute;:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Nombre: Triangulo, Area: 2<br />Nombre: Rectangulo, Area: 4</span></span></span></span></span></pre>
<p><span><span><span><span><span>Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 17 Jul 2010 09:26:05</pubDate>
</item>
<item> 
	<title>PHP: Tutorial: Diseño Orientado a Objetos Unidad I</title> 
	<link>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-I</link> 
	<comments>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-I#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Tutorial/Diseno-Orientado-a-Objetos-Unidad-I</guid> 
	<description><![CDATA[ Patrón de Diseño  (design patterns)
Los patrones de diseño se refieren a la arquitectura de un programa, a la forma en la que está construidos, ellos se crean por la necesidad de solucionar algún  problemas de forma efectiva y reusable, además pretenden estandarizar el modo en que se...]]></description>
	<content:encoded><![CDATA[<h2>Patr&oacute;n de Dise&ntilde;o  (design patterns)</h2>
<p>Los <strong><em>patrones de dise&ntilde;o</em></strong> se refieren a la arquitectura de un programa, a la forma en la que est&aacute; construidos, ellos se crean por la necesidad de solucionar alg&uacute;n &nbsp;problemas de forma efectiva y reusable, adem&aacute;s pretenden estandarizar el modo en que se desarrolla e implementa el software, facilitar el aprendizaje de las nuevas generaciones de dise&ntilde;adores, y generar un criterio de codigo eficiente y la optimizaci&oacute;n de una aplicaci&oacute;n.</p>
<p>Un <strong><em>Dise&ntilde;ador de Software</em></strong> (mejor conocido como <em>programador</em>) demuestra su madurez profesional aplicando dichos patrones que son variados y evocados a distintas soluciones o distintos software.</p>
<h2>OOP   (programaci&oacute;n orientada a objetos)</h2>
<p>La <em><strong>oop (<span id="result_box"><span>object-oriented  programming</span></span>)</strong></em> es una <em>abstracci&oacute;n</em> del mundo real, en otras palabras intenta imitar los objetos y circunstancias de la vida real, as&iacute; como los objetos de nuestro mundo poseen <em>caracter&iacute;sticas</em> <strong><em>(atributos)</em></strong> como: color, peso, tama&ntilde;o, estatura, entre otros, y <em>comportamientos</em> <em><strong>(funciones, m&eacute;todos o procedimientos) </strong></em>como: caminar, correr, disparar, buscar, entre otras, estos objetos tambi&eacute;n los tienen, en forma de c&oacute;digo, este c&oacute;digo que le da forma a un objeto se le llama <em>"clase"</em><strong><em> (class).</em></strong></p>
<p>La <em><strong>oop </strong></em>tambi&eacute;n es conocida como paradigma de programaci&oacute;n orientada a objetos.</p>
<p>PHP es un lenguaje de programaci&oacute;n que soporta la <strong><em>oop</em></strong> y es de gran utilidad crear objetos.</p>
<p>Los <em><strong>atributos</strong></em> siempre ser&aacute;n sustantivos y las <em><strong>funciones</strong></em> verbos.</p>
<h2>Class</h2>
<p>Antes de empezar con el c&oacute;digo, se puede decir que un objeto tiene dos niveles, uno que es la <em><strong>clase</strong></em> y otro que es su <em><strong>implementaci&oacute;n (instancia)</strong></em> o <em><strong>creaci&oacute;n, </strong></em>la <em><strong>clase</strong></em> es la plantilla por la cual se regir&aacute; la forma del <em><strong>objeto</strong></em>, por ejemplo la clase <em>Persona</em>, esta tiene atributos como color de cabello, estatura, nacionalidad, nombre entre otros, pero no es ninguna <em>Persona</em> en particular, es solo el <em><strong>concepto</strong></em> de lo que debe ser una <em>Persona</em>, una <strong><em>instancia </em></strong>o<strong><em> creaci&oacute;n</em></strong> de esta clase eres tu, y yo, el escritor de este articulo, ambos tal vez con nombres, nacionalidades, y color de cabello distintos, pero los dos somos tangibles, existimos, esa es la diferencia principal entre una <em><strong>clase (concepto)</strong></em> y una <em><strong>instancia (realidad)</strong></em>.</p>
<p><em><strong>La clase es un tipo de dato creado por el desarrollador.</strong></em></p>
<p>Ahora &iquest;C&oacute;mo transformamos todo esto en c&oacute;digo PHP?:</p>
<p class="codigo"><em><strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Archivo: Persona.php</span></span></span></span></span></strong></em></p>
<p class="codigo"><em><strong><span class="c1">&nbsp;</span></strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recomiendo que cada clase se escriba en un archivo con su nombre, es posible crear varias clases en un solo archivo PHP.</span></span></span></span></span></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Persona {//Inicio de la Clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $nombre;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //Funciones generalmente P&uacute;blicas<br />&nbsp;&nbsp;&nbsp; public function getNombre(){//Puede ser cambiado por obtenerNombre()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre){//Puede ser cambiado por insertarNombre()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;nombre=$nombre;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private function pensar($pensamiento){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $pensamiento;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la Clase<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Observemos que tanto los atributos como las funciones est&aacute;n dentro de la clase, eso se llama encapsulamiento.</p>
<p>Las funciones get y set son utilizadas siempre para obtener e insertar los valores de los atributos de la clase, generalmente cada atributo posee estas dos funciones asociadas.</p>
<p>Las funciones y atributos <em><strong>public </strong></em>son la informaci&oacute;n a la cual se puede acceder desde la <strong><em>instancia</em></strong> de la clase, (el patr&oacute;n OO, exige que los atributos sean <em><strong>private</strong></em>, pero a nivel de programaci&oacute;n se pueden hacer publicos) ejemplo, otra persona puede pedirte tu nombre, pero no puede pedirte tus pensamientos (es solo para ejemplificar), por ende las funciones y atributos <em><strong>private</strong></em> solo pueden ser accedidas dentro de la clase.</p>
<p>La palabra reservada <strong>$this-&gt;</strong> se utiliza para llamar atributos y funciones de la misma clase, en este caso el nombre.</p>
<p>Mejorando el c&oacute;digo:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />class Persona {//Inicio de la Clase<br /><br />&nbsp;&nbsp;&nbsp; //Atributos<br />&nbsp;&nbsp;&nbsp; private $nombre;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; //Funciones generalmente P&uacute;blicas<br />&nbsp;&nbsp;&nbsp; public function getNombre(){//Puede ser cambiado por obtenerNombre()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pensar('Entrego mi nombre&lt;br/&gt;');//Llamando a la funci&oacute;n Privada<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $this-&gt;nombre;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public function setNombre($nombre){//Puede ser cambiado por insertarNombre()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;pensar('Cambio mi nombre&lt;br/&gt;');//Llamando a la funci&oacute;n Privada<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$this-&gt;nombre=$nombre;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private function pensar($pensamiento){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $pensamiento;<br />&nbsp;&nbsp;&nbsp; }<br /><br />}//Fin de la Clase<br /><br />?&gt;<br /></span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">As&iacute; podemos ver el uso de la funci&oacute;n privada.</span></span></span></span></span></p>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Ahora:</span></span></span></span></span></p>
<p><em><strong></strong></em><em><strong><span><span><span><span><span>Archivo: index .php</span></span></span></span></span></strong></em></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />   include 'Persona.php';<br />   $objeto = new Persona();<br />   $objeto-&gt;setNombre('Pedro');<br />   echo 'Nombre '.$objeto-&gt;getNombre();<br /><br />?&gt;</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Para poder darle vida a nuestro objeto primero incluimos el archivo donde se encuentra la clase, luego con la palabra reservada <em><strong>new </strong></em>instanciamos el objeto:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto = new Persona();</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Este sentencia crea un objeto Persona en la variable <em>$objeto</em> (esta variable puede tomar cualquier nombre).</span></span></span></span></span></p>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">y para finalizar usamos sus funciones p&uacute;blicas:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto-&gt;setNombre('Pedro');<br />echo 'Nombre '.$objeto-&gt;getNombre();</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">el resultado seria:</span></span></span></span></span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Cambio mi nombre<br />Entrego mi nombre<br />Nombre Pedro</span></span></span></span></span></pre>
<p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 15 Jul 2010 21:53:42</pubDate>
</item>
<item> 
	<title>Como comprar un dominio de .com</title> 
	<link>http://www.documentoweb.com/como-comprar-un-dominio-de-com</link> 
	<comments>http://www.documentoweb.com/como-comprar-un-dominio-de-com#mensajes </comments> 
	<guid>http://www.documentoweb.com/como-comprar-un-dominio-de-com</guid> 
	<description><![CDATA[ Hola desde ase mucho tiempo que programo en webs de hosting gratis pero en ocaciones se caen o a las 1000 visitas diarias y redireccionan mi web con su publicidad u_u
Mi pregunta es como comprar un domini de .com
Necesito targeta de credito?
Como se hace eso?
Si no trabajo ya que soy estudiante...]]></description>
	<content:encoded><![CDATA[<p>Hola desde ase mucho tiempo que programo en webs de hosting gratis pero en ocaciones se caen o a las 1000 visitas diarias y redireccionan mi web con su publicidad u_u</p>
<p>Mi pregunta es como comprar un domini de .com</p>
<p>Necesito targeta de credito?</p>
<p>Como se hace eso?</p>
<p>Si no trabajo ya que soy estudiante como le hago?</p>
<p>No se puede pagar por celular?</p>
<p>Ayuda a mi</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 15 Jul 2010 12:21:46</pubDate>
</item>
<item> 
	<title>PHP: Como recortar texto en PHP</title> 
	<link>http://www.documentoweb.com/como-recortar-texto-en-php</link> 
	<comments>http://www.documentoweb.com/como-recortar-texto-en-php#mensajes </comments> 
	<guid>http://www.documentoweb.com/como-recortar-texto-en-php</guid> 
	<description><![CDATA[ 
Y después solo llaman a la funcion =)                                                                                                                                                                                                                                                                    ...]]></description>
	<content:encoded><![CDATA[<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php
$limite = 10;<br />function cortar($text0, $limite){<br />$comp = strlen($text0);<br />if($comp &gt; $limite){<br />return substr("$text0", -0, $limite)."...";<br />}<br />else{return "$text0";<br />}<br />}
?&gt;</span></span></span></span></span></pre>
<p>Y despu&eacute;s solo llaman a la funcion =)</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 14 Jul 2010 15:41:46</pubDate>
</item>
<item> 
	<title>Hola me presento</title> 
	<link>http://www.documentoweb.com/Hola-me-presento</link> 
	<comments>http://www.documentoweb.com/Hola-me-presento#mensajes </comments> 
	<guid>http://www.documentoweb.com/Hola-me-presento</guid> 
	<description><![CDATA[ Bueno soy programador web y diseñador grafico mis especialidades son: php, html, xhtml, mysql, css, SEO, respetando los estandares y accesibilidad.
tambien ago edicion de video en 3D
si alguien necesita ayuda consultarme                                                                             ]]></description>
	<content:encoded><![CDATA[<p>Bueno soy programador web y dise&ntilde;ador grafico mis especialidades son: php, html, xhtml, mysql, css, SEO, respetando los estandares y accesibilidad.</p>
<p>tambien ago edicion de video en 3D</p>
<p>si alguien necesita ayuda consultarme</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 14 Jul 2010 14:41:11</pubDate>
</item>
<item> 
	<title>PHP: Bucles en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Bucles-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Bucles-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Bucles-en-PHP</guid> 
	<description><![CDATA[ 
Aprende a utilizar los bucles, otra estructura impresindible del lenguaje PHP para repetir bloques de código fuente.
Un Bucle, también llamados ciclos o loop es un un tipo de función/estructura en cualquier lenguaje de programación que permite repetir líneas de código determinadas veces...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprende a utilizar los bucles, otra estructura impresindible del lenguaje PHP para repetir bloques de c&oacute;digo fuente.</p>
<p>Un <strong>Bucle,</strong>&nbsp;tambi&eacute;n llamados ciclos o loop es un un tipo de funci&oacute;n/estructura en cualquier lenguaje de programaci&oacute;n que permite <strong>repetir l&iacute;neas de c&oacute;digo</strong> determinadas veces por una <strong>condici&oacute;n</strong> dada.</p>
<p>Existen varios tipos de bucles, entre ellos encontramos:</p>
<ul>
<li>while</li>
<li>do... while</li>
<li>for</li>
<li>foreach</li>
</ul>
<h2>Bucle  while</h2>
<p>El <strong>bucle while</strong> lo podemos utilizar generalmente combinado con matrices, en la que su condici&oacute;n asigna un valor para una variable que contendr&aacute; el elemento actual de la matriz, y en que cada recorrido este elemento cambiar&aacute; y se detendr&aacute; hasta terminarse los elementos de la matriz.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /><br /> $matriz = array('uno','dos','tres','cuatro');<br /><br /> while($ahora=current($matriz)){<br /> echo $ahora."&lt;br /&gt;";<br />   next($matriz);<br /> }<br /><br /> ?&gt;<br />Al menos me ejecuto $i vez<p>&nbsp;</p>"; // la condicion es falsa pero al menos me muestro una vez<br />	}<br />	while ($i == 10 );<br /><br />	/*<br />		Uso de While:<br />			Se eval&uacute;a la condici&oacute;n al comienzo  para decir si se ejecuta<br />			otra vez el bucle o se termina su ejecuci&oacute;n. <br />	*/<br /><br />	$j = 0;<br /><br />	while ($j &lt; 10):<br />			$j++;<br />			if ($j == 5):<br />				echo "&lt;h2&gt;Ya te salude $j veces creo que esto es un adios.&lt;/h2&gt;";<br />				break; // salimos del bucle<br />			endif;<br />		echo "&lt;p&gt;Hola $j&lt;/p&gt;";<br />	endwhile;<br />?&gt;<br /></span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>uno<br />dos<br />tres<br />cuatro</p>
<p>La variable <code>$ahora</code> contiene el elemento actual de la matriz, y <code>next($matriz)</code> indica que ahora se utilizar&aacute; el elemento siguiente de la matriz para el nuevo rrecorrido.</p>
<h2>Bucle  for</h2>
<p>El <strong>bucle for</strong> pemite hacer ciclos con n&uacute;meros. En su condici&oacute;n, se debe seguir el orden de <em>inicio</em>, <em>mientras</em> y <em>aumento</em>. Generalmente se utiliza la variable <code>$i</code> para iniciar el bucle.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> for($i=0;$i&lt;=20;$i=$i+2){<br /> echo $i."&lt;br /&gt;";<br /> }<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>0<br />2<br />4<br />6<br />8<br />10<br />12<br />14<br />16<br />18<br />20</p>
<p>Aqu&iacute; se recorrer&aacute; el c&oacute;digo entre par&eacute;ntesis siempre y cuando se cumpla la condici&oacute;n de que la variable $i sea menor o igual a 20, en el que en cada recorrido se le suman 2. Esto quiere decir que se imprimir&aacute;n todos los n&uacute;meros pares desde 0 a 20.</p>
<p>Hay que tener cuidado en programar los bucles, porque a veces estos ciclos pueden ser infinitos y colapsan la carga de la p&aacute;gina o el programa.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 08 Jul 2010 22:11:43</pubDate>
</item>
<item> 
	<title>Gran concurso de websites !!</title> 
	<link>http://www.documentoweb.com/Gran-concurso-de-websites</link> 
	<comments>http://www.documentoweb.com/Gran-concurso-de-websites#mensajes </comments> 
	<guid>http://www.documentoweb.com/Gran-concurso-de-websites</guid> 
	<description><![CDATA[ Hola mi pregunta es porque no hacen un concurso de sitios webs y al ganador le den un subdominio de documentoweb.com
bueno espero sus respuestas y que el dueño de la web quiera regalarnos un subdominio :)
Adios                                                                                       ]]></description>
	<content:encoded><![CDATA[<p>Hola mi pregunta es porque no hacen un concurso de sitios webs y al ganador le den un subdominio de documentoweb.com</p>
<p>bueno espero sus respuestas y que el due&ntilde;o de la web quiera regalarnos un subdominio :)</p>
<p>Adios</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 04 Jul 2010 14:06:07</pubDate>
</item>
<item> 
	<title>PHP: Arrays multidimensionales en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Arrays-multidimensionales-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Arrays-multidimensionales-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Arrays-multidimensionales-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda a utilizar las arrays multidimensionales del lenguaje PHP, combinando diferentes tipos de arrays en una general.
Las arrays multidimensionales son nada más y nada menos que arrays dentro de arrays. Son el tipo de matrices en las cuales sus elementos deben ser llamados por dos o más...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprenda a utilizar las arrays multidimensionales del lenguaje PHP, combinando diferentes tipos de arrays en una general.</p>
<p>Las arrays multidimensionales son nada m&aacute;s y nada menos que <strong>arrays dentro de arrays</strong>. Son el tipo de matrices en las cuales sus elementos deben ser llamados por dos o m&aacute;s corchetes dependiendo de cuantas matrices disponga el array, que pueden ser <a title="Uso de las arrays indexadas en PHP" href="http://null.zobyhost.com/PHP/arrays-indexadas-en-php.php">indexadas</a> o <a title="Uso de las arrays asociativas en PHP" href="http://null.zobyhost.com/PHP/arrays-asociativas-en-php.php">asociativas</a>.</p>
<p>As&iacute;, pueden recibir distintos nombres como <strong>arrays bidimensionales</strong> o <strong>tridimensionales</strong>.</p>
<h2>Sintaxis de un array multidimensional</h2>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> array(<br /> 'clave uno' =&gt; 'valor uno',<br /> "clave dos" =&gt; "valor dos",<br /> $elemento_tres =&gt; 'valor 3',<br /> 'clave 4' =&gt; $valor_4<br /> ) </span></span></span></span></span></pre>
<p>Donde cada valor puede obtenerse mediante el <strong>nombre de la variable</strong> que contenga al array y la <strong>clave correspondiente</strong>.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> $nombre_del_array["valor dos"] </span></span></span></span></span></pre>
<h2>Ejemplos de arrays multidimensionales</h2>
<p>Aqu&iacute; veremos un ejemplo para dejar m&aacute;s claro el uso de una matriz bidimensional, en el que se utiliza una matriz base y dos matrices anidadas dentro de ella.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> <br /> $fruta = array(<br /> 'naranja' =&gt; array(<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'propiedad' =&gt; 'jugosa',<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'color' =&gt; 'naranja',<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'sabor' =&gt; 'dulce'<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> 'lim&oacute;n' =&gt; array(<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'propiedad' =&gt; 'jugoso',<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'color' =&gt; 'amarillo',<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'sabor' =&gt; 'c&iacute;trico'<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> );<br /> <br /> echo $fruta['lim&oacute;n']['color'];<br /> <br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>amarillo</p>
<p>As&iacute; podemos obtener "el color del lim&oacute;n", "la propiedad de la naranja", "el sabor del lim&oacute;n", etc.</p>
<p>Ahora veremos una matriz tridimensional, compuesta por matrices asociativas e indexadas.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> <br /> $marca = array(<br /> 'software' =&gt; array(<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'buscador' =&gt; array('Google','Yahoo','Baidu','Bing'),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'CMS' =&gt; array('Wordpress','Joomla','Blogger')<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br /> 'hardware' =&gt; array(<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'PC' =&gt; 'Mac',<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'celular' =&gt; array('Black Berry','Iphone')<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br /> );<br /> <br /> echo $marca['software']['buscador'][0];<br /> <br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Google</p>
<p>As&iacute; podemos obtener el "software de buscador numero 1" (que ser&iacute;a el 0), "el hardware de celular numero 1 y 2", "el software de CMS 11, 2 y 3", etc.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 02 Jul 2010 17:27:41</pubDate>
</item>
<item> 
	<title>PHP: Arrays asociativas en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Arrays-asociativas-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Arrays-asociativas-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Arrays-asociativas-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda a utilizar las arrays asociativas del lenguaje PHP, asociando claves y valores para los diferentes elementos de un array.
Las arrays asociativas son el tipo de matrices en las cuales sus elementos se forman por pares de clave-valor, en el que la clave corresponde al nombre con el cual se...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprenda a utilizar las arrays asociativas del lenguaje PHP, asociando claves y valores para los diferentes elementos de un array.</p>
<p>Las arrays asociativas son el tipo de matrices en las cuales sus elementos se forman por pares de <strong>clave-valor</strong>, en el que la <strong>clave</strong> corresponde al nombre con el cual se acceder&aacute; al elemento que no necesariamente debe ser un n&uacute;mero y el <strong>valor</strong> al elemento en s&iacute;.</p>
<p>As&iacute;, podemos obtener un array en el que una clave <strong>se asocia</strong> a su valor.</p>
<h2>Sintaxis de un array asociativa</h2>
<p>La sintaxis de una matriz asociativa tambi&eacute;n se crea mediante la funci&oacute;n <code>array()</code>, pero a diferencia de una <a title="Uso de las arrays indexadas en PHP" href="http://null.zobyhost.com/PHP/arrays-indexadas-en-php.php">array indexada</a>, sus elementos separados por comas conformados por el par <strong>clave-valor</strong>, deben separarse por los car&aacute;cteres "<code>=&gt;</code>". Ejemplo:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> array(<br /> 'clave uno' =&gt; 'valor uno',<br /> "clave dos" =&gt; "valor dos",<br /> $elemento_tres =&gt; 'valor 3',<br /> 'clave 4' =&gt; $valor_4<br /> ) </span></span></span></span></span></pre>
<p>Donde cada valor puede obtenerse mediante el <strong>nombre de la variable</strong> que contenga al array y la <strong>clave correspondiente</strong>.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> $nombre_del_array["valor dos"] </span></span></span></span></span></pre>
<h2>Ejemplo de array asociativa</h2>
<p>Aqu&iacute; veremos un ejemplo para dejar m&aacute;s claro el uso de una matriz asociativa.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> <br /> $mineral = array(<br /> 'dorado' =&gt; 'Oro',<br /> 'plateado' =&gt; 'Plata',<br /> 'brillante' =&gt; 'Diamante',<br /> 'negro' =&gt; 'Carb&oacute;n'<br /> );<br /> echo $mineral['brillante'];<br /> <br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Diamante</p>
<p>As&iacute;, podemos obtener y trabajar la nueva variable que se ha generado por el array, siempre y cuando la clave encerrada entre corchetes exista dentro del array.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 02 Jul 2010 17:27:16</pubDate>
</item>
<item> 
	<title>PHP: Arrays indexadas en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Arrays-indexadas-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Arrays-indexadas-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Arrays-indexadas-en-PHP</guid> 
	<description><![CDATA[ 
Aprende a utilizar las arrays indexadas del lenguaje PHP, ordenando los elementos de un array mediante números.
Las arrays indexadas son el tipo de matrices que más se utilizan, en las cuales el valor del primer elemento equivale a cero, y los demás siempre aumentan en una unidad.
Así,...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprende a utilizar las arrays indexadas del lenguaje PHP, ordenando los elementos de un array mediante n&uacute;meros.</p>
<p>Las arrays indexadas son el tipo de matrices que m&aacute;s se utilizan, en las cuales <strong>el valor del primer elemento equivale a cero</strong>, y los dem&aacute;s siempre aumentan en una unidad.</p>
<p>As&iacute;, podemos obtener un conjunto de elementos ordenados desde cero hasta un determinado valor, que depender&aacute; del n&uacute;mero de elementos que se dispongan en dicha matriz.</p>
<h2>Sintaxis de un array indexada</h2>
<p>La sintaxis de una matriz indexada se crea mediante la funci&oacute;n <code>array()</code>, en la cual <strong>sus elementos deben separarse por comas</strong> (<code>,</code>) y pueden ser cadenas, n&uacute;meros o variables siempre respetando la sintaxis b&aacute;sica de ellos. Un ejemplo de solo un array con sus respectivos elementos ser&iacute;a:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> array('elemento', "otro elemento", $elemento_tres, 'elemento 4') </span></span></span></span></span></pre>
<p>Donde el valor del primer elemento llamado <code>'elemento'</code> es <code>0</code>, el del segundo <code>'otro elemento'</code> es <code>1</code>, el de <code>$elemento_tres</code> es <code>2</code> y el de <code>'elemento 4'</code> es <code>3</code>.</p>
<p>Esto puede escribirse de la siguiente forma para ver la equivalencia entre los elementos y sus valores:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> array(<br /> 0 =&gt; 'elemento',<br /> 1 =&gt; "otro elemento",<br /> 2 =&gt; $elemento_tres,<br /> 3 =&gt; 'elemento 4'<br /> ) </span></span></span></span></span></pre>
<p>As&iacute;, podemos obtener un elemento de la matriz mediante la <strong>variable que contenga al array</strong> y el <strong>valor del elemento</strong>.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> $nombre_del_array[2] </span></span></span></span></span></pre>
<h2>Ejemplo de array indexada</h2>
<p>Una matriz que tenga, por ejemplo, 5 elementos, se ordenar&aacute; desde 0 hasta 4. Lo veremos en el siguiente ejemplo en el que tambi&eacute;n se obtendr&aacute; un valor del array.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> <br /> $ciudad = array('Santiago', 'Madrid', 'New York', 'Par&iacute;s', 'Berl&iacute;n');<br /> echo $ciudad[3];<br /> <span>// El n&uacute;mero entre corchetes indica el n&uacute;mero del elemento</span><br /> <br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Par&iacute;s</p>
<p>As&iacute;, podemos obtener y trabajar la nueva variable que se ha generado por el array, siempre y cuando el n&uacute;mero entre corchetes est&eacute; dentro del rango de elementos disponibles.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 02 Jul 2010 17:26:54</pubDate>
</item>
<item> 
	<title>PHP: Arrays o Matrices en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Arrays-o-Matrices-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Arrays-o-Matrices-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Arrays-o-Matrices-en-PHP</guid> 
	<description><![CDATA[ 
Aprende a utilizar las arrays o matrices en PHP, una estructura impresindible para programar en PHP y otros lenguajes.
Un Array o Matriz (en español, también llamados 'tablas' o 'arreglos') es un tipo de estructura que almacena y ordena un conjunto de datos bajo un mismo nombre, al cual...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprende a utilizar las arrays o matrices en PHP, una estructura impresindible para programar en PHP y otros lenguajes.</p>
<p>Un <strong>Array</strong> o <strong>Matriz</strong> (en espa&ntilde;ol, tambi&eacute;n llamados 'tablas' o 'arreglos') es un tipo de estructura que almacena y ordena un <strong>conjunto de datos</strong> bajo un mismo nombre, al cual posteriormente en PHP se le dar&aacute;n diferentes usos para sus diferentes elementos.</p>
<p>Existen diferentes tipos de arrays que veremos en detalle: <a href="../PHP/Arrays-indexadas-en-PHP">idexadas</a> que son las m&aacute;s comunes, <a href="../PHP/Arrays-asociativas-en-PHP">asociativas</a> y <a href="../PHP/Arrays-multidimensionales-en-PHP">multidimensionales</a>.</p>
<ul>
<li><a title="Uso de las arrays asociativas en PHP" href="../PHP/Arrays-asociativas-en-PHP">Arrays asociativas</a></li>
<li><a title="Uso de las arrays multidimensionales en PHP" href="../PHP/Arrays-multidimensionales-en-PHP">Arrays multidimensionales</a></li>
<li><a title="Uso de las arrays indexadas en PHP" href="../PHP/Arrays-indexadas-en-PHP">Arrays indexadas</a></li>
</ul>
<p>Puede encontrar mucha m&aacute;s informaci&oacute;n para trabajar con funciones en sus arrays en la <a href="http://php.net/manual/en/ref.array.php">documentaci&oacute;n oficial de PHP.net</a>.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 02 Jul 2010 17:23:39</pubDate>
</item>
<item> 
	<title>Firefox y CSS</title> 
	<link>http://www.documentoweb.com/firefox-y-css</link> 
	<comments>http://www.documentoweb.com/firefox-y-css#mensajes </comments> 
	<guid>http://www.documentoweb.com/firefox-y-css</guid> 
	<description><![CDATA[ 
Hola me di cuenta que si creo una hoja de estilo dinámicamente en PHP y la pongo en firefiox no funciona :( y en internet explorer si.
Así llamo a la hoja de estilo:

Otra opcion fue llamar al .htaccess
Intente usar el archivo .htaccess para cambiar la extensión del archivo pero no...]]></description>
	<content:encoded><![CDATA[<div>
<p>Hola me di cuenta que si creo una hoja de estilo din&aacute;micamente en PHP y la pongo en firefiox no funciona :( y en internet explorer si.</p>
<p>As&iacute; llamo a la hoja de estilo:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;link href="Estilo.php?nombre=yo" type="text/css" rel="stylesheet" media="screen" /&gt;</span></span></span></span></span></pre>
<p>Otra opcion fue llamar al .htaccess</p>
<p>Intente usar el archivo .htaccess para cambiar la extensi&oacute;n del archivo&nbsp;pero no funciono en firefox no se ve</p>
<p><span>// Llamamos la hoja de estilo</span></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span>&lt;link href="nombre_Estilo.css" type="text/css" rel="stylesheet" media="screen" /&gt;</span></span></span></span></span></span></pre>
<p><span>&nbsp;</span>//Archivo .htaccess</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">RewriteRule (.*)_Estilo\<span>.</span>css<span>$</span> <span>Estilo.php?nombre</span>=$1 [L]</span></span></span></span></span></pre>
<p>AYUDA A MI =)</p>
<p>Nota mi hoja de estilo es compatible con todos los exploradores.</p>
<p>Tambi&eacute;n pueden crear su propia hoja de estilo en php ya llamarla como yo la puse y van a ver el problema de firefox.</p>
<p>SI ALGUIEN PUEDE AYUDARME SE LOS AGREDECERIA.</p>
</div>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 29 Jun 2010 11:11:45</pubDate>
</item>
<item> 
	<title>Tip: Como saber si mi web está bien estructurada</title> 
	<link>http://www.documentoweb.com/Tip/Como-saber-si-mi-web-esta-bien-estructurada</link> 
	<comments>http://www.documentoweb.com/Tip/Como-saber-si-mi-web-esta-bien-estructurada#mensajes </comments> 
	<guid>http://www.documentoweb.com/Tip/Como-saber-si-mi-web-esta-bien-estructurada</guid> 
	<description><![CDATA[ Acabo de descubrir por accidente un pequeño truco CSS que me servirá durante toda la vida para examinar visualmente si existen desperfectos en la estructura (o maquetación) del HTML con el estilo CSS.
Se trata simplemente de aplicar un outline visible a todos los elementos del CSS, de la...]]></description>
	<content:encoded><![CDATA[<p>Acabo de descubrir por accidente un peque&ntilde;o truco CSS que me servir&aacute; durante toda la vida para examinar visualmente si existen desperfectos en la estructura (o maquetaci&oacute;n) del HTML con el estilo CSS.</p>
<p>Se trata simplemente de aplicar un <strong>outline</strong> visible a todos los elementos del CSS, de la forma:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">* { outline: 1px dotted #CCC; }</span></span></span></span></span></pre>
<p>De esta manera se marcar&aacute;n todos los elementos como divs, p&aacute;rrafos, listas, campos de formularios y todo lo que se tenga presente en el documento con una linea de tama&ntilde;o 1 pixel con color hexadecimal #CCCCCC (gris claro) y que no se suma a los tama&ntilde;os establecidos.</p>
<p>As&iacute; puedes observar qu&eacute; elementos est&aacute;n desalineados o tienen menos separaci&oacute;n que otros cuando pensabas que todo estaba perfectamente maquetado.</p>]]></content:encoded> 	<category><![CDATA[tip]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 27 Jun 2010 16:59:19</pubDate>
</item>
<item> 
	<title>PHP: Estructura if-else en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Estructura-if-else-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Estructura-if-else-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Estructura-if-else-en-PHP</guid> 
	<description><![CDATA[ 
Aprende a utilizar la estructura if-else en PHP, quien nos permite determinar si se cumple (if) o no (else) una condición.
La famosa estructura de control if-else permite ejecutar trozos de código según la condición que se aplique (que incluye variables). La parte de if indica que la...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><span><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></span></p>
<p>Aprende a utilizar la estructura if-else en PHP, quien nos permite determinar si se cumple (if) o no (else) una condici&oacute;n.</p>
<p>La famosa <strong>estructura de control if-else</strong> permite ejecutar trozos de c&oacute;digo seg&uacute;n la condici&oacute;n que se aplique (que incluye variables). La parte de <strong><code>if</code></strong> indica que la condici&oacute;n se cumple, y por lo tanto, su trozo de c&oacute;digo se ejecuta. Por el otro lado, <strong><code>else</code></strong> indica que la condici&oacute;n no se cumple, y por ello su trozo de c&oacute;digo se ejecuta.</p>
<p>Ninguna de estas dos estructuras pueden ocurrir al mismo tiempo y solo puede ocurrir una. Else puede no definirse, por lo tanto su valor corresponder&iacute;a a vac&iacute;o.</p>
<p>Su sintaxis es particular: Seguido de <code>if</code> se escribe la condici&oacute;n entre par&eacute;ntesis (<code>(</code> y <code>)</code>) y cada trozo de c&oacute;digo de <code>if</code> y <code>else</code> se encierran entre llaves (<code>{</code> y <code>}</code>) sin terminar la l&iacute;nea fuera de ellas con un punto y coma (<code>;</code>).</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> if ( $alfa &gt; $beta ) {<br /> echo "Correcto";<br /> } else {<br /> echo "Incorrecto";<br /> }<br /> ?&gt; </span></span></span></span></span></pre>
<p>En este caso de condici&oacute;n num&eacute;rica (porque una letra no puede ser menor o mayor a otra), se leer&iacute;a: <q><em>Si la variable alfa es mayor a la variable beta, ocurrir&aacute; la impresi&oacute;n de la cadena 'Correcto', de lo contrario, ocurrir&aacute; la impresi&oacute;n de la cadena 'Incorrecto'</em></q>.</p>
<p>Existen muchos tipos de funciones para crear condiciones como <a title="Funci&oacute;n isset() en Php.net" href="http://www.php.net/manual/es/function.isset.php">isset()</a>, <a title="Funci&oacute;n erergi() en Php.net" href="http://cl.php.net/manual/es/function.eregi.php">eregi()</a> o <a title="Funci&oacute;n file_exists() en Php.net" href="http://php.net/manual/es/function.file-exists.php">file_exists()</a>.</p>
<p>Ahora veremos un ejemplo de comprobaci&oacute;n de variable con la funci&oacute;n isset(), en el que si la variable existiese, se ejecutar&aacute; el c&oacute;digo de <code>if</code>, si no, el de <code>else</code>.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $lorem_ipsum = "Lorem ipsum dolor sit amet.";<br /> <br /> if ( isset($lorem_ipsum) ) {<br /> echo "La variable $lorem_ipsum si existe.";<br /> } else {<br /> echo "La variable $lorem_ipsum no existe.";<br /> }<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>La variable $lorem_ipsum si existe.</p>
<p>Generalmente, esta funci&oacute;n se utiliza para comprobar si los campos de formulario est&aacute;n definidos mediante la variable <code>$_POST[]</code> o <code>$_GET[]</code>.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 25 Jun 2010 15:45:35</pubDate>
</item>
<item> 
	<title>Guía: Para empezar en el Diseño y Desarrollo Web</title> 
	<link>http://www.documentoweb.com/Guia/Para-empezar-en-el-Diseno-y-Desarrollo-Web</link> 
	<comments>http://www.documentoweb.com/Guia/Para-empezar-en-el-Diseno-y-Desarrollo-Web#mensajes </comments> 
	<guid>http://www.documentoweb.com/Guia/Para-empezar-en-el-Diseno-y-Desarrollo-Web</guid> 
	<description><![CDATA[ 
No hay duda de que sea difícil empezar algo desde cero. Quizás el tema del Diseño y el Desarrollo Web también está dentro del saco, pero solo leyendo, entendiendo, investigando y experimentando se aprende al igual que cualquier otro tema. Esa no es la razón de esta guía, pues eso es lo que...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1069/4726122239_d62ee1f71f.jpg" alt="Web" /></p>
<p>No hay duda de que sea dif&iacute;cil empezar algo desde cero. Quiz&aacute;s el tema del <strong>Dise&ntilde;o y el Desarrollo Web</strong> tambi&eacute;n est&aacute; dentro del saco, pero solo leyendo, entendiendo, investigando y&nbsp;experimentando se aprende al igual que cualquier otro tema. Esa no es la raz&oacute;n de esta gu&iacute;a, pues eso es lo que t&uacute; por tu propia cuenta debes hacer. Nosotros podemos ofrecerte todo el material y ayuda que desees, pero sin tu parte, el tema no ser&iacute;a tan interesante como ya lo es.</p>
<p>El prop&oacute;sito es, que esta lectura sea lo primero que leas antes de lanzarte a la aventura. Vamos a empezar de lo m&aacute;s b&aacute;sico hasta irnos por las ramas.</p>
<h2>1. Dise&ntilde;o Web</h2>
<p>El <a href="http://es.wikipedia.org/wiki/Dise%C3%B1o_web">dise&ntilde;o web</a> agrupa diversas tecnolog&iacute;as y t&eacute;cnicas que deberemos dominar en el tiempo para crear p&aacute;ginas web, y con ellas, un sitio web. Estas no se aprenden de un d&iacute;a para otro, ni las encontrar&aacute;s inmediatamente. Aunque todos los conceptos est&eacute;n agrupados, algunos deben aprenderse antes que otros debido a su complejidad y jerarqu&iacute;a.</p>
<h2>2. Sitio web</h2>
<p>Es el conjunto de p&aacute;ginas web y archivos enlazados entre s&iacute; bajo un <strong>nombre de dominio</strong>&nbsp;como www.google.com o www.documentoweb.com. Cada sitio en&nbsp;Internet est&aacute; <strong>alojado </strong>o <strong>hosteado</strong> en alguna computadora a la que llamamos el <strong>servidor</strong>&nbsp;o <strong>hosting</strong>.</p>
<h2>3. P&aacute;gina Web</h2>
<p>Es la principal forma que da vida a internet. Corresponde a una plana que contiene diversos elementos insertados, primordialmente:</p>
<ul>
<li>Informaci&oacute;n</li>
<li>Enlaces</li>
</ul>
<p>Solo he puesto dos, porque realmente solo esto es lo que se rescata para darle sentido a un sitio: La <strong>informaci&oacute;n</strong> porque sin ella no habr&iacute;a sentido en entrar a alg&uacute;n sitio (principio b&aacute;sico, y muchas veces se olvida de ello) y los <strong>enlaces </strong>porque sin ellos nos quedar&iacute;amos estancados en lo primero que vemos&nbsp;quit&aacute;ndonos&nbsp;la valiosa navegaci&oacute;n.</p>
<p>De forma secundaria, podemos encontrar:</p>
<ul>
<li>Im&aacute;genes</li>
<li>V&iacute;deos</li>
<li>Archivos</li>
<li>Y todo tipo de formatos multimedia</li>
</ul>
<p>Esto &uacute;ltimo tambi&eacute;n es importante ya que da el apoyo para lo primero. Ya sea visual, audiovisual o cualquier tipo de apoyo en otro formato como PDFs o animaciones Flash, nos sube de forma muy agradable la experiencia dentro de cualquier sitio. &iexcl;Navegar solo&nbsp;con texto es aburrido no?</p>
<p>Detr&aacute;s de una p&aacute;gina web, existe toda una estructura y c&oacute;digos (invisibles hasta ahora) a seguir para lograr mostrar todo lo mencionado y mucho m&aacute;s.</p>
<h2>4. Estructura de una P&aacute;gina Web</h2>
<p>Ya tenemos los conceptos b&aacute;sicos y necesarios, ahora veremos la parte m&aacute;s t&eacute;cnica como mencionamos en el punto 1 y al final del 3.</p>
<p>Una p&aacute;gina web se crea con diversos c&oacute;digos. El primero se llama <strong>HTML</strong>, el "esqueleto" de una p&aacute;gina web. El segundo es el <strong>CSS</strong>, quien le da todo el estilo a este esqueleto.</p>
<h3>4.1. HTML</h3>
<p>El HTML es un lenguaje de marcas. <strong>Identifica cada elemento dentro de la p&aacute;gina web con su significado</strong>. Para dar ejemplos concretos: marca qu&eacute; parte del texto escrito es el t&iacute;tulo, cual parte es un p&aacute;rrafo, d&oacute;nde&nbsp;estan&nbsp;los enlaces, cual es una lista de items, donde est&aacute; una imagen o un formulario. Todos estos elementos y muchos m&aacute;s son parte del HTML, que se pueden escribir y configurar a nuestro antojo dentro de la p&aacute;gina.</p>
<p>El lenguaje puede ser&nbsp;le&iacute;do&nbsp;por cualquier medio, ya sean los distintos navegadores que existen en internet, el de tu tel&eacute;fono m&oacute;vil o algunos que ni siquiera se ven, como los lectores de pantalla, el mism&iacute;simo Google que recopila datos de las p&aacute;ginas o un futuro software o hardware. Por ello, es indispensable utilizar correctamente el lenguaje, utilizar cada cosa para lo que fue hecha y no para el uso que estimes conveniente, ya que en un futuro, ese c&oacute;digo mal configurado acarrear&aacute; consecuencias.</p>
<p>Hoy en d&iacute;a el HTML ha evolucionado. Ya hemos pasado la versi&oacute;n del HTML 4 y actualmente nos encontramos en la versi&oacute;n del <strong>XHTML 1.0</strong> (podr&iacute;a decirse un HTML extendido) que es la que oficialmente se recomienda. En el futuro, el nuevo HTML ser&aacute; el HTML5 (o bien eso es lo que queremos) que est&aacute; en fase experimental y tiene muchas cosas prometedoras (pero no nos saldremos de nuestras casillas).</p>
<h3>4.2. CSS</h3>
<p>El CSS es otro lenguaje y complementa al anterior, <strong>identifica los elementos del HTML para otorgarles una apariencia</strong> y as&iacute; lograr una agradable presentaci&oacute;n.</p>
<p>El llamado&nbsp;<em>estilo CSS</em> se crea en una <strong>Hoja de estilo</strong>, un documento independiente del documento HTML. Esta es una de las grandes ventajas, pues, al modificar tu hoja para cambiar alguna apariencia que ya no te ha gustado, esta se aplicar&aacute; en todas las p&aacute;ginas que la tengan enlazada (y pueden ser millones).</p>
<p>Aunque los antiguos navegadores que a&uacute;n se utilizan no respetan bien la sintaxis de nuestro c&oacute;digo CSS, es indispensable para un dise&ntilde;ador dominar las t&eacute;cnicas para lograr buenos resultados y en todos los navegadores que el mundo utiliza.</p>
<p>En la actualidad nos encontramos con la versi&oacute;n <strong>CSS 2.1</strong>, aunque solo la llamamos CSS. Est&aacute; en implementaci&oacute;n el CSS3 que es bastante prometedor, pero a&uacute;n no es soportado por todos los navegadores webs,&nbsp;as&iacute;&nbsp;que nos quedaremos y bastar&aacute; con el mencionado.</p>
<h2>5. Ideolog&iacute;as y t&eacute;cnicas</h2>
<p>Si bien luego de aprender estos dos maravillosos lenguajes complementarios, no basta para completar un sitio. Se necesitan ciertos conocimientos como base para empezar a trabajar con ellos, tales como:</p>
<ul>
<li>Accesibilidad</li>
<li>Usabilidad</li>
<li>Experiencia del usuario</li>
<li>Cross-browser</li>
<li>Web 2.0</li>
</ul>
<h3>5.1. Accesibilidad</h3>
<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1035/4726168833_1bf8e469c7_m.jpg" alt="" /></p>
<p>Se refiere a que no se restrinja el acceso a un sitio web. Que cualquier persona incluso con discapacidades de cualquier tipo, pueda tener el acceso.</p>
<p>Este principio es usado por todo el mundo y la web no se queda afuera. Quiz&aacute;s has notado que en los costados de las escaleras hay subidas planas (sin escalones) con barandas, que en los ba&ntilde;os hay uno mucho mas grande con barandas o que en el autob&uacute;s siempre hay reservado un asiento para personas con discapacidades.</p>
<p>Ya sea por ceguera, daltonismo, discapacidades motrices, el dispositivo que se use o incluso la edad, nuestro deber como dise&ntilde;ador es que ninguna persona se quede afuera, que el dise&ntilde;o no sea d&eacute;bil y que sea &uacute;til para nuestros usuarios o clientes. Para ello el uso &oacute;ptimo del XHTML y CSS es extremadamente&nbsp;esencial.</p>
<p>Un sitio debe poder utilizarse en las condiciones m&aacute;s extremas: como sin javascript, sin imagenes o incluso sin hoja de estilo.</p>
<h3>5.2 Usabilidad</h3>
<p>El uso &oacute;ptimo de la navegaci&oacute;n dentro del sitio, la facilidad con que se llega a alguna parte de &eacute;l o lo resumido que est&aacute;n sus contenidos ofreciendo m&aacute;s, es parte de esta t&eacute;cnica llamada usabilidad, que no es m&aacute;s como la palabra lo dice.</p>
<p>Si nuestros visitantes pueden llegar a alg&uacute;n&nbsp;contenido de nuestro sitio con muy pocos clics, se dice que es usable. Si completaron un formulario sin complicaciones, tambi&eacute;n se dice que es usable. Si leyeron un texto en 5 segundos, se dice lo mismo. Si tuvieron que esperar una semana para recibir un "no" como respuesta, eso no ser&iacute;a nada de usable.</p>
<p>El t&eacute;rmino se relaciona mucho con la <strong>facilidad</strong>, la <strong>intuitividad</strong> y la <strong>efectividad</strong>. No aburrir a alguien d&aacute;ndole lo que quiere de una forma muy f&aacute;cil y que no se necesite explicar es muy c&oacute;modo para el visitante, y tambi&eacute;n para t&iacute;.</p>
<h3>5.3. Experiencia del usuario</h3>
<p>Se relaciona mucho con la usabilidad. A medida que un visitante navega por tu sitio, reconoce y va aprendiendo como funciona.</p>
<p>Entregarle nuevas cosas cuando el hace clic sobre algo o invitarlo y conversar con el har&aacute; que su experiencia sea maravillosa, que se sienta como en casa desde la primera vez que entra en el sitio.</p>
<p>Cuando alguien abandona tu sitio, debe llevarse una muy buena&nbsp;impresi&oacute;n y saber bien qu&eacute; te ofrec&iacute;a aquel sitio, para contarle a sus amigos o sus colegas empresarios, que se yo.</p>
<h3>5.4. Cross-browser</h3>
<p>Ya nos topamos con este tema. Se refiere a dise&ntilde;ar para todos los navegadores sin exclusi&oacute;n de alguno.</p>
<p><img title="Navegadores: Firefox, Internet Explorer, Chrome, Safari y Opera" src="http://farm2.static.flickr.com/1160/4726769940_f6c962b9e3_m.jpg" alt="Navegadores: Firefox, Internet Explorer, Chrome, Safari y Opera" /></p>
<p>Para lograrlo debemos dominar el CSS, saber los defectos de los navegadores, sobre el <a title="Uso correcto de las tipograf&iacute;as" href="../CSS/Tipografias-web-Usarlas-de-manera-correcta">uso correcto de las tipograf&iacute;as</a> o los formatos de imagen que son admitidos por ejemplo.</p>
<h3>5.5. Web 2.0</h3>
<p class="imagen_derecha"><a href="../Lectura/Dos-e-book-sobre-Web-2-0"><img src="http://farm5.static.flickr.com/4065/4680150087_0dfe522241.jpg" alt="Libro Web 2.0" width="135" height="180" /></a></p>
<p>Uno de los puntos m&aacute;s importantes es este. Si bien la web 2.0 no se puede definir espec&iacute;ficamente se puede tratar. Me gusta explicarla como una ideolog&iacute;a, ya que es un conjunto de ideas para sacarle provecho a las nuevas tecnolog&iacute;as web sobre nuestro sitio m&aacute;s el uso por sus usuarios.</p>
<p>En una Web 2.0 existe una multidirecci&oacute;n de informaci&oacute;n. Si antes una persona o un grupo selecto de ellas administraba un sitio subiendo contenidos, hoy ocurre algo distinto: todas las personas forman la web.</p>
<p>Alguna vez dije que la web 2.0 fue causada por el campo de formulario, y&nbsp;sigo&nbsp;pens&aacute;ndolo. Un campo de formulario del HTML permite a una persona escribir, y ello conduce a usar sus escritos para formar un sitio web completo y din&aacute;micamente, que crece con la comunidad de personas.</p>
<h2>6. M&aacute;s all&aacute; del dise&ntilde;o: el Desarrollo Web</h2>
<p>Detr&aacute;s del dise&ntilde;o y su estructura&nbsp;hay algo a&uacute;n m&aacute;s importante: se trata del Desarrollo Web.&nbsp;</p>
<p>Este t&eacute;rmino se emplea para el uso de las tecnolog&iacute;as del lado del servidor y del cliente que involucran algunos o muchos procesos a fin de realizar tareas para el usuario o simplemente mostrar informaci&oacute;n.</p>
<p>Por <strong>el lado del servidor</strong> se refiere a aquellos lenguajes que&nbsp;act&uacute;an y son interpretados desde la computadora (el servidor) y que arrojan un resultado para que sea&nbsp;le&iacute;do&nbsp;por el navegador. Entre los m&aacute;s usados y en la mejor&nbsp;combinaci&oacute;n&nbsp;est&aacute; el PHP y el SQL.</p>
<p>Por<strong> el lado del cliente</strong> se refiere a aquellos que act&uacute;an en el navegador (el cliente) donde su interpretaci&oacute;n depende totalmente de &eacute;l (y de ning&uacute;n est&aacute;ndar). Sin duda aqu&iacute; entra aqu&iacute; el JavaScript.</p>
<h3>6.1. PHP</h3>
<p>Es uno de los grandes lenguajes de programaci&oacute;n. Se caracteriza por su dinamismo y flexibilidad.</p>
<p>PHP <strong>interpreta el c&oacute;digo y entrega un resultado</strong>, por defecto en HTML. Se utiliza principalmente para captar y jugar con los datos dentro de una p&aacute;gina en conjunto de una base de datos. Para explicarme mejor, podemos por ejemplo guardar los datos de un formulario de registro y posteriormente mostrarlos en una tabla del HTML en el orden y con los datos que quisi&eacute;semos, o guardar un comentario y mostrarlo si se cumple una fecha determinada. Tambi&eacute;n validar un formulario si no se escribe un campo o mostrar resultados seg&uacute;n la URL de la p&aacute;gina.</p>
<p>En fin, podemos crear infinidades de cosas con el y cuando se domina, tenemos una gran herramienta de trabajo con la que ser&iacute;a innecesario crear tantas p&aacute;ginas en HTML cuando podemos hacerla con un poco de PHP.</p>
<p>PHP es algo mayor, no lo recomiendo para aprenderlo en conjunto del HTML y CSS. Primero se deber&iacute;a dominar muy bien ambos para lanzarse a este nuevo nivel.&nbsp;</p>
<h3>6.2. MySQL</h3>
<p>MySQL es un <strong>gestor de bases de datos</strong> basado en el lenguaje SQL. Es una muy buena ayuda visual con toda su interfaz gr&aacute;fica para entender como funciona y se estructuran todas las bases de datos.</p>
<p>En conjunto de PHP es tremendamente poderoso: nos entrega organizaci&oacute;n y mucha m&aacute;s flexibilidad en la obtenci&oacute;n de datos por medio de ambos lenguajes.</p>
<p>El SQL un lenguaje muy simple comparado con PHP, y lo recomiendo enormemente trabajarlo en conjunto asi como se hace con el HTML y el CSS.</p>
<h3>6.3. JavaScript</h3>
<p>JavaScript nos permite controlar con dinamismo la experiencia dentro del sitio modificando o agregando elementos dentro del c&oacute;digo HTML como efectos visuales o manipulaci&oacute;n de los elementos.</p>
<p>El uso de JavaScript est&aacute; presente en todos lados, siendo el AJAX su nueva implementaci&oacute;n. Ajax nos permite manejar ciertas cosas dentro de una p&aacute;gina web sin recargar la misma, siendo esto una muy buena experiencia para el visitante.</p>
<p>Existen muchas librer&iacute;as que nos permiten usar JavaScript de forma muy f&aacute;cil, y que se han dedicado para que los resultados sean los mismos en todos los navegadores (recordar javascript es interpretado con diferencias en cada navegador, pues no es un est&aacute;ndar).</p>
<p>Si utilizas JavaScript, <strong>aseg&uacute;rate de que no sea intrusivo</strong>, es decir que aunque lo eliminemos, el sitio siga funcionando perfectamente [accesibilidad]. No todo en el mundo usa o tiene JavaScript.</p>
<h2>7. &iquest;Qui&eacute;n est&aacute; detr&aacute;s de todo esto?</h2>
<p>La organizaci&oacute;n que implementa el HTML, el CSS y otros lenguajes, es el&nbsp;<a href="http://www.w3.org/">consorcio&nbsp;de la red global mundial</a> o <strong>W3C</strong>, quien pone todas las normas a seguir y es nuestra autoridad en la web. Ellos nos ofrecen materiales y herramientas que podemos usar para construir nuestros sitios.</p>
<p>La organizaci&oacute;n de PHP es otra, ubicada en <a href="http://php.net/index.php">PHP.net</a> quien nos ofrece toda su documentaci&oacute;n al igual que&nbsp;<a href="http://www.mysql.com/">MySQL</a>.</p>
<h2>8. Software</h2>
<p>Existe distinto software para crear todo lo mencionado. Pero, algunos crean demasiado, siendo que el aprendizaje no evolucione mucho que digamos.</p>
<ul>
<li><strong>Procesadores de texto</strong> actuales adem&aacute;s de permitirnos escribir y guardar archivos en muchos formatos, nos ayudan visualmente coloreando la sintaxis de los lenguajes. Tales como&nbsp;<a href="../Software/Notepad-procesador-de-textos">Notepad++</a>&nbsp;o alguno otro gratuito.</li>
<li><strong>Software de "Dise&ntilde;o Web"</strong> te permiten "dise&ntilde;ar" p&aacute;ginas web de forma autom&aacute;tica, sin mucha interferencia tuya. He aqu&iacute; un programa que a muchos les duele (incluy&eacute;ndome): el llamado <strong>Dreamweaver</strong>. Si realmente deseas aprender, no lo utilices.</li>
<li><strong>Navegadores Web</strong> los necesitas todos ya que tus dise&ntilde;os deben visualizarse correctamente (no necesariamente igual, pero sin errores) en todos ellos [cross-browser]. Existe <a href="http://www.my-debugbar.com/wiki/IETester/HomePage">IETester</a>&nbsp;para comprobar dise&ntilde;os en las distintas versiones de Internet Explorer.</li>
<li><strong>Programa de dise&ntilde;o gr&aacute;fico</strong> como Photoshop o Gimp para crea gr&aacute;ficos o editar im&aacute;genes.</li>
<li><strong>Apache XAMPP server</strong>&nbsp;u otro para utilizar PHP y MySQL.</li>
</ul>
<p>Y no necesitas nada m&aacute;s, a excepci&oacute;n de Google.</p>
<ul>
</ul>]]></content:encoded> 	<category><![CDATA[guia]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 23 Jun 2010 02:21:08</pubDate>
</item>
<item> 
	<title>PHP: Operadores lógicos en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Operadores-logicos-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Operadores-logicos-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Operadores-logicos-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda el funcionamiento de los operadores lógicos en PHP con ejemplos y a utilizarlos a voluntad.
Los operadores lógicos, nos permiten trabajar en la condición de alguna estructura del PHP para hacerla más específica, siempre y cuando se traten dos o más condiciones. Se pueden incluir por...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprenda el funcionamiento de los operadores l&oacute;gicos en PHP con ejemplos y a utilizarlos a voluntad.</p>
<p>Los <strong>operadores l&oacute;gicos</strong>, nos permiten trabajar en la condici&oacute;n de alguna estructura del PHP para hacerla m&aacute;s espec&iacute;fica, siempre y cuando se traten dos o m&aacute;s condiciones. Se pueden incluir por ejemplo, en la estructura if-else o los <strong>bucles</strong>. As&iacute;, podemos ahorrar mucho c&oacute;digo fuente.</p>
<p>A continuaci&oacute;n, se muestra una tabla con el operador l&oacute;gico junto a su funcionamiento.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>and</code></td>
<td>Si ambos valores se cumplen es verdadero</td>
</tr>
<tr>
<td><code>or</code></td>
<td>Si uno o todos los valores se cumplen es verdadero</td>
</tr>
<tr>
<td><code>xor</code></td>
<td>Si solo uno de los valores se cumple es verdadero</td>
</tr>
<tr>
<td><code>&amp;&amp;</code></td>
<td>Id&eacute;ntico a <code>and</code></td>
</tr>
<tr>
<td><code>||</code></td>
<td>Id&eacute;ntico a <code>or</code></td>
</tr>
</tbody>
</table>
<p>Cada uno de estos operadores se deben incluir <strong>entre las dos condiciones tratadas</strong>, las cuales podr&iacute;an contener un <a title="Uso de los operadores condicionales en PHP" href="http://null.zobyhost.com/PHP/operadores-condicionales-en-php.php">operador condicional</a>.</p>
<h2>Operador and &oacute; &amp;&amp;</h2>
<p>El operador <code>and</code> &oacute; <code>&amp;&amp;</code> indica que <strong>ambas condiciones</strong> siempre deben cumplirse para ejecutar verdadero, de lo contrario, se ejecutar&aacute; falso. No importa si escribimos <code>and</code> &oacute; <code>&amp;&amp;</code> porque son exactamente lo mismo.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $cadena1 = "Lorem ipsum";<br /> $cadena2 = 24;<br /> if( $cadena1 == "Lorem ipsum" &amp;&amp; $cadena2 &gt;= 12 ) {<br /> <span>// Si la variable $cadena1 es identica a "Lorem ipsum" y $cadena2 es mayor o igual a 12 se ejecutar&aacute; verdadero, es decir, el c&oacute;digo de IF y no de ELSE.</span><br /> echo "Correcto";<br /> } else {<br /> echo "Todo mal";<br /> }<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Correcto</p>
<h2>Operador or &oacute; ||</h2>
<p>El operador <code>or</code> &oacute; <code>||</code> indica que si <strong>una o ambas condiciones</strong> se cumplen, se ejecutar&aacute; verdadero, de lo contrario, se ejecutar&aacute; falso.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $cadena1 = "Lorem ipsum";<br /> $cadena2 = 6;<br /> if( $cadena1 == "Lorem ipsum" || $cadena2 &gt; 12 ) {<br /> <span>// Si la variable $cadena1 es identica a "Lorem ipsum" y/&oacute; $cadena2 es mayor a 12 se ejecutar&aacute; verdadero.</span><br /> echo "Correcto";<br /> } else {<br /> echo "Todo mal";<br /> }<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Correcto</p>
<h2>Operador xor</h2>
<p>El operador <code>xor</code> indica que se debe cumplirse <strong>solo una condici&oacute;n</strong> para que se ejecute verdadero, de lo contrario, se ejecutar&aacute; falso.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /> $cadena1 = "Lorem ipsum";<br /> $cadena2 = 546;<br /> if( $cadena1 == "Lorem ipsum" xor $cadena2 &lt; 123 ) {<br /> <span>// Si la variable $cadena1 es identica a "Lorem ipsum" &oacute; $cadena2 es menor a 123 se ejecutar&aacute; verdadero.</span><br /> echo "Correcto";<br /> } else {<br /> echo "Todo mal";<br /> }<br /> ?&gt;</span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Correcto</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 21 Jun 2010 22:13:09</pubDate>
</item>
<item> 
	<title>Duda: Creación y diseño web</title> 
	<link>http://www.documentoweb.com/Duda/Creacion-y-diseno-web</link> 
	<comments>http://www.documentoweb.com/Duda/Creacion-y-diseno-web#mensajes </comments> 
	<guid>http://www.documentoweb.com/Duda/Creacion-y-diseno-web</guid> 
	<description><![CDATA[ Hola buenas a todos, es mi primer comentario aqui, no se si hago bien, pero tengo ciertas dudas, quiero empezar a crear mi web, he estudiado html, javascript, php y mysql, pero no lo llege a poner en pratica la cosa ahora es que quiero ponerla, y que mejor que con mi propia web, pero tengo varias...]]></description>
	<content:encoded><![CDATA[<p>Hola buenas a todos, es mi primer comentario aqui, no se si hago bien, pero tengo ciertas dudas, quiero empezar a crear mi web, he estudiado html, javascript, php y mysql, pero no lo llege a poner en pratica la cosa ahora es que quiero ponerla, y que mejor que con mi propia web, pero tengo varias dudas:</p>
<ol>
<li>Como deberia de empezar a crearla, tengo el dreamwear cs3 .</li>
<li>Estoy algo confuzo , primero ago el dise&ntilde;o y despues codigo y viceversa?&nbsp;</li>
</ol>
<p>Bueno la mayor duda es que no se como empezar a la&nbsp;creaci&oacute;n&nbsp;de mi web , si tienes&nbsp;alg&uacute;n&nbsp;videotutorial o algo que me puedan facilitar, o alguien que se preste a&nbsp;ayudar&nbsp;se lo&nbsp;agradecer&iacute;a...</p>
<p>Saludos.</p>]]></content:encoded> 	<category><![CDATA[duda]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 21 Jun 2010 11:33:15</pubDate>
</item>
<item> 
	<title>PHP: Operadores condicionales en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Operadores-condicionales-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Operadores-condicionales-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Operadores-condicionales-en-PHP</guid> 
	<description><![CDATA[ 
Aprende el funcionamiento de los operadores condicionales del PHP con ejemplos para utilizarlos a voluntad.
Los operadores condicionales nos permiten trabajar en la condición de alguna estructura del PHP. Se pueden incluir por ejemplo, en la estructura if-else o los bucles para especificar como...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprende el funcionamiento de los operadores condicionales del PHP con ejemplos para utilizarlos a voluntad.</p>
<p>Los <strong>operadores condicionales</strong> nos permiten trabajar en la condici&oacute;n de alguna estructura del PHP. Se pueden incluir por ejemplo, en la <strong>estructura if-else</strong> o los <strong>bucles</strong> para especificar como se debe cumplir dicha condici&oacute;n.</p>
<p>A continuaci&oacute;n, se muestra una tabla con el operador condicional junto a su funcionamiento.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>==</code></td>
<td>Comprueba si dos cadenas son ind&eacute;nticas</td>
</tr>
<tr>
<td><code>!=</code></td>
<td>Comprueba si dos cadenas son diferentes</td>
</tr>
<tr>
<td><code>&lt;</code></td>
<td>Comprueba si el valor de la izquierda es menor que el de la derecha</td>
</tr>
<tr>
<td><code>&gt;</code></td>
<td>Comprueba si el valor de la izquierda es mayor que el de la derecha</td>
</tr>
<tr>
<td><code>&lt;=</code></td>
<td>Comprueba si el valor de la izquierda es menor o igual que el de la derecha</td>
</tr>
<tr>
<td><code>&gt;=</code></td>
<td>Comprueba si el valor de la izquierda es mayor o igual que el de la derecha</td>
</tr>
</tbody>
</table>
<p>Estos operadores son f&aacute;ciles de utilizar, pues sus funciones son de matem&aacute;tica simple. El operador <code>==</code> indica que dos variables son identicas, el <code>!=</code> indica que son completamente contrarios. Por otro lado, el <code>&lt;</code> indica menor que, <code>&lt;=</code> menor o igual que, <code>&gt;</code> mayor que y <code>&gt;=</code> mayor o igual que. Veremos tan solo un ejemplo de este tipo para ver su funcionamiento.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />$cadena = 24;<br /><br />if( $cadena &lt;= 88 ) {<br />   // Si la variable $cadena es mayor o igual a 88 se ejecutar&aacute; "verdadero"<br />   echo "Correcto";<br />} else {<br />   // Si la variable $cadena es menor a 88 se ejecutar&aacute; "falso"<br />   echo "Todo mal";<br />}<br /><br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Correcto</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 20 Jun 2010 19:05:40</pubDate>
</item>
<item> 
	<title>PHP: Operadores de asignación</title> 
	<link>http://www.documentoweb.com/PHP/Operadores-de-asignacion</link> 
	<comments>http://www.documentoweb.com/PHP/Operadores-de-asignacion#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Operadores-de-asignacion</guid> 
	<description><![CDATA[ 
Los operadores de asignación, al igual que los aritméticos en el PHP nos permiten trabajar matemáticamente con valores numéricos, y a diferencia de éste, también se puede trabajar con cadenas compuestas por cualquier carácter.
En este tipo de operaciones, a la variable que participa en la...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Los <strong>operadores de asignaci&oacute;n</strong>, al igual que los <a title="Operadores aritm&eacute;ticos en PHP" href="PHP/Operadores-aritmeticos-en-PHP">aritm&eacute;ticos en el PHP</a> nos permiten trabajar matem&aacute;ticamente con valores num&eacute;ricos, y a diferencia de &eacute;ste, tambi&eacute;n se puede trabajar con cadenas compuestas por cualquier car&aacute;cter.</p>
<p>En este tipo de operaciones, a la <strong>variable que participa en la izquierda</strong> en dicha operaci&oacute;n se le <strong>asigna el valor resultante</strong>.</p>
<p>A continuaci&oacute;n, se muestra una tabla con el operador de asignaci&oacute;n junto a su funcionamiento.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>=</code></td>
<td>Asigna el valor de la derecha al de la izquierda</td>
</tr>
<tr>
<td><code>+=</code></td>
<td>Suma el valor de la derecha con el de la izquierda, y asigna el total al de la izquierda</td>
</tr>
<tr>
<td><code>-=</code></td>
<td>Resta el valor de la derecha con el de la izquierda, y asigna la diferencia de la izquierda</td>
</tr>
<tr>
<td><code>*=</code></td>
<td>Multiplica el valor de la derecha con el de la izquierda, y asigna el producto al de la izquierda</td>
</tr>
<tr>
<td><code>/=</code></td>
<td>Divide el valor de la derecha con el de la izquierda, y asigna el cuociente al de la izquierda</td>
</tr>
<tr>
<td><code>%=</code></td>
<td>Divide el valor de la derecha con el de la izquierda, y asigna el resto al de la izquierda</td>
</tr>
<tr>
<td><code>.=</code></td>
<td>Concatena la cadena de la derecha con la de la izquierda, y asigna el conjunto al de la izquierda</td>
</tr>
</tbody>
</table>
<h2>Operador de asignaci&oacute;n b&aacute;sico</h2>
<p>El primer operador <code>=</code>, lo hemos visto desde un principio, pues participa en la sintaxis b&aacute;sica y necesaria del lenguaje PHP.</p>
<p>Podemos asignar el valor de una variable a otra las veces que queramos.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $cadena_uno = "Lorem Ipsum";<br /> $cadena_dos = $cadena_uno;<br /> $cadena_tres = $cadena_dos;<br /> echo $cadena_tres;<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Lorem Ipsum</p>
<p>En este ejemplo, el valor de la variable <code>$cadena_uno</code> ("<code>Lorem Ipsum</code>") se le asigna como valor a la variable <code>$cadena_dos</code>, y esta &uacute;ltima le asigna su valor a la variable <code>$cadena_tres</code>, por lo que <code>$cadena_tres</code> ha heredado el valor de <code>$cadena_uno</code>.</p>
<h2>Operadores de asignaci&oacute;n aritm&eacute;ticos</h2>
<p>En estos operadores h&iacute;bridos (tambi&eacute;n un t&eacute;rmino m&iacute;o), partes de asignaci&oacute;n y parte aritm&eacute;tico, nos permiten hacer operaciones matem&aacute;ticas mediante su particular sintaxis. En el ejemplo, utilizaremos una divisi&oacute;n por ser no-conmutativa (que importa el orden).</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $uno=27; <br /> $dos=3; <br /> $uno/=$dos; <br /> echo $uno;<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>9</p>
<p>En este ejemplo, la variable <code>$uno</code> que participa en la cuarta l&iacute;nea y que tiene como valor <code>27</code>, se le asigna el valor obtenido de <code>27/3</code>, y por ello la cadena resultante es <code>9</code>.</p>
<h2>Operador de asignaci&oacute;n para concatenar</h2>
<p>El operador <code>.=</code> es muy utilizado en los bucles, ya que permite <a href="http://null.zobyhost.com/PHP/concatenacion-en-php.php">concatenar</a> (o unir) una cadena de car&aacute;cteres. Por ahora, veremos solo como funciona.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $cadena_uno = "Lorem ipsum"; <br /> $cadena_dos = " dolor sit amet"; <br /> $cadena_uno .= $cadena_dos; <br /> echo $cadena_uno;<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>Lorem ipsum dolor sit amet</p>
<p>Al igual que en los operadores anteriores, la variable <code>$cadena_uno</code> que participa en la cuarta l&iacute;nea y que tiene como valor <code>Lorem Ipsum</code>, se le asigna el valor obtenido de "<code>Lorem Ipsum</code>" concatenado a "<code> dolor sit amet</code>" (que es igual a <code>"Lorem ipsum"." dolor sit amet"</code>), y por ello la cadena resultante es "<code>Lorem ipsum dolor sit amet</code>".</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 19 Jun 2010 22:05:04</pubDate>
</item>
<item> 
	<title>XHTML: ISO 8859-1 y UTF-8: Solución al problema de codificación de caracteres</title> 
	<link>http://www.documentoweb.com/ISO-8859-1-y-UTF-8-Solucion-al-problema-de-codificacion-de-caracteres</link> 
	<comments>http://www.documentoweb.com/ISO-8859-1-y-UTF-8-Solucion-al-problema-de-codificacion-de-caracteres#mensajes </comments> 
	<guid>http://www.documentoweb.com/ISO-8859-1-y-UTF-8-Solucion-al-problema-de-codificacion-de-caracteres</guid> 
	<description><![CDATA[ 
Quizás este es un problema que nos ha causado un gran dolor de cabeza y por el cual muchos programadores (incluyéndome) ya han pasado o lo están haciendo. Se trata de la codificación de caracteres: cuando nos aparecen esos caracteres extraños y que no deberían estar ahí.
Primero que nada,...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4018/4702431962_bd8b830065.jpg" alt="" /></p>
<p>Quiz&aacute;s este es un problema que nos ha causado un gran dolor de cabeza&nbsp;y por el cual muchos programadores (incluy&eacute;ndome) ya han pasado o lo est&aacute;n haciendo. Se trata de la <strong>codificaci&oacute;n de caracteres</strong>: cuando nos aparecen esos caracteres extra&ntilde;os y que no deber&iacute;an estar ah&iacute;.</p>
<p>Primero que nada, hay que tener claro las diferencias de cada una de las codificaciones m&aacute;s utilizadas y que m&aacute;s acarrea a este problema.</p>
<h2>&iquest;UTF-8 o ISO-8859-1?</h2>
<ul>
<li>La codificaci&oacute;n&nbsp;<a href="http://es.wikipedia.org/wiki/UTF-8">UTF-8</a>&nbsp;corresponde a un juego de caracteres universales, contiene signos de la mayor&iacute;a de los lenguajes del mundo.</li>
<li>Por otro lado <a href="http://es.wikipedia.org/wiki/ISO-8859-1">ISO-8859-1</a>&nbsp;maneja caracteres del lenguaje latino como el espa&ntilde;ol,&nbsp;portugu&eacute;s, alem&aacute;n, franc&eacute;s y otros.</li>
</ul>
<p>T&eacute;cnicamente cualquiera de las codificaciones nos sirve, ya que a nivel de nuestro uso en las p&aacute;ginas webs, al comparar una codificaci&oacute;n con la otra en&nbsp;el tama&ntilde;o de los bits que son transferidos, es demasiado inferior para decir cual es la mejor.</p>
<p>Preferentemente, yo elijo UTF-8 por seguir la l&iacute;nea y el posicionamiento que ha tomado esta codificaci&oacute;n sobre la gran mayor&iacute;a de sitios que existen. Esto ha acarreado otras cosas, por ejemplo, que existan sitios que al obtiener la informaci&oacute;n de tu sitio, surge el famoso problema al mostrarla por no ser compatibles con tu codificaci&oacute;n.</p>
<h2>La soluci&oacute;n</h2>
<p>La soluci&oacute;n al problema radica al momento de guardar el archivo. Si en el &lt;meta&gt; del &lt;head&gt; especificas una codificaci&oacute;n, esta debe coincidir con la cual codificas tu archivo.</p>
<p><img src="http://farm5.static.flickr.com/4004/4702431918_f58d16d304_b.jpg" alt="" /></p>
<p><img src="http://farm5.static.flickr.com/4002/4701797823_07a5272f4d.jpg" alt="" /></p>
<p>Es muy simple, pero cuesta descifrarlo. Quiz&aacute; con algo de experimentaci&oacute;n te dar&aacute;s cuenta de que trata.</p>
<h2>Soluci&oacute;n a la codificaci&oacute;n UTF-8</h2>
<p>Metatag en la cabecera del HTML (entre &lt;head&gt; y &lt;/head&gt;):</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;meta&nbsp;<span>http-equiv</span>="<span>content-type</span>"&nbsp;<span>content</span>="<span>text/html; charset=utf-8</span>" /&gt;</span></span></span></span></span></pre>
<p>Codificaci&oacute;n al momento de guardar tu archivo: <strong>UTF-8</strong>.</p>
<p>Si existe la opci&oacute;n <strong>UTF-8 sin bom</strong>, &uacute;sala. En mi experiencia he tenido problemas sin esta opci&oacute;n con archivos PHP independientes que se conectan a trav&eacute;s de la funci&oacute;n include().</p>
<h2>Soluci&oacute;n a la codificaci&oacute;n ISO-8859-1</h2>
<p>Metatag en la cabecera del HTML (entre &lt;head&gt; y &lt;/head&gt;):</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;meta <span>http-equiv</span>="<span>content-type</span>" <span>content</span>="<span>text/html; charset=iso-8859-1</span>" /&gt;</span></span></span></span></span></pre>
<p>Codificaci&oacute;n al momento de guardar tu archivo: <strong>ANSI</strong>.</p>
<h2>Aclaraciones</h2>
<p><strong>No es necesario utilizar las entidades HTML</strong> para lograr lo que se quiere a exepci&oacute;n de &amp;gt;, &amp;lt; y&nbsp;&amp;quot; que pueden interferir en la sintaxis del mismo. Lo menciono porque algunos las utilizan convirtiendo todos sus textos para dar soluci&oacute;n al problema&nbsp;err&oacute;neamente.</p>
<p><strong>En conclusi&oacute;n</strong>: Asegura que la codificaci&oacute;n del archivo guardado coincida con la especificada en el metatag. Puedes usar todos los acentos y caracteres extra&ntilde;os que quieras.</p>
<p>Estas condiciones valen para cualquier tipo documento.</p>]]></content:encoded> 	<category><![CDATA[xhtml]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 15 Jun 2010 00:11:19</pubDate>
</item>
<item> 
	<title>Web: Editor de imágenes online: Darkroom y Sketchpad</title> 
	<link>http://www.documentoweb.com/Web/Editor-de-imagenes-online-Darkroom-y-Sketchpad</link> 
	<comments>http://www.documentoweb.com/Web/Editor-de-imagenes-online-Darkroom-y-Sketchpad#mensajes </comments> 
	<guid>http://www.documentoweb.com/Web/Editor-de-imagenes-online-Darkroom-y-Sketchpad</guid> 
	<description><![CDATA[ 
Mugtug nos trae dos herramientas web gratuitas para editar imágenes y dibujar: Darkroom y Sketchpad. Ambos funcionando sobre el navegador con HTML5 y principalmente canvas.

Darkroom podría asemejarse a Photoshop y Gimp, te permite abrir una imagen de tu computadora para luego jugar con ella:...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://www.colorjack.com/media/news/canvas_beta.jpg" alt="Sketchpad" width="270" height="189" /></p>
<p><a href="http://mugtug.com/">Mugtug</a> nos trae dos herramientas web gratuitas para editar im&aacute;genes y dibujar: <strong>Darkroom </strong>y <strong>Sketchpad</strong>. Ambos funcionando sobre el navegador con HTML5 y principalmente canvas.</p>
<ul>
<li><strong>Darkroom </strong>podr&iacute;a asemejarse a Photoshop y Gimp, te permite abrir una imagen de tu computadora para luego jugar con ella: modificar niveles de colores, cortar, rotar, aplicar filtros y otros.</li>
<li><strong>Sketchpad </strong>podr&iacute;a asemejarse a Paint, aunque algo mejor. Puedes crear figuras geom&eacute;tricas, escribir, pintar, aplicar degradados, transparencias y m&aacute;s.&nbsp;</li>
</ul>
<p>Qu&eacute; f&aacute;cil, genial para momentos en que necesitemos hacer algo en una computadora ajena.</p>
<p>Ir a&nbsp;<a href="http://mugtug.com/">mugtug</a>,&nbsp;<a href="http://mugtug.com/darkroom/">darkroom</a>&nbsp;o a <a href="http://mugtug.com/sketchpad/">sketchpad</a>.</p>]]></content:encoded> 	<category><![CDATA[web]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 13 Jun 2010 12:12:25</pubDate>
</item>
<item> 
	<title>Lectura: Dos e-book sobre Web 2.0</title> 
	<link>http://www.documentoweb.com/Lectura/Dos-e-book-sobre-Web-2-0</link> 
	<comments>http://www.documentoweb.com/Lectura/Dos-e-book-sobre-Web-2-0#mensajes </comments> 
	<guid>http://www.documentoweb.com/Lectura/Dos-e-book-sobre-Web-2-0</guid> 
	<description><![CDATA[ 
Dos interesantes e-book desarrollados bajo licencia creative commons que tratan sobre la ideología de la Web 2.0: se trata de Web 2.0 de la fundación orange y Planeta Web 2.0 de PlanetaWeb2.
Perfectos para entender cómo desarrollar proyectos que cumplan las ideas de esta interesante idea de la...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4065/4680150087_0dfe522241.jpg" alt="Libro Web 2.0" width="135" height="180" /><img src="http://farm5.static.flickr.com/4022/4680150131_1cce831d8b.jpg" alt="Libro Planeta Web 2.0" width="116" height="179" /></p>
<p>Dos interesantes e-book desarrollados bajo licencia creative commons que tratan sobre la ideolog&iacute;a de la <strong>Web 2.0</strong>: se trata de <strong>Web 2.0</strong> de la <a href="http://www.fundacionorange.es/areas/25_publicaciones/publi_253_11.asp">fundaci&oacute;n orange</a> y <strong>Planeta Web 2.0</strong> de <a title="Planeta Web 2.0" href="http://www.planetaweb2.net/">PlanetaWeb2</a>.</p>
<p>Perfectos para entender c&oacute;mo desarrollar proyectos que cumplan las ideas de esta interesante idea de la nueva web.</p>
<p>Adicionalmente puedes ver este <a href="http://internality.com/web20/files/mapa-web-20.pdf">mapa de la Web 2.0</a> si deseas saber m&aacute;s acerca de esto t&eacute;rmino tan usado en este tiempo con ejemplos claros de sitios que pueden caber dentro del saco.</p>
<p>Para descargar estos dos e-book:</p>
<ul>
<li><a href="http://www.flacso.edu.mx/planeta/blog/index.php?option=com_docman&amp;task=doc_download&amp;gid=12&amp;Itemid=6">Planeta Web 2.0</a></li>
<li><a href="http://www.fundacionorange.es/areas/25_publicaciones/WEB_DEF_COMPLETO.pdf">Web 2.0</a></li>
</ul>]]></content:encoded> 	<category><![CDATA[lectura]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 08 Jun 2010 10:57:31</pubDate>
</item>
<item> 
	<title>Video: Licencia Creative Commons</title> 
	<link>http://www.documentoweb.com/Video/Licencia-Creative-Commons</link> 
	<comments>http://www.documentoweb.com/Video/Licencia-Creative-Commons#mensajes </comments> 
	<guid>http://www.documentoweb.com/Video/Licencia-Creative-Commons</guid> 
	<description><![CDATA[ 
¿Qué más claro que el siguiente video para entender de qué trata la Licencia Creative Commons?. Mejor que leer, una entretenida animación flash muy informativa e inspiradora de la licencia Creative Commons con ejemplos más que reales.






Video desde cyber.law.harvard.edu.     ...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4052/4679418559_94616a6ecb.jpg" alt="" /></p>
<p>&iquest;Qu&eacute; m&aacute;s claro que el siguiente video para entender de qu&eacute; trata la <strong>Licencia Creative Commons</strong>?.&nbsp;Mejor que leer, una entretenida animaci&oacute;n flash muy informativa e inspiradora&nbsp;de la licencia&nbsp;<a href="http://es.wikipedia.org/wiki/Creative_Commons">Creative Commons</a>&nbsp;con ejemplos m&aacute;s que reales.</p>
<p>
<object style="width: 680px; height: 506px;" width="680" height="506" data="http://cyber.law.harvard.edu/blogs/gems/ion/secreativo.swf" type="application/x-shockwave-flash">
<param name="data" value="http://cyber.law.harvard.edu/blogs/gems/ion/secreativo.swf" />
<param name="src" value="http://cyber.law.harvard.edu/blogs/gems/ion/secreativo.swf" />
</object>
</p>
<p>Video desde&nbsp;<a href="http://cyber.law.harvard.edu/blogs/gems/ion/secreativo.swf">cyber.law.harvard.edu</a>.</p>]]></content:encoded> 	<category><![CDATA[video]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 07 Jun 2010 15:30:50</pubDate>
</item>
<item> 
	<title>PHP: Operadores aritméticos en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Operadores-aritmeticos-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Operadores-aritmeticos-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Operadores-aritmeticos-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda el funcionamiento de los operadores aritméticos en PHP con ejemplos y a utilizarlos a voluntad.
Los operadores aritméticos en el PHP nos permiten trabajar matemáticamente con valores númericos. Así, mediante reglas básicas aritméticas y la sintaxis del PHP podemos usar y realizar...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprenda el funcionamiento de los <strong>operadores aritm&eacute;ticos </strong>en PHP con ejemplos y a utilizarlos a voluntad.</p>
<p>Los operadores aritm&eacute;ticos en el PHP nos permiten trabajar matem&aacute;ticamente con valores n&uacute;mericos. As&iacute;, mediante reglas b&aacute;sicas aritm&eacute;ticas y la sintaxis del PHP podemos usar y realizar c&aacute;lculos a voluntad con los valores obtenidos, por ejemplo, para sacar porcentajes, el IVA de un producto, la edad de una persona, utilizar fechas, y todo lo que se nos ocurra.</p>
<p>A continuaci&oacute;n, se muestra una tabla con el operador aritm&eacute;tico junto a su funcionamiento.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>+</code></td>
<td>Suma dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>-</code></td>
<td>Resta dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>*</code></td>
<td>Multiplica dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>/</code></td>
<td>Divide dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>%</code></td>
<td>Obtiene el resto al dividir dos valores</td>
</tr>
<tr>
<td><code>( )</code></td>
<td>Agrupa valores.</td>
</tr>
<tr>
<td><code>++</code></td>
<td>Aumenta un valor num&eacute;rico en una unidad<br /></td>
</tr>
<tr>
<td><code>--</code></td>
<td>Disminuye un valor num&eacute;rico en una unidad</td>
</tr>
</tbody>
</table>
<h2>Operadores aritm&eacute;ticos  b&aacute;sicos</h2>
<p>Esta es una clasificaci&oacute;n propia, ya que la suma, resta, multiplicaci&oacute;n y divisi&oacute;n son parte de nuestro lenguaje matem&aacute;tico b&aacute;sico y cotidiano. Veremos un ejemplo de estos operadores para dejar constancia de como se utilizan.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $calculo1=12/4; <span>// 12/4=3</span><br /> $calculo2=3*2; <span>// 3*2=6</span><br /> $calculo3=20%3; <span>// 20/3=6, resto=2</span><br /> echo $calculo1+$calculo2-$calculo3;<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>7</p>
<h2>Operadores aritm&eacute;ticos  interesantes</h2>
<p>Esta tambi&eacute;n es una clasificaci&oacute;n propia, pues yo nunca hab&iacute;a visto semejante sintaxis. &Eacute;sta es muy simple, una trata de sumar una unidad al valor y la otra, restar una. Me refiero a la sintaxis de <code>$numero++</code> y <code>$numero--</code> respectivamente, en la que la primera es equivalente a <code>$numero=$numero+1</code> y la siguiente a <code>$numero=$numero-1</code>.</p>
<p><strong>Ejemplo PHP</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $numero=24;<br /> $numero++; <span>// 24+1=25</span><br /> $numero--; <span>// 25-1=24</span><br /> $numero++; <span>// 24+1=25</span><br /> $numero++; <span>// 25+1=26</span><br /> echo $numero;<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<p>26</p>
<h2>Ejemplo con todos los operadores</h2>
<p>Ahora veremos todos los operadores aritm&eacute;ticos en un solo ejemplo.</p>
<p>Cuando utilizamos varios operadores en una l&iacute;nea, estos se <strong>ejecutan en forma lineal sin respetar reglas de prioridad matem&aacute;tica, de izquierda a derecha</strong>. Si queremos lograr alguna prioridad de alg&uacute;n calculo, debemos <strong>asociarlo entre par&eacute;ntesis</strong>.</p>
<p><strong>Ejemplo PHP</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $uno = 1;<br /> $dos = 10%8; <span>// 10/8=1, en lo que el resto es 2</span><br /> $tres = 3;<br /> $cuatro = 4;<br /> $uno++; <span>// la variable $uno ahora vale 2, ya que 1+1=2</span><br /> $dos--; <span>// la variable $dos ahora vale 1, ya que 2-1=1</span><br /> $calculo = $tres*($cuatro/$uno)-$dos+$cuatro;<br /> <span>// Esto resulta ser 3*(4/2)-1+4</span><br /> echo $calculo;<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP</strong></p>
<p>9</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[tutorial]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 02 Jun 2010 06:42:38</pubDate>
</item>
<item> 
	<title>Guía: SEO: Optimización motores de búsqueda</title> 
	<link>http://www.documentoweb.com/Guia/SEO/Optimizacion-motores-de-busqueda</link> 
	<comments>http://www.documentoweb.com/Guia/SEO/Optimizacion-motores-de-busqueda#mensajes </comments> 
	<guid>http://www.documentoweb.com/Guia/SEO/Optimizacion-motores-de-busqueda</guid> 
	<description><![CDATA[ 
Este pequeño artículo presenta la guía de optimización para motores búsqueda creada por el mismísimo Google para principiantes en español y formato PDF encontrada en el Centro de Herramientas para Webmasters.
La guía está bastante simple pero muy bien explicada y detallada, tiene mucho...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4011/4653594194_2bfebbb9bc_m.jpg" alt="Google SEO" /></p>
<p>Este peque&ntilde;o art&iacute;culo presenta la <a title="Gu&iacute;a de optimizaci&oacute;n de motores de b&uacute;squeda (SEO)" href="http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.es/es/es/webmasters/docs/guia_optimizacion_motores_busqueda.pdf">gu&iacute;a de optimizaci&oacute;n para motores b&uacute;squeda</a>&nbsp;creada por el mism&iacute;simo Google para principiantes en espa&ntilde;ol y formato PDF encontrada en el <a title="Ir a Herramientas para Webmasters de Google (Webmasters Tools)" href="https://www.google.com/webmasters/tools/">Centro de Herramientas para Webmasters</a>.</p>
<p>La gu&iacute;a est&aacute; bastante simple pero muy bien explicada y detallada, tiene mucho contenido sobre c&oacute;mo describir bien el sitio web en el c&oacute;digo fuente HTML.</p>
<p><strong>Contenido destacado de esta gu&iacute;a SEO</strong>:</p>
<ul>
<li>Mejorar la etiqueta &lt;title&gt;</li>
<li>Mejorar las metaetiquetas</li>
<li>Mejorar la URL de los contenidos de las p&aacute;ginas</li>
<li>Mejorar la navegaci&oacute;n</li>
<li>Mejorar los enlaces dentro de los contenidos</li>
<li>Formas de escribir los contenidos</li>
<li>Usar las cabeceras de forma correcta</li>
<li>Mejorar las etiquetas de las im&aacute;genes con el atributo alt</li>
<li>Usar el nofollow</li>
<li>Usar robots.txt</li>
<li>Pr&aacute;cticas para promocionar el sitio</li>
<li>Recursos SEO adicionales</li>
</ul>
<p>Como ven, tiene bastante contenido, y muy bueno. <a title="Gu&iacute;a de optimizaci&oacute;n de motores de b&uacute;squeda (SEO" href="http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.es/es/es/webmasters/docs/guia_optimizacion_motores_busqueda.pdf">Ir a la gu&iacute;a SEO de google</a>.</p>]]></content:encoded> 	<category><![CDATA[guia]]></category>	<category><![CDATA[seo]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 30 May 2010 13:09:24</pubDate>
</item>
<item> 
	<title>CSS: Tipografías web - Usarlas de manera correcta</title> 
	<link>http://www.documentoweb.com/CSS/Tipografias-web-Usarlas-de-manera-correcta</link> 
	<comments>http://www.documentoweb.com/CSS/Tipografias-web-Usarlas-de-manera-correcta#mensajes </comments> 
	<guid>http://www.documentoweb.com/CSS/Tipografias-web-Usarlas-de-manera-correcta</guid> 
	<description><![CDATA[ Usar tipografías web funcionales y accesibles ha sido siempre un problema para cualquier diseñador web, en este pequeño tutorial intentaré explicar de la mejor manera posible como usarlas de manera correcta y cuales son los límites de su aplicación.
 Este tutorial lo dividiré en 3...]]></description>
	<content:encoded><![CDATA[<p>Usar tipograf&iacute;as web funcionales y accesibles ha sido siempre un problema para cualquier dise&ntilde;ador web, en este peque&ntilde;o tutorial intentar&eacute; explicar de la mejor manera posible como usarlas de manera correcta y cuales son los l&iacute;mites de su aplicaci&oacute;n.</p>
<p><span style="white-space: pre;"> </span>Este tutorial lo dividir&eacute; en 3 partes:</p>
<ol>
<li>Uso de tipograf&iacute;as est&aacute;ndares web.</li>
<li>Uso de fuentes no est&aacute;ndares con Cuf&oacute;n.</li>
<li>Uso de fuentes no est&aacute;ndares con @fontface.</li>
<li>Comparaci&oacute;n entre @fontface y Cuf&oacute;n.</li>
<li>Opini&oacute;n personal.</li>
</ol>
<h2>Uso de tipograf&iacute;as est&aacute;ndares web</h2>
<p>Para visualizar correctamente una fuente de Internet esta debe estar instalada en el equipo del visitante. Hay una serie de tipograf&iacute;as instaladas por defecto en pr&aacute;cticamente todos los sistemas operativos, estas son las <strong>tipograf&iacute;as est&aacute;ndares</strong>.</p>
<p>Las tipograf&iacute;as est&aacute;ndares son:</p>
<ul>
<li>Arial</li>
<li>Arial Black</li>
<li>Comic Sans</li>
<li>Georgia</li>
<li>Impact</li>
<li>Lucida console</li>
<li>Lucida Sans unicode - Lucida Grande*</li>
<li>Palatino</li>
<li>Tahoma - Geneva</li>
<li>Times New Roman - Times</li>
<li>Helvatica</li>
<li>Verdana</li>
</ul>
<p>*Los nombres separadas por un gui&oacute;n representan la misma fuente pero con distintos nombres en diferentes sistemas operativos.</p>
<p>Las tipograf&iacute;as est&aacute;ndar pueden servir perfectamente para crear una web en su totalidad (por ejemplo esta misma web) pero si queremos lograr efectos diferentes como los de otras web (por ejemplo Domestika.com) tendremos que usar alguno de los siguientes m&eacute;todos.</p>
<h3>Fuentes gen&eacute;ricas</h3>
<p>Adicionalmente en cada declaraci&oacute;n de font-family en la hoja de estilo,&nbsp;necesitamos&nbsp;agregar&nbsp;una <strong>fuente gen&eacute;rica</strong>, es decir, una familia de fuente a la cual pertenece la tipograf&iacute;a seleccionada, para que en los casos de que la fuente usada no se encuentre en el dispositivo en que se lea, se use una fuente "parecida".</p>
<p>Las 5 fuentes gen&eacute;ricas son:</p>
<ul>
<li>monospace</li>
<li>Sans</li>
<li>Sans-serif</li>
<li>fantasy</li>
<li>cursive</li>
</ul>
<p>Cada una de estas fuentes gen&eacute;ricas se distinguen entre s&iacute;. Podemos ver la siguiente imagen para saber sus&nbsp;diferencias.</p>
<p><img src="http://farm5.static.flickr.com/4035/4653204336_0f67dea0fa_b.jpg" alt="" /></p>
<p>As&iacute;, por ejemplo, podemos declarar font-family de la siguiente forma:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">body      {font-family:tahoma,arial,sans-serif;}<br />h1         {font-family:georgia,serif;}<br />pre,code {font-family:'lucida console',monospace;}&nbsp;</span></span></span></span></span></pre>
<h2>Uso de fuentes no est&aacute;ndares con Cuf&oacute;n</h2>
<p>Cuf&oacute;n es una libreria JS que permite cambiar la fuente mostrada en pantalla por una subida anteriormente al servidor, respeta la accesibilidad del sitio as&iacute; como su contenido jer&aacute;rquico.</p>
<p>Primero, debemos descargar Cuf&oacute;n <a href="http://cufon.shoqolate.com/js/cufon-yui.js">aqu&iacute;</a>. (Clic derecho &gt;&gt; Guardar como)</p>
<p>Para usar Cuf&oacute;n tendremos que usar <a href="http://cufon.shoqolate.com/generate/">este generador</a>.&nbsp;﻿﻿En &eacute;l subimos los archivos de la fuente que deseamos incluir, rellenamos&nbsp;todos los datos y <strong>aceptamos las condiciones generales.&nbsp;</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;script src="cufon-yui.js" type="text/javascript"&gt;&lt;/script&gt;<br />&lt;script src="***Nombre de tu tipograf&iacute;a***.font.js" type="text/javascript"&gt;&lt;/script&gt;<br />&lt;script type="text/javascript"&gt;&nbsp;<br />Cufon.replace('h1');<br />Cufon.replace('h4');<br />&lt;/script&gt;&nbsp;</span></span></span></span></span></pre>
<p>Este script se coloca en el head de tu web y sustituye por tu fuente lo s encabezados de nivel h1 y h4 <strong>(A estos encabezados se les puede dar cualquier estilo CSS)</strong>.</p>
<h2>Uso de fuentes no est&aacute;ndares con @fontface</h2>
<p>@font face es una propiedad CSS3 que permite cambiar la fuente mostrada en pantalla por una subida anteriormente al servidor, respeta la accesibilidad del sitio as&iacute; como su contenido&nbsp;jer&aacute;rquico.&nbsp;</p>
<p>Para usar @fontface debemos usar <a href="http://www.fontsquirrel.com/fontface/generator">este generador</a>. Elegimos easy y seguimos las instrucciones.</p>
<p>Usaremos este c&oacute;digo css:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">@font-face {
	font-family: '<strong>Nombre de tu tipograf&iacute;a</strong>';
	src: url("<strong>Nombre de tu tipograf&iacute;a</strong>.eot');
	src: local('<strong>Nombre de tu tipograf&iacute;a</strong>'), local('<strong>Nombre de tu tipograf&iacute;a</strong>'), url('') format('woff'), url(<strong>Nombre de tu tipograf&iacute;a</strong>.ttf') format('truetype'), url('<strong>Nombre de tu tipograf&iacute;a</strong>.svg#') format('svg');
}</span></span></span></span></span></pre>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">h1 {<br />font-family: '<strong>Nombre de tu tipograf&iacute;a</strong>';<br />}<br />h4 {<br />font-family:&nbsp;'<strong>Nombre de tu tipograf&iacute;a</strong>';<br />}</span></span></span></span></span></pre>
<h2>Comparaci&oacute;n entre @fontface y Cuf&oacute;n</h2>
<h3>Cuf&oacute;n</h3>
<p><strong>Ventajas:</strong></p>
<ol>
<li>Compatible con todos los navegadores.</li>
<li>Contenido jerarquizado y ordenado.</li>
<li>Se pueden dar estilos CSS.</li>
</ol>
<p><strong>Desventajas:</strong></p>
<ol>
<li>No se puede copiar el texto directamente al portapapeles.</li>
</ol>
<h3>@fontface</h3>
<p><strong>Ventajas:</strong></p>
<ol>
<li>Contenido jerarquizado y ordenado.</li>
<li>Se pueden dar estilos CSS.</li>
<li>Se puede copiar el texto directamente al portapapeles.</li>
</ol>
<p><strong>Desventajas:</strong></p>
<ol>
<li>S&oacute;lo compatible con navegadores con soporte CSS3.</li>
</ol>
<h2>Opini&oacute;n personal</h2>
<p>Yo, personalmente, me inclino por usar siempre tipograf&iacute;as est&aacute;ndares. Considero que una p&aacute;gina cuyo logotipo sea solo el nombre con una tipograf&iacute;a especial, en vez de usar im&aacute;genes GIF con etiqueta ALT usar <strong>Cuf&oacute;n</strong> con encabezado de nivel h1.</p>
<p>El uso de <strong>@fontface</strong> no lo recomiendo en la mayor&iacute;a de los casos, aunque se podr&iacute;a utilizar en casos en los que no sea estrictamente necesario utilizar ese tipo de letra en particular, como por ejemplo en encabezados de nivel h3, siempre con un tipo de letra alternativo en el atributo fontfamily.</p>
<p><em>Gracias a Null por su apoyo y su ayuda, gracias a aquellos que soportaron mi ignorancia y los cuales la siguen soportando.</em></p>
<p><em>Anrdresuchop</em></p>
<p><em>Domingo, 30 de mayo de 2010</em></p>]]></content:encoded> 	<category><![CDATA[css]]></category>	<category><![CDATA[seo]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 30 May 2010 08:19:09</pubDate>
</item>
<item> 
	<title>PHP: Operadores en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Operadores-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Operadores-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Operadores-en-PHP</guid> 
	<description><![CDATA[ 
Tabla de contenidos de los distintos operadores usados en PHP: aritméticos, de asginación, lógicos y operadores condicionales.
Los operadores en PHP, nos permiten trabajar con valores, ya sea comparando, diferenciando, sumando, restando, multiplicando y/o haciendo diferentes operaciones con...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p id="intro">Tabla de contenidos de los distintos operadores usados en PHP: aritm&eacute;ticos, de asginaci&oacute;n, l&oacute;gicos y operadores condicionales.</p>
<p>Los operadores en PHP, nos permiten trabajar con valores, ya sea comparando, diferenciando, sumando, restando, multiplicando y/o haciendo diferentes operaciones con cadenas num&eacute;ricas o alfanum&eacute;ricas.</p>
<h3>Operadores aritm&eacute;ticos</h3>
<p>Podemos ver en detalle cada operador aritm&eacute;tico.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>+</code></td>
<td>Suma dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>-</code></td>
<td>Resta dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>*</code></td>
<td>Multiplica dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>/</code></td>
<td>Divide dos valores num&eacute;ricos</td>
</tr>
<tr>
<td><code>%</code></td>
<td>Obtiene el resto al dividir dos valores</td>
</tr>
<tr>
<td><code>++</code></td>
<td>Aumenta un valor num&eacute;rico en una unidad</td>
</tr>
<tr>
<td><code>--</code></td>
<td>Disminuye un valor num&eacute;rico en una unidad</td>
</tr>
</tbody>
</table>
<h3>Operadores de asignaci&oacute;n</h3>
<p>Podemos ver en detalle cada operador de asignaci&oacute;n.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>=</code></td>
<td>Asigna el valor de la derecha al de la izquierda</td>
</tr>
<tr>
<td><code>+=</code></td>
<td>Suma el valor de la derecha con el de la izquierda, y asigna el total al de la izquierda</td>
</tr>
<tr>
<td><code>-=</code></td>
<td>Resta el valor de la derecha con el de la izquierda, y asigna la diferencia de la izquierda</td>
</tr>
<tr>
<td><code>*=</code></td>
<td>Multiplica el valor de la derecha con el de la izquierda, y asigna el producto al de la izquierda</td>
</tr>
<tr>
<td><code>/=</code></td>
<td>Divide el valor de la derecha con el de la izquierda, y asigna el cuociente al de la izquierda</td>
</tr>
<tr>
<td><code>%=</code></td>
<td>Divide el valor de la derecha con el de la izquierda, y asigna el resto al de la izquierda</td>
</tr>
<tr>
<td><code>.=</code></td>
<td>Concatena la cadena de la derecha con la de la izquierda, y asigna el conjunto al de la izquierda</td>
</tr>
</tbody>
</table>
<h3>Operadores condicionales</h3>
<p>Podemos ver en detalle cada operador condicional.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>==</code></td>
<td>Comprueba si dos cadenas son ind&eacute;nticas</td>
</tr>
<tr>
<td><code>!=</code></td>
<td>Comprueba si dos cadenas son diferentes</td>
</tr>
<tr>
<td><code>&lt;</code></td>
<td>Comprueba si el valor de la izquierda es menor que el de la derecha</td>
</tr>
<tr>
<td><code>&gt;</code></td>
<td>Comprueba si el valor de la izquierda es mayor que el de la derecha</td>
</tr>
<tr>
<td><code>&lt;=</code></td>
<td>Comprueba si el valor de la izquierda es menor o igual que el de la derecha</td>
</tr>
<tr>
<td><code>&gt;=</code></td>
<td>Comprueba si el valor de la izquierda es mayor o igual que el de la derecha</td>
</tr>
</tbody>
</table>
<h3>Operadores l&oacute;gicos</h3>
<p>Podemos ver en detalle cada operador l&oacute;gico.</p>
<table>
<tbody>
<tr>
<th>Operador</th> <th>Funci&oacute;n</th>
</tr>
<tr>
<td><code>and</code></td>
<td>Si ambos valores se cumplen es verdadero</td>
</tr>
<tr>
<td><code>or</code></td>
<td>Si uno o todos los valores se cumplen es verdadero</td>
</tr>
<tr>
<td><code>xor</code></td>
<td>Si solo uno de los valores se cumple es verdadero</td>
</tr>
<tr>
<td><code>&amp;&amp;</code></td>
<td>Id&eacute;ntico a <code>and</code></td>
</tr>
<tr>
<td><code>||</code></td>
<td>Id&eacute;ntico a <code>or</code></td>
</tr>
</tbody>
</table>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[seo]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 29 May 2010 15:38:06</pubDate>
</item>
<item> 
	<title>SEO: htaccess: Transformar URLs con .htaccess</title> 
	<link>http://www.documentoweb.com/SEO/htaccess/Transformar-URLs-con-htaccess</link> 
	<comments>http://www.documentoweb.com/SEO/htaccess/Transformar-URLs-con-htaccess#mensajes </comments> 
	<guid>http://www.documentoweb.com/SEO/htaccess/Transformar-URLs-con-htaccess</guid> 
	<description><![CDATA[ 
Transformar las URLs de un sitio web ya sea para mejorar el SEO de nuestra web o la simple apariencia de la URL es tan fácil de lograr y no todo el mundo lo hace. Es una muy buena ventaja que debe ser aprovechada y que puede ser combinada a la perfección con el lenguaje PHP más el simple...]]></description>
	<content:encoded><![CDATA[<p><img class="imagen_derecha" src="http://www.apache.org/images/feather.gif" alt="" width="248" height="70" /></p>
<p>Transformar las URLs de un sitio web ya sea para mejorar el SEO de nuestra web o la simple apariencia de la URL es tan f&aacute;cil de lograr y no todo el mundo lo hace. Es una muy buena ventaja que debe ser aprovechada y que puede ser combinada a la perfecci&oacute;n con el lenguaje PHP m&aacute;s el simple HTML.</p>
<p>El archivo llamado <a href="http://httpd.apache.org/docs/2.2/howto/htaccess.html"><strong>.htaccess</strong> de Apache</a> es el encargado de esta magnificencia. Aparte de lograr restringir el acceso a archivos espec&iacute;ficos o redireccionar URLs, en este art&iacute;culo s&oacute;lo veremos lo relacionado al <strong>reescribimiento de las URLs</strong>.</p>
<p>El .htaccess contiene su propia sintaxis. A continuaci&oacute;n en el primer ejemplo, las dos primeras l&iacute;neas son para activar el "reescribimiento" de las URLs. Luego, est&aacute; escrita una regla a respetar con expresiones regulares para guiar a las URLs donde nosotros queremos.&nbsp;</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Options +FollowSymLinks
RewriteEngine on

RewriteRule ^(.*)/$ pagina.php?miurl=$1 [L]
</span></span></span></span></span></pre>
<p>Con esta regla, a p&aacute;ginas como www.example.com/pagina.php?miurl=miperfil ahora se podr&aacute;n acceder como www.example.com/miperfil/.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Options +FollowSymLinks
RewriteEngine on
<br />RewriteRule ^(.*)-(.*)/$ pagina.php?categoria=$1&amp;subcategoria=$2 [L]<br />RewriteRule ^pagina$ pagina.php [L]</span></span></span></span></span></pre>
<p>Y con esta otra, a p&aacute;ginas como www.example.com/pagina.php?categoria=trabajos&amp;subcategoria=PDFs ahora se podr&aacute;n acceder como www.example.com/trabajos-PDFs/. Por otro lado, a www.example.com/pagina.php se puede acceder simplemente como www.example.com/pagina.</p>
<p><strong>En conclusiones</strong>:</p>
<p>El lado izquierdo de la regla de reescribimiento (RewriteRule) indica la URL formada, y el&nbsp;derecho indica la URL original.&nbsp;Parte de la expresi&oacute;n regular como (.*) y $1 indican variables, por ello, las reglas que utilizen estas combinaciones servir&aacute;n para todas las URLs que cumplan tal condici&oacute;n.</p>]]></content:encoded> 	<category><![CDATA[seo]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 28 May 2010 22:19:47</pubDate>
</item>
<item> 
	<title>PHP: Uso de sesiones en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Uso-de-sesiones-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Uso-de-sesiones-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Uso-de-sesiones-en-PHP</guid> 
	<description><![CDATA[ 
El uso de sesiones nos proporciona una forma fácil de guardar datos del usuario sin tener que recurrir a mysql o archivos de texto plano, claro está, de forma temporal. Con sesiones se puede realizar:

Saber si un usuario a ingresado en el a través de login.
Cambio de Hoja de estilos CSS por...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="" width="270" height="121" /></p>
<p>El uso de sesiones nos proporciona una forma f&aacute;cil de guardar datos del usuario sin tener que recurrir a mysql o archivos de texto plano, claro est&aacute;, de forma temporal. Con sesiones se puede realizar:</p>
<ul>
<li>Saber si un usuario a ingresado en el a trav&eacute;s de login.</li>
<li>Cambio de Hoja de estilos CSS por parte del usuario.</li>
<li>Cualquier cosa que requiera una variable temporal en relaci&oacute;n a la visita del usuario.</li>
</ul>
<p>Las sesiones se crean de forma bastante sencilla:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php <br /> session_start(); <br /> ?&gt;</span></span></span></span></span></pre>
<p>A trav&eacute;s de esto crearemos una sesi&oacute;n. <strong>OJO: Para poder usar la variables de sesi&oacute;n creadas hay que colocar esto al principio de nuestro script en PHP antes de cualquier sentencia HTML o generar&aacute; un error.</strong></p>
<p>Para definir una variable de sesi&oacute;n (que se guarda de manera temporal, usaremos lo siguiente:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php session_start()<br />if (isset ($_SESSION["variable"] {<br /><span style="white-space: pre;">	</span>echo "Usted ha introducido la variable $<span style="font-size: 12px;">_SESSION["variable"]</span><br />} else {<br />//Remitente de datos (Index.php)<br />&lt;form action="capturador.php" method="POST"&gt;<br />&lt;label for="variable"&gt;Introduzca la variable que quiere introducir a la sesi&oacute;n: &lt;/label&gt;<br />&lt;input type="text" id="variable"&gt;<br />&lt;/form&gt;<br />?&gt;<br /></span></span></span></span></span></pre>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">//Receptor de datos (capturador.php)<br />&lt;?php <br />session_start();<br />$_POST["nombre"] = $_SESSION["variable"];&nbsp; ?&gt;<br />&lt;script type="text/javascript"&gt;<br />window.location="index.php"; <br />&lt;/script&gt;</span></span></span></span></span></pre>
<p>Con ese script lo que realizamos es lo siguiente:</p>
<ul>
<li><span style="white-space: pre;"> </span>Colocamos un IF en el index y si no existe damos un formulario para crearla.</li>
<li><span style="white-space: pre;"> </span>En el capturador recibimos los datos y definimos variable de sesi&oacute;n.</li>
<li><span style="white-space: pre;"> </span>Con el c&oacute;digo javascript redireccionamos al index sin alterar el PHP.</li>
</ul>
<p>Como ves es bastante sencillo, ahora solo nos falta borrar esa sesi&oacute;n:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br />&nbsp;session_start();<span style="white-space: pre;"><br /></span>session_destroy();<br />header("Location: index.php");<br />?&gt;</span></span></span></span></span></pre>
<p>Podr&iacute;amos definir una variable de sesi&oacute;n para un estilo css, seleccionado mediante un form.&nbsp;</p>
<p>En el siguiente tutorial sobre el uso de sesiones ense&ntilde;ar&eacute; a hacer con ellas un sistema para modificar p&aacute;ginas php con contrase&ntilde;a para mantener actualizado el sitio web sin MYSQL.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 28 May 2010 15:27:06</pubDate>
</item>
<item> 
	<title>PHP: Escapar caracteres en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Escapar-caracteres-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Escapar-caracteres-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Escapar-caracteres-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda a escapar caracteres con PHP, técnica usable para imprimir caracteres sin romper la sintaxis de su código fuente.
Ciertos carácteres en el PHP no son posibles imprimirlos y para ello existe la técnica llamada escape de carácteres o carácteres de escape.
Esta técnica o función se...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p id="intro">Aprenda a escapar caracteres con PHP, t&eacute;cnica usable para imprimir caracteres sin romper la sintaxis de su c&oacute;digo fuente.</p>
<p>Ciertos car&aacute;cteres en el PHP no son posibles imprimirlos y para ello existe la t&eacute;cnica llamada <strong>escape de car&aacute;cteres</strong> o <strong>car&aacute;cteres de escape</strong>.</p>
<p>Esta t&eacute;cnica o funci&oacute;n se utiliza cuando no podemos incluir un caracter dentro de una cadena porque altera su sintaxis o para incluir una funci&oacute;n extra dentro de &eacute;sta.</p>
<p>Por ejemplo, al insertar una comilla doble en una cadena encerrada entre comillas dobles crear&iacute;a un error dentro de la l&iacute;nea de c&oacute;digo, o un signo peso que se quiere imprimir y que no sea interpretado como una variable.</p>
<p>Las combinaciones a utilizar para lograr un escape de caracter se hacen junto al <em>slash invertido</em> (). A continuaci&oacute;n se muestra una tabla con las combinaciones posibles.</p>
<table>
<thead> 
<tr>
<th>Combinaci&oacute;n</th> <th>Significa</th> <th>Imprime</th>
</tr>
</thead> 
<tbody>
<tr>
<td><code>\\</code></td>
<td><br /></td>
<td>Slash invertido</td>
</tr>
<tr>
<td><code>\"</code></td>
<td><br /></td>
<td>Comilla doble</td>
</tr>
<tr>
<td><code>\'</code></td>
<td><br /></td>
<td>Comilla simple</td>
</tr>
<tr>
<td><code>\$</code></td>
<td><br /></td>
<td>Signo peso</td>
</tr>
<tr>
<td><code>\n</code></td>
<td>New line</td>
<td>Nueva l&iacute;nea</td>
</tr>
<tr>
<td><code>\r</code></td>
<td>Carriage return</td>
<td>Retorno de carro (salto de l&iacute;nea)</td>
</tr>
<tr>
<td><code>\t</code></td>
<td>Tabulation</td>
<td>Tabulaci&oacute;n</td>
</tr>
</tbody>
</table>
<h2>Ejemplos de escape de caracteres</h2>
<p>Si queremos incluir comillas dobles en una cadena encerrada entre comillas dobles, debemos usar un escape de caracter porque si se incluyera solo, la cadena terminar&iacute;a y la sintaxis de la l&iacute;nea se perder&iacute;a, provocando un error.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> echo "Lorem ipsum \"dolor sit\" amet.";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Lorem ipsum "dolor sit" amet.</span></span></span></span></span></pre>
<p>Lo mismo sucede con las comillas simples insertadas en una cadena encerrada entre comillas simples.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> echo 'Lorem ipsum \'dolor sit\' amet.';<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Lorem ipsum 'dolor sit' amet.</span></span></span></span></span></pre>
<p>Si quisieramos imprimir un precio cuya cifra est&eacute; junto al signo pesos, debemos escapar este signo pues se tiende a leer como una variable.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> echo "El vestido me costo \$xxx";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">El vestido me costo $xxx</span></span></span></span></span></pre>
<p>Otro ejemplo ser&iacute;a el siguiente, en el que incluimos un salto de l&iacute;nea en el <strong>c&oacute;digo fuente del archivo</strong> para que no se nos vea todo amontonado.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> echo "&lt;ul&gt;\n&lt;li&gt;Una cosa&lt;/li&gt;\n&lt;li&gt;Otra cosa&lt;/li&gt;\n&lt;/ul&gt;";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<ul>
<li>Una cosa</li>
<li>Otra cosa</li>
</ul>
<p><strong>Resultado en el c&oacute;digo fuente:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;ul&gt;<br /> &lt;li&gt;Una cosa&lt;/li&gt;<br /> &lt;li&gt;Otra cosa&lt;/li&gt;<br /> &lt;/ul&gt; </span></span></span></span></span></pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 25 May 2010 23:02:36</pubDate>
</item>
<item> 
	<title>PHP: Concatenación de cadenas en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Concatenacion-de-cadenas-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Concatenacion-de-cadenas-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Concatenacion-de-cadenas-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda a concatenar las cadenas imprimibles del PHP para diferenciar cadenas de variables y así obtener un código PHP impecable.
La concatenación es una regla de cualquier lenguaje de programación que permite diferenciar una cadena de una variable conservando su unión.
Esta técnica nos...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p id="intro">Aprenda a concatenar las cadenas imprimibles del PHP para diferenciar cadenas de variables y as&iacute; obtener un c&oacute;digo PHP impecable.</p>
<p>La concatenaci&oacute;n es una regla de cualquier lenguaje de programaci&oacute;n que permite <strong>diferenciar una cadena de una variable</strong> conservando su uni&oacute;n.</p>
<p>Esta t&eacute;cnica nos sirve en casos de que nuestra variable <strong>incluida dentro de una cadena de car&aacute;cteres no se diferencie de &eacute;sta</strong>, cuando se incluye dentro de una cadena de car&aacute;cteres encerrada entre comillas simples o en casos m&aacute;s particulares en que no se pueda imprimir una cadena.</p>
<p>El caracter <strong>para concatenar una cadena en PHP</strong> es el punto (<code>.</code>) y se utiliza entremedio de la cadena (que puede estar entre comillas) y la variable a concatenar.</p>
<p>Un ejemplo sin concatenaci&oacute;n puede darnos un resultado &oacute;ptimo:</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $numero = 4;<br /> echo "Yo tengo $numero casas.";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Yo tengo 4 casas.</span></span></span></span></span></pre>
<p>Pero si fuese una variable "confundida" entre el texto, no ser&iacute;a lo mismo porque identificar&iacute;amos a una variable que no existe y podr&iacute;a dar un resultado no esperado.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $numero = 4;<br /> echo "Yo tengo $numero20 casas.";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Yo tengo  casas.</span></span></span></span></span></pre>
<p>De lo que quer&iacute;amos obtener el siguiente resultado y no el anterior, pues la variable <code>$numero20</code> no es la misma que <code>$numero</code>:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Yo tengo 420 casas.</span></span></span></span></span></pre>
<p>Para obtener este resultado, debemos entrar a concatenar la cadena. Utilizamos el caracter punto dicho en parrafos anteriores para separar la cadena (que est&aacute; entre comillas dobles) de la variable. En total necesitaremos dos.</p>
<p><strong>Ejemplo PHP de concatenaci&oacute;n:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $numero = 4;<br /> echo "Yo tengo ".$numero."20 casas.";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Yo tengo 420 casas.</span></span></span></span></span></pre>
<h3>Otros ejemplos de concatenaci&oacute;n</h3>
<p>Si la variable est&aacute; al principio o al final de la cadena, nos ahorraremos una concatenaci&oacute;n. Ahora veremos otros ejemplos de concatenaci&oacute;n para dar algunas ideas de lo que se puede lograr.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> echo $edad." a&ntilde;os llevo en esta ciudad"; </span></span></span></span></span></pre>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> echo 'Necesito llegar a '.$metros; </span></span></span></span></span></pre>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> $frase_ahorro = "Estoy ahorrando ".$pesos." pesos hace ".$meses." meses para tener en total ".$dinero; </span></span></span></span></span></pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 24 May 2010 20:40:12</pubDate>
</item>
<item> 
	<title>Hexadecimal: Crear colores hexadecimales</title> 
	<link>http://www.documentoweb.com/Hexadecimal/Crear-colores-hexadecimales</link> 
	<comments>http://www.documentoweb.com/Hexadecimal/Crear-colores-hexadecimales#mensajes </comments> 
	<guid>http://www.documentoweb.com/Hexadecimal/Crear-colores-hexadecimales</guid> 
	<description><![CDATA[ 
El Sistema Hexadecimal es un sistema de numeración posicional de base 16 que procura hacernos más fácil la tarea a la hora de trabajar con códigos fuentes de programas, creación de colores y codificación de carácteres que usamos a diario en nuestra computadora.
En este artículo,...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4059/4637033853_acf32ee49d_o.png" alt="Color" /></p>
<p>El <strong>Sistema <span>Hex</span>adecimal</strong> es un sistema de numeraci&oacute;n posicional de base 16 que procura hacernos m&aacute;s f&aacute;cil la tarea a la hora de trabajar con c&oacute;digos fuentes de programas, creaci&oacute;n de colores y codificaci&oacute;n de car&aacute;cteres que usamos a diario en nuestra computadora.</p>
<p>En este art&iacute;culo, trabajaremos s&oacute;lo con los <strong>colores hexadecimales</strong> y aprenderemos a crearlos sin necesidad de utilizar un programa adicional.</p>
<p>De esta manera, podemos ahorrar mucho tiempo, sin mencionar que es algo entretenido.</p>
<h2>Los colores hexadecimales</h2>
<p>Los colores hexadecimales forman parte de nuestra vida inform&aacute;tica por donde le miremos. Absolutamente todos los colores que vez en tu computadora, est&aacute;n basados o se pueden traducir a este sistema, y es muy f&aacute;cil usarlo cuando ya se tiene dominado.</p>
<h2>Composici&oacute;n de colores hexadecimales</h2>
<p>Se dice que es un sistema de <strong>base 16</strong> porque para su funcionamiento el sistema hexadecimal utiliza 16 caracteres no solo num&eacute;ricos: <strong>0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E,</strong> y <strong>F</strong>. Las letras fueron agregadas en reemplazo de los n&uacute;meros que siguen despu&eacute;s del 9 para no crear confusi&oacute;n al combinarlos: 10=&gt;A, 11=&gt;B, 12=C, 13=&gt;D, 14=&gt;E y 15=&gt;F.</p>
<p>Los colores hexadecimales constan de 6 caractares: los dos primeros indican el nivel de rojo, los dos siguientes el nivel de verde y los &uacute;ltimos dos el nivel de azul, identificados cada uno con su correspondientes car&aacute;cteres en hexadecimal.</p>
<p>As&iacute; podemos hacer combinaciones de colores "rellenando cada nivel" con la cantidad de color que deseamos. Vea la siguiente ilustraci&oacute;n para analizar los colores hexadecimales.</p>
<p><img src="http://farm4.static.flickr.com/3390/4637622754_9e9e2460ba_o.png" alt="Colores hexadecimales" width="650" height="858" /></p>
<h2>&iquest;Y donde uso los colores hexadecimales?</h2>
<p>En muchas partes. Por ejemplo: en las selecciones de colores de Photoshop o Gimp, en las hojas de estilo CSS, en el mism&iacute;simo Paint (abria que traducir cada nivel de hexadecimal a decimal con la calculadora en modo cient&iacute;fico), en p&aacute;ginas webs que permiten modificar su apariencia, y en general, en casi todo software que tenga que ver con el color.</p>
<p>Esta misma web, contiene colores hexadecimales. Los enlaces son de color #008888.</p>]]></content:encoded> 	<category><![CDATA[hexadecimal]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 24 May 2010 20:38:41</pubDate>
</item>
<item> 
	<title>PHP: Uso de comillas dobles y simples en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Uso-de-comillas-dobles-y-simples-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Uso-de-comillas-dobles-y-simples-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Uso-de-comillas-dobles-y-simples-en-PHP</guid> 
	<description><![CDATA[ 
Aprenda a utilizar correctamente las comillas dobles y simples en las cadenas de carácteres de sus líneas PHP.
El uso de las comillas dentro del código fuente PHP nos permite determinar una cadena de caracteres. Estas pueden variar según los caracteres que utilizamos dentro de ella o según...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Aprenda a utilizar correctamente las comillas dobles y simples en las cadenas de car&aacute;cteres de sus l&iacute;neas PHP.</p>
<p>El uso de las comillas dentro del c&oacute;digo fuente PHP nos permite determinar una cadena de caracteres. Estas pueden variar seg&uacute;n los caracteres que utilizamos dentro de ella o seg&uacute;n el tipo total de caracteres que la conforman.</p>
<p>Existen 3 formas de utilizar las comillas: <strong>comillas dobles</strong>, <strong>comillas simples</strong> y <strong>sin comillas</strong>.</p>
<h2>Comillas dobles</h2>
<p>En una cadena compuesta por cualquier caracter encerrada entre comillas dobles podemos incluir comillas simples sin <a title="Escapar car&aacute;cteres en PHP" href="http://null.zobyhost.com/PHP/escapar-caracteres-en-php.php">escaparlas</a>, pero si se incluye una comilla doble, obligatoriamente se debe escapar este caracter. No hay necesidad de <a href="http://null.zobyhost.com/PHP/concatenacion-en-php.php">concatenar</a> las variables.</p>
<p><strong>Ejemplo PHP</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $visitas = "400 visitas";<br /> echo "Bienvenido al restaur&aacute;n "Lorem's ipsum". $visitas hoy.";<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP</strong><strong>:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Bienvenido al restaur&aacute;n "Lorem's ipsum". 400 visitas hoy.</span></span></span></span></span></pre>
<h2>Comillas simples</h2>
<p>En una cadena compuesta por cualquier caracter encerrada entre comillas simples podemos incluir comillas dobles sin <a title="Escapar car&aacute;cteres en PHP" href="http://null.zobyhost.com/PHP/escapar-caracteres-en-php.php">escaparlas</a>, pero si se incluye una comilla simple, obligatoriamente se debe escapar este caracter. En esta cadena las variables siempre deben <a href="http://null.zobyhost.com/PHP/concatenacion-en-php.php">concatenarse</a>.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $visitas = '400 visitas';<br /> echo 'Bienvenido al restaur&aacute;n "Lorem's ipsum". '.$visitas.' hoy.';<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP</strong><strong>:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Bienvenido al restaur&aacute;n "Lorem's ipsum". 400 visitas hoy.</span></span></span></span></span></pre>
<h2>Sin comillas</h2>
<p>Una cadena no se encerrar&aacute; necesariamente entre comillas dobles o simples, siempre y cuando contenga solo <strong>car&aacute;cteres num&eacute;ricos</strong> o se trate de <strong>una variable</strong>.</p>
<p><strong>Ejemplo PHP</strong><strong>:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"> &lt;?php<br /> $xyz = 400;<br /> $visitas = $xyz;<br /> echo $visitas.' visitas hoy.';<br /> ?&gt; </span></span></span></span></span></pre>
<p><strong>Resultado PHP</strong><strong>:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">400 visitas hoy.</span></span></span></span></span></pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 24 May 2010 18:21:34</pubDate>
</item>
<item> 
	<title>Videotutorial: Creando un Sitio Web estándar con XHTML, CSS y WAI AAA para todos los navegadores</title> 
	<link>http://www.documentoweb.com/Videotutorial/Creando-un-Sitio-Web-estandar-con-XHTML-CSS-y-WAI-AAA-para-todos-los-navegadores</link> 
	<comments>http://www.documentoweb.com/Videotutorial/Creando-un-Sitio-Web-estandar-con-XHTML-CSS-y-WAI-AAA-para-todos-los-navegadores#mensajes </comments> 
	<guid>http://www.documentoweb.com/Videotutorial/Creando-un-Sitio-Web-estandar-con-XHTML-CSS-y-WAI-AAA-para-todos-los-navegadores</guid> 
	<description><![CDATA[ 
Creando un sitio Web estándar ficticio con lenguaje XHTML 1.0 strict, CSS 2.1, PHP 5, Accesibilidad Web (WAI) AAA y Cross Browser (diseño para todos los navegadores).
Se trata de la creación de una Web con un código fuente semántico, totalmente accesible y visualmente correcta en todos los...]]></description>
	<content:encoded><![CDATA[<p class="imagen_izquierda"><img src="http://farm5.static.flickr.com/4048/4311940882_c8e932527d_o.png" alt="Panda" /></p>
<p><span>Creando un sitio Web est&aacute;ndar ficticio con lenguaje XHTML 1.0 strict, CSS 2.1, PHP 5, Accesibilidad Web (WAI) AAA y Cross Browser (dise&ntilde;o para todos los navegadores).</span></p>
<p><span>Se trata de la creaci&oacute;n de una Web con un c&oacute;digo fuente sem&aacute;ntico, totalmente accesible y visualmente correcta en todos los navegadores Webs (firefox, google chrome, opera, safari, internet explorer 6, 7 y 8). Incluyendo textos, im&aacute;genes creadas con Photoshop, fotograf&iacute;as retocadas, formularios, estilos CSS bien definidos, archivos independientes y algunas l&iacute;neas de PHP.</span></p>
<p><span>Varias horas de trabajo comprimido en un video de 10 minutos.</span></p>
<p><span>Puedes ver el </span><a href="../ejemplos/videotutorial-2/">ejemplo del c&oacute;digo</a><span> o <a href="../ejemplos/videotutorial-2/osopanda.zip">descarg&aacute;rtelo</a> si quieres analizarlo mejor. En </span>incluidos/cabecera.php recuerden modificar la etiqueta &lt;base&gt; como se menciona dentro del c&oacute;digo.</p>
<p>*** Rescatando contenidos de documentoweb (<span>25 de julio de 2009</span>).</p>
<p class="video">
<object style="width: 970px; height: 565px;" width="970" height="565" data="http://www.youtube.com/v/ydu60QUvVK4&amp;hl=es_ES&amp;fs=1&amp;hd=1" type="application/x-shockwave-flash">
<param name="data" value="http://www.youtube.com/v/ydu60QUvVK4&amp;hl=es_ES&amp;fs=1&amp;hd=1" />
<param name="src" value="http://www.youtube.com/v/ydu60QUvVK4&amp;hl=es_ES&amp;fs=1&amp;hd=1" />
</object>
</p>]]></content:encoded> 	<category><![CDATA[videotutorial]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 23 May 2010 01:01:03</pubDate>
</item>
<item> 
	<title>PHP: Comentar código fuente PHP</title> 
	<link>http://www.documentoweb.com/PHP/Comentar-codigo-fuente-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Comentar-codigo-fuente-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Comentar-codigo-fuente-PHP</guid> 
	<description><![CDATA[ 
Existen dos formas de comentar su código fuente PHP para informarse en el futuro de qué trata el código fuente.
Al igual que en cualquier otro lenguaje, ya sea de programación o de marcado como el XHTML, dispone de su propia forma para incluir comentarios informativos directamente en el...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Existen dos formas de comentar su c&oacute;digo fuente PHP para informarse en el futuro de qu&eacute; trata el c&oacute;digo fuente.</p>
<p>Al igual que en cualquier otro lenguaje, ya sea de programaci&oacute;n o de marcado como el XHTML, dispone de su propia forma para incluir comentarios informativos directamente en el c&oacute;digo fuente.</p>
<p>Los comentarios son muy &uacute;tiles a la hora de volver a leer nuestro c&oacute;digo fuente, porque nos entrega y facilita nuestra propia informaci&oacute;n acerca del c&oacute;digo que hemos creado.</p>
<h2>Comentarios de una l&iacute;nea</h2>
<p>El PHP nos entrega dos formas para incluir nuestros comentarios. La primera forma, es para comentar el c&oacute;digo de forma simple y en una l&iacute;nea. Esta se puede incluir solo antes o despu&eacute;s de terminar una l&iacute;nea de c&oacute;digo para que no irrumpa en el c&oacute;digo real.</p>
<p>Para comentar en un l&iacute;nea, se debe anteponer dos barras (<code>//</code>) al principio de la l&iacute;nea, la que se delimita por el salto de l&iacute;nea de la misma.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />// El siguiente c&oacute;digo es para imprimir la frase "Hola mundo".<br />echo "Hola mundo";<br /><br />?&gt;</span></span></span></span></span></pre>
<h2>Comentarios de varias l&iacute;neas</h2>
<p>La segunda forma, es para incluir un comentario de varias l&iacute;neas. Este es generalmente usado para mostrar c&oacute;digos fuentes eliminados o textos largos de varias l&iacute;neas.</p>
<p>Para comentar en varias l&iacute;neas, se deben encerrar esta l&iacute;neas por los car&aacute;cteres "<code>/*</code>" al principio y "<code>*/</code>" al final.</p>
<p><strong>Ejemplo PHP:</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br /><span>/* En el c&oacute;digo:<br />echo "Hola mundo";<br />puedo cambiar la frase entre comillas por cualquier otra. */</span><br /><br />echo "Hola mundo";<br /><br />?&gt;</span></span></span></span></span></pre>
<p>En un procesador de textos, generalmente, los comentarios son presentados de color verde.</p>
<h2>Resultados de los comentarios</h2>
<p>No existe un resultado para el comentario, pues es solo visible en el c&oacute;digo fuente. El comentario solo sirve para tu lectura o para alguien que tenga acceso a tu c&oacute;digo PHP.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 23 May 2010 00:15:11</pubDate>
</item>
<item> 
	<title>PHP: Variables en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Variables-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Variables-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Variables-en-PHP</guid> 
	<description><![CDATA[ 
Las variables en el PHP son los elementos básicos y escenciales para  trabajar cualquier código PHP.
Las variables, no solo en PHP sino que en cualquier otro lenguaje de  programación, es el elemento más básico y escencial para crear un código  y sacarle provecho. La función de una...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Las variables en el PHP son los elementos b&aacute;sicos y escenciales para  trabajar cualquier c&oacute;digo PHP.</p>
<p>Las variables, no solo en PHP sino que en cualquier otro lenguaje de  programaci&oacute;n, es el elemento m&aacute;s b&aacute;sico y escencial para crear un c&oacute;digo  y sacarle provecho. <strong>La funci&oacute;n de una variable es almacenar  valores</strong>, que pueden ser cualquier tipo de combinaci&oacute;n entre  letras, caracteres y/o n&uacute;meros, los cuales estar&aacute;n disponibles para  usarlos con posterioridad.</p>
<h2>Estructura de una variable</h2>
<p>Una variable se forma por dos partes. La primera, es el <strong>nombre  de la variable</strong> inventado por t&iacute; (sensible a min&uacute;culas y  may&uacute;sculas, sin caracteres extra&ntilde;os), a la que se le antepone el signo peso o dolar (<code>$</code>). Luego est&aacute; el <strong>valor de la variable</strong>,  encerrado entre comillas dobles o simples (<code>""</code> o  <code>''</code>).</p>
<p>Estas dos estructuras que conforman a la variable en s&iacute; deben estar  separadas por el signo igual (<code>=</code>) que identifica la <strong>asignaci&oacute;n</strong> del lado derecho al izquierdo y terminada en  el &uacute;ltimo caracter por un punto y coma (<code>;</code>),  como cualquier otra l&iacute;nea en el PHP que siempre debe cerrarse.</p>
<p><strong>Ejemplo de una variable PHP</strong>:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$nombre_mio = "Secreto";</span></span></span></span></span></pre>
<p><strong>Ejemplo de uso de una variable PHP</strong>:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />$nombre_mio = "Null";<br />echo "Mi nombre es $nombre_mio";<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Al ejecutar este ejemplo en el navegador mediante <code>localhost</code> como hemos dicho en p&aacute;ginas anteriores para que el servidor local  interprete nuestro c&oacute;digo PHP nos entregar&aacute; un resultado.</p>
<p><strong>Resultado del ejemplo</strong>:</p>
<p>Mi nombre es Secreto</p>
<h3>Ejemplo de una variable num&eacute;rica</h3>
<p>Trabajar con n&uacute;meros en PHP es de gran utilidad y podemos sacarle  provecho a nuestras necesidades. Sumar, restar, dividir, multiplicar,  sacar porcentajes y redondear n&uacute;meros son algunas de las operaciones que  podemos lograr con PHP [V&eacute;ase operadores  aritm&eacute;ticos]. Por ahora, veremos una suma.</p>
<p><strong>Ejemplo PHP de suma de variables</strong></p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /> <br /> $numero_uno = 45;<br /> $numero_dos = 106;<br /> $suma_total = $numero_uno+$numero_dos;<br /> echo "La suma es  $suma_total";<br /> <br /> ?&gt;</span></span></span></span></span></pre>
<p>Lo que se propone en este ejemplo es sumar el valor num&eacute;rico de la  variable <code>$numero_uno</code> que es <code>45</code> con el de <code>$numero_dos</code> que es <code>106</code>. El total de esta suma se almacena como valor  de la variable <code>$suma_total</code> y esta es la que se imprime  junto con un peque&ntilde;o texto en la l&iacute;nea siguiente.</p>
<p><strong>Resultado del ejemplo:<br /></strong></p>
<p>La suma es 151</p>
<p>Y as&iacute; puedes jugar con cualquier variable en tus c&oacute;digos  PHP, ya sea de n&uacute;meros o con letras. En el caso de las letras recuerda  encerrarlas entre comillas dobles o simples [V&eacute;ase uso de comillas].</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 21 May 2010 13:11:16</pubDate>
</item>
<item> 
	<title>PHP: Primeros pasos en PHP</title> 
	<link>http://www.documentoweb.com/PHP/Primeros-pasos-en-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Primeros-pasos-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Primeros-pasos-en-PHP</guid> 
	<description><![CDATA[ 
¿Como se escribe el PHP? Sigue los primeros pasos para aprender y usar el lenguaje con su correcta sintaxis.
El PHP se ejecuta siempre y cuando esta instalado el servidor local como lo hemos visto en como utilizar el PHP.
Sintaxis
La sintaxis del PHP es simple. Pero a media que vallamos...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p id="intro">&iquest;Como se escribe el PHP? Sigue los primeros pasos para aprender y usar el lenguaje con su correcta sintaxis.</p>
<p>El PHP se ejecuta siempre y cuando esta instalado el servidor local como lo hemos visto en <a title="como utilizar el PHP" href="PHP/como-utilizar-el-php">como utilizar el PHP</a>.</p>
<h2>Sintaxis</h2>
<p>La sintaxis del PHP es simple. Pero a media que vallamos avanzando en las diferentes funciones y ejemplos del PHP no hay que idearse que todo ser&aacute; f&aacute;cil.</p>
<p>La siguiente estructura se debe incluir siempre en un c&oacute;digo o "script PHP". Esta compuesta por un c&oacute;digo de apertura y uno de cierre:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /> <br /> ?&gt;</span></span></span></span></span></pre>
<h3>Consideraciones para la sintaxis</h3>
<ul>
<li>Cada l&iacute;nea de c&oacute;digo PHP se debe escribir entre estas dos lineas que te he presentado.</li>
<li>Cada l&iacute;nea siempre debe cerrarse con un punto y coma (<code>;</code>)</li>
<li>El orden jer&aacute;rquico de las l&iacute;neas siempre influye en la siguiente, y nunca en la anterior.</li>
<li>Los m&uacute;ltiples espacios y saltos de l&iacute;nea son comprimidos a uno.</li>
</ul>
<h2>El famoso "imprimir"</h2>
<p>Imprimir en PHP significa presentar el resultado en el documento, es decir, por ejemplo, el c&oacute;digo HTML que queremos mostrar en la p&aacute;gina Web.</p>
<p>El c&oacute;digo para imprimir un valor por excelencia en PHP es <strong><code>echo</code></strong>. No est&aacute; categorizado como una funci&oacute;n del PHP, m&aacute;s bien, es una <strong>sentencia del lenguaje</strong>.</p>
<p>Cada <code>echo</code> debe estar acompa&ntilde;ado de la cadena a mostrar. En el siguiente ejemplo se debe encerrar entre comillas lo que se desea y cerrar con punto y coma al final de la l&iacute;nea como escrib&iacute; en las consideraciones.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /> <br /> echo "Hola mundo";<br /> <br /> ?&gt;</span></span></span></span></span></pre>
<h2>Crear el archivo PHP</h2>
<p>Pongamos en pr&aacute;ctica el c&oacute;digo anterior. Debes abrir tu procesador de texto, escribir o copiar (no es muy buena idea, trata siempre de escribir t&uacute; el c&oacute;digo y aprender&aacute;s en poco tiempo) el c&oacute;digo que he puesto m&aacute;s arriba o con alguna modificaci&oacute;n, por ejemplo con un poco de HTML:</p>
<p><img title="Ejemplo de c&oacute;digo PHP en Notepad++" src="http://null.zobyhost.com/img/php-en-notepad++.png" alt="PHP en Notepad++" /></p>
<p>Ahora procedemos a guardar el documento con la extensi&oacute;n <code>.php</code> despu&eacute;s del nombre del archivo a elecci&oacute;n en la carpeta de destino. Si usas Apache XAMPP en Windows ser&iacute;a C: &gt; XAMPP &gt; htdocs.</p>
<p><a href="http://null.zobyhost.com/img/guardar-archivo-php.png"><img title="Ejemplo de guardado de documento PHP en Notepad++" src="http://null.zobyhost.com/img/guardar-archivo-php.png" alt="Guardar archivo PHP" width="500" /></a></p>
<p>Ahora procedemos a ejecutar el documento creado desde tu navegador con la direcci&oacute;n <code>http://localhost/nombre_archivo.php</code>.</p>
<p>El producto de este c&oacute;digo ser&aacute; solo la parte de echo, ninguna otra m&aacute;s. Esta es una de las grandes caracter&iacute;sticas de un lenguaje de servidor como el PHP en que le mostrar&aacute; al lector solo lo que nosotros queremos mostrale. Al generar din&aacute;micamente una p&aacute;gina Web por el servidor, <strong>el usuario no ver&aacute; absolutamente nada del c&oacute;digo PHP que has creado</strong>.</p>
<p>Deber&iacute;as ver el c&oacute;digo fuente de tu p&aacute;gina generada din&aacute;micamente desde el navegador para que compruebes lo dicho.</p>
<p>Si todo te ha resultado correctamente, te felicito, porque has credo tu primera p&aacute;gina en PHP.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 20 May 2010 21:50:29</pubDate>
</item>
<item> 
	<title>Software: Notepad++, procesador de textos</title> 
	<link>http://www.documentoweb.com/Software/Notepad-procesador-de-textos</link> 
	<comments>http://www.documentoweb.com/Software/Notepad-procesador-de-textos#mensajes </comments> 
	<guid>http://www.documentoweb.com/Software/Notepad-procesador-de-textos</guid> 
	<description><![CDATA[ 
Notepad++ es un procesador de textos gratuito, que soporta muchos lenguajes de programación y se ejecuta en Windows.
Incorpora una interfaz muy clara y de diseño intuitivo, con soporte para abrir varios documentos al mismo tiempo, visualización en ventana doble que te permite editar dos...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4064/4620879104_b027541c88_o.png" alt="Notepad++" /></p>
<p id="intro">Notepad++ es un <strong>procesador de textos</strong> gratuito, que soporta muchos lenguajes de programaci&oacute;n y se ejecuta en Windows.</p>
<p>Incorpora una interfaz muy clara y de dise&ntilde;o intuitivo, con soporte para abrir varios documentos al mismo tiempo, visualizaci&oacute;n en ventana doble que te permite editar dos documentos simult&aacute;neamente, c&oacute;digo de colores para los comandos de cada lenguaje de programaci&oacute;n, soporte para drag-and-drop y muchas otras funciones.</p>
<p>Notepad++ incluye adem&aacute;s una utilidad de zoom y te permite usar marcadores para moverte mejor dentro de los largu&iacute;simos ficheros de c&oacute;digo.</p>
<p><span><img src="http://farm5.static.flickr.com/4014/4620265917_26cff72e7e_o.png" alt="" /></span></p>
<p>En definitiva, un editor similar al Bloc de Notas de Windows en tama&ntilde;o y velocidad, pero con much&iacute;simas m&aacute;s funcionalidades.</p>
<p><strong>A continuaci&oacute;n enumeraremos algunas caracter&iacute;sticas de Notepad++ :</strong></p>
<ul>
<li>Sintaxis coloreada y envoltura de sintaxis</li>
<li>WYSIWYG</li>
<li>Sintaxis coloreada a elecci&oacute;n del usuario</li>
<li>Autocompletado</li>
<li>Multi-Documento</li>
<li>Multi-Vista</li>
<li>Soporte para Buscar/Reemplazar expresiones regulares</li>
<li>Soporte completo para Arrastrar y colocar</li>
<li>Posici&oacute;n din&aacute;mica de las vistas</li>
<li>Deteci&oacute;n autom&aacute;tica del estado del documento</li>
<li>Herramienta de Zoom</li>
<li>Funcionamiento bajo entornos multiling&uuml;es</li>
<li>Puntos de marca</li>
<li>Resaltado de par&eacute;ntesis y sangr&iacute;a</li>
<li>Grabaci&oacute;n y reproducci&oacute;n de macros</li>
</ul>
<p>Puedes descargarlo gratuitamente desde la <a href="http://notepad-plus.sourceforge.net/es/site.htm">Web de Notepad++</a>.</p>
<p><span>Rescatando contenidos de documentoweb.</span></p>]]></content:encoded> 	<category><![CDATA[software]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 18 May 2010 23:40:22</pubDate>
</item>
<item> 
	<title>PHP: Cómo utilizar el PHP</title> 
	<link>http://www.documentoweb.com/PHP/Como-utilizar-el-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Como-utilizar-el-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Como-utilizar-el-PHP</guid> 
	<description><![CDATA[ 
Veremos cómo utilizar el PHP: el procesador de textos y el servidor local así como las diferentes versiones del PHP.
El procesador de texto
Necesitas de un procesador de textos para escribir el código PHP en él y guardar los archivos con formato .php, como lo es el bloc de notas que viene...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="PHP" /></p>
<p>Veremos c&oacute;mo utilizar el PHP: el procesador de textos y el servidor local as&iacute; como las diferentes versiones del PHP.</p>
<h2>El procesador de texto</h2>
<p>Necesitas de un procesador de textos para escribir el c&oacute;digo PHP en &eacute;l y guardar los archivos con formato .php, como lo es el <strong>bloc de notas</strong> que viene instalado en Windows o alguno otro m&aacute;s completo como <a href="http://notepad-plus.sourceforge.net/es/site.htm">Notepad++</a> que incluye coloramiento del c&oacute;digo y funcionalidaes de teclado y texto muy &uacute;tiles para manejar mejor el c&oacute;digo que crearemos.</p>
<h2>El servidor local</h2>
<p>Para que el PHP funcione, debes instalarlo en tu computadora como un <strong>servidor local</strong>. No te preocupes, es muy f&aacute;cil. Existen organizaciones dedicadas a ello como Apache, quien ofrece de forma gratuita <a title="Servidor Web local Apache XAMPP" href="http://www.apachefriends.org/es/xampp.html">Apache XAMPP</a> (multiplatarforma), un paquete de utilizades que entre ello incluye PHP y MySQL (que te servir&aacute; en el futuro).</p>
<ul>
</ul>
<p>Cuando tenemos instalado el servidor local, podemos acceder f&aacute;cilmente al servidor local escribiendo <strong><kbd>localhost</kbd></strong> o <strong><kbd>http://localhost</kbd>/</strong> en el navegador, si funciona correctamente, podemos proceder a experimentar con nuestros propios c&oacute;digos PHP.</p>
<h2>Versiones del PHP</h2>
<p>Actualmente se utiliza PHP 5.3.2, versiones similares a 5.x.x son suficientes para desarrollar scripts m&aacute;s una iterpretaci&oacute;n correcta. Inferiores a 5, mejor actualizate, porque los desarrolladores de PHP cambian o descartan algunas funciones aconveniencia y perfeccionamiento del lenguaje.</p>
<p>Este tutorial de PHP estar&aacute; conforme a las funciones y sintaxis de la versi&oacute;n mas actual. Se informar&aacute; si las funciones pueden ser eliminadas en un futuro.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[htaccess]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 18 May 2010 23:02:35</pubDate>
</item>
<item> 
	<title>Twitter: PHP: Twittear con PHP y la API de twitter</title> 
	<link>http://www.documentoweb.com/Twitter/PHP/Twittear-con-PHP-y-la-API-de-twitter</link> 
	<comments>http://www.documentoweb.com/Twitter/PHP/Twittear-con-PHP-y-la-API-de-twitter#mensajes </comments> 
	<guid>http://www.documentoweb.com/Twitter/PHP/Twittear-con-PHP-y-la-API-de-twitter</guid> 
	<description><![CDATA[ 
Acabo de probar cómo conectarme con twitter para twittear desde documentoweb los artículos que aquí se publican y nunca pensé que sería tan fácil, porque no necesita de ningún "add on" extra como la librería cURL del PHP activada.
Desde PHP lo podemos hacer de la siguiente forma con...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4021/4616449057_ef136db0f9_o.png" alt="twitter" /></p>
<p>Acabo de probar c&oacute;mo conectarme con twitter para twittear desde documentoweb los art&iacute;culos que aqu&iacute; se publican y nunca pens&eacute; que ser&iacute;a tan f&aacute;cil, porque no necesita de&nbsp;ning&uacute;n "add on" extra como la librer&iacute;a cURL del PHP activada.</p>
<p>Desde PHP lo podemos hacer de la siguiente forma con la&nbsp;<a href="http://apiwiki.twitter.com/">API de Twitter</a>, reemplazando los datos de la cuenta y el mensaje a twittear:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />$twit=urlencode('tu nuevo estado en twitter');<br />$usuario = 'micuenta';<br />$password = 'miclave';<br /><br />$salida = "POST http://168.143.171.84/statuses/update.json HTTP/1.1rn"<br />  ."Host: 168.143.171.84rn"<br />  ."Authorization: Basic ".base64_encode ("$usuario:$password")."rn"<br />  ."Content-type: application/x-www-form-urlencodedrn"<br />  ."Content-length: ".strlen ("status=$twit")."rn"<br />  ."Connection: Closernrn"<br />  ."status=$twit";<br />$fp = fsockopen ('168.143.171.84',80);<br />fwrite ($fp, $salida);<br />fclose ($fp);<br /><br />?&gt;</span></span></span></span></span></pre>
<p>As&iacute; y desde ahora, cuando se publique un art&iacute;culo como este mismo, tambi&eacute;n saldr&aacute; en el twitter de documentoweb con un enlace hacia&nbsp;ac&aacute;.</p>
<p>Aprendido desde <a href="http://pratham.name/twitter-php-script-without-curl.html">pratham.name</a>.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">$twit=urlencode($twit);<br />$usuario = 'documentoweb';<br />$password = 'cc008700';<br />$salida = "POST http://168.143.171.84/statuses/update.json HTTP/1.1rn"<br />&nbsp; ."Host: twitter.comrn"<br />&nbsp; ."Authorization: Basic ".base64_encode ("$usuario:$password")."rn"<br />&nbsp; ."Content-type: application/x-www-form-urlencodedrn"<br />&nbsp; ."Content-length: ".strlen ("status=$twit")."rn"<br />&nbsp; ."Connection: Closernrn"<br />&nbsp; ."status=$twit";<br />$fp = fsockopen ('168.143.171.84',80);<br />fwrite ($fp, $salida);<br />fclose ($fp);</div>]]></content:encoded> 	<category><![CDATA[twitter]]></category>	<category><![CDATA[php]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 17 May 2010 18:14:53</pubDate>
</item>
<item> 
	<title>CSS: Esquinas redondeadas con CSS e imágenes para todos los navegadores</title> 
	<link>http://www.documentoweb.com/CSS/Esquinas-redondeadas-con-CSS-e-imagenes</link> 
	<comments>http://www.documentoweb.com/CSS/Esquinas-redondeadas-con-CSS-e-imagenes#mensajes </comments> 
	<guid>http://www.documentoweb.com/CSS/Esquinas-redondeadas-con-CSS-e-imagenes</guid> 
	<description><![CDATA[ 
Ya que el CSS3 sólo está disponible en algunos navegadores y la propiedad border-radius es parte de ella, no podemos utilizarla si queremos que nuestro sitio web se vea estupendo en todos los navegadores.
Es por ello que utilizamos técnicas CSS (versión 2.1) junto con alguna imagen para...]]></description>
	<content:encoded><![CDATA[<p style="float: right; padding-left: 5px;"><img src="http://farm5.static.flickr.com/4053/4613673930_329f82bf37_o.png" alt="" /></p>
<p><span>Ya que el CSS3 s&oacute;lo est&aacute; disponible en algunos navegadores y la propiedad border-radius es parte de ella, no podemos utilizarla si queremos que nuestro sitio web se vea estupendo en todos los navegadores.</span></p>
<p><span>Es por ello que utilizamos t&eacute;cnicas CSS (versi&oacute;n 2.1) junto con alguna imagen para provocar el efecto de las esquinas redondeadas sin sufrir tanto.</span></p>
<p><span>Mi t&eacute;cnica se las mostrar&eacute; a continuaci&oacute;n m&aacute;s unos ejemplos bien completos y concretos donde podr&aacute;n ver y analizar el c&oacute;digo CSS.</span></p>
<p><span>Bien, yo utilizo <strong>una sola imagen</strong>, <strong>6 divs del HTML</strong> y porsupuesto que <strong>CSS</strong>. Quiz&aacute;s sean demasiados divs, pero no encuentro otro m&eacute;todo m&aacute;s simple, adem&aacute;s, no interfiere en el funcionamiento. Lo bueno es que utilizo una sola imagen que contiene las cuatro esquinas juntas formando un circulo, la que en los primeros cuatro divs se posiciona con CSS sin repetirse en cada una de las esquinas. El quinto div cubre 1/2 de cada imagen con rellenos (padding) laterales de tama&ntilde;o de la mitad de la imagen m&aacute;s un color de fondo, y el &uacute;ltimo cubre 1/2 de las partes de las imagenes restantes&nbsp;con un margen negativo superior e inferior con las mismas caracter&iacute;sticas del anterior.</span></p>
<p><span>Se puede interpretar de la siguiente forma:<br /></span></p>
<p><span><img src="http://farm5.static.flickr.com/4044/4613539125_2a4ea36137_o.png" alt="" /></span></p>
<p><span>En general, <strong>los &uacute;ltimos dos divs son los encargados de cubrir 3/4 de la imagen posicionada en cada esquina</strong> (contenida en los 4 divs anteriores).</span></p>
<p><span>Y as&iacute; se puede crear el efecto de las esquinas redondeadas que <strong>funciona en todos los navegadores</strong> (hasta en IE 5.5) con ventajas de agregar bordes CSS, a partir de 6 divs, una sola imagen m&aacute;s un poco de estilo. Creo que es mejor esto en vez de usar 4 divs y una imagen para cada uno como he visto y experimentado en otros ejemplos: menos peticiones para el servidor, </span><span>menor tiempo de carga</span><span>.<br /></span></p>
<p><span>Puedes ver </span><a href="../ejemplos/esquinas-redondeadas-css/"><span>una presentaci&oacute;n que he creado con 4 tipos de cajas de esquinas redondeadas</span></a><span>.<br /></span></p>]]></content:encoded> 	<category><![CDATA[css]]></category>	<category><![CDATA[php]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 16 May 2010 22:08:19</pubDate>
</item>
<item> 
	<title>PHP: Captcha en PHP para combatir el SPAM</title> 
	<link>http://www.documentoweb.com/Captcha-en-PHP-para-combatir-el-SPAM</link> 
	<comments>http://www.documentoweb.com/Captcha-en-PHP-para-combatir-el-SPAM#mensajes </comments> 
	<guid>http://www.documentoweb.com/Captcha-en-PHP-para-combatir-el-SPAM</guid> 
	<description><![CDATA[  

Llevo muchos años combatiendo la inmoralidad de las técnicas del SPAM con varios métodos y el que te presentaré a continuación es el más efectivo que he creado.
La efectividad de este captcha se basa en el giro de las letras o números más la dirección en que indica una flecha.
El...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha">&nbsp;</p>
<p class="imagen_derecha"><img src="http://farm5.static.flickr.com/4012/4609559601_a46e9db93c_o.png" alt="" /></p>
<p>Llevo muchos a&ntilde;os combatiendo la <strong>inmoralidad de las t&eacute;cnicas del SPAM</strong> con varios m&eacute;todos y el que te presentar&eacute; a continuaci&oacute;n es el m&aacute;s efectivo que he creado.</p>
<p>La efectividad de este captcha se basa en el giro de las letras o n&uacute;meros m&aacute;s la direcci&oacute;n en que indica una flecha.</p>
<p>El hecho de que haya que introducir un c&oacute;digo ya evita gran parte de los robot de SPAM, pero en el otro porcentaje se utilizan t&eacute;cnicas de un nivel superior, como un software OCR (pueden reconocer car&aacute;cteres a partir de las&nbsp;im&aacute;genes). Contra estos, ya es m&aacute;s&nbsp;dif&iacute;cil&nbsp;vencerlos, pues&nbsp;pens&aacute;bamos&nbsp;que s&oacute;lo el ojo humano pod&iacute;a reescribir el texto de una imagen, entonces, necesitamos introducir otro elemento que no tienen los robots: la <strong>capacidad de razonar</strong>.</p>
<p>Es justamente lo que hace este y otros buenos captchas: Te induce a pensar y escribir.</p>
<p>Creo que un poco m&aacute;s&nbsp;f&aacute;cil&nbsp;de descifrar que los que tienen letras muy&nbsp;distorsionadas&nbsp;como en los ejemplos de la imagen.</p>
<h2>Integrar el captcha en el c&oacute;digo PHP</h2>
<p>El c&oacute;digo PHP est&aacute; creado con la <a href="http://php.net/manual/es/book.image.php">librer&iacute;a GD</a>&nbsp;del mismo PHP (si ya tienes instalado PHP, no necesitas instalar nada adicional).</p>
<p>Primero, necesitamos el c&oacute;digo que crea la imagen independiente con caracteres aleatorios (cada&nbsp;car&aacute;cter, es una imagen) en posiciones especificas:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />// cabecera<br />header("Content-type: image/png");<br /><br />// crear la imagen (anchura,altura)<br />$img=imageCreate(100,60);<br /><br />// colores<br />$blanco=imagecolorallocate($img,255,255,255);<br />$negro=imagecolorallocate($img,0,0,0);<br /><br />// variables obtenidas por GET<br /><br />$sentido=rand(1,2);<br /><br />$tcaptcha=$_GET['captcha'];<br />$tcaptcha=base64_decode($tcaptcha);<br />$tcaptcha=substr($tcaptcha,1,-1);<br />$tcaptcha=base64_decode($tcaptcha);<br /><br />$caracter1=substr($tcaptcha,0,1);<br />$caracter2=substr($tcaptcha,1,1);<br />$caracter3=substr($tcaptcha,2,1);<br />$caracter4=substr($tcaptcha,3,1);<br />$caracter5=substr($tcaptcha,4,1);<br /><br /><br />if($sentido==1){<br />// flecha<br />$string=imagecopy($img,imagecreatefrompng('flecha1.png'),31,26,0,0,40,30);<br /><br />// caracteres<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_0/$caracter1.png"),90,$blanco,0),3,36,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_45/$caracter2.png"),0,$blanco,0),13,12,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_0/$caracter3.png"),0,$blanco,0),39,0,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_45/$caracter4.png"),270,$blanco,0),65,12,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_0/$caracter5.png"),270,$blanco,0),75,36,0,0,22,22);<br />}<br />if($sentido==2){<br />// flecha<br />$string=imagecopy($img,imagecreatefrompng("flecha2.png"),31,6,0,0,40,30);<br /><br />// caracteres<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_0/$caracter1.png"),270,$blanco,0),8,6,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_45/$caracter2.png"),270,$blanco,0),14,31,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_0/$caracter3.png"),0,$blanco,0),39,36,0,2,22,20);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_45/$caracter4.png"),0,$blanco,0),64,31,0,0,22,22);<br />$string=imagecopy($img,imagerotate(imagecreatefrompng("caracteres_0/$caracter5.png"),90,$blanco,0),70,6,0,0,22,22);<br /><br />}<br /><br /><br />// mostrar la imagen<br />echo imagegif($img);<br /><br />// destruir la imagen<br />imagedestroy($img);<br />?&gt;<br /></span></span></span></span></span></pre>
<p>(libreria-captcha/imagen.php)</p>
<p>Luego, el archivo donde vamos a generar la clave aleatoria y que incluir&aacute; el c&oacute;digo anterior, es decir, donde se encontrar&aacute;n todas las variables que necesitemos:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />$abcnumeros=array(0,1,2,3,4,5,6,7,8,9,"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");<br /><br />$caracter1=$abcnumeros[rand(0,35)];<br />$caracter2=$abcnumeros[rand(0,35)];<br />$caracter3=$abcnumeros[rand(0,35)];<br />$caracter4=$abcnumeros[rand(0,35)];<br />$caracter5=$abcnumeros[rand(0,35)];<br /><br />$captcha=$caracter1.$caracter2.$caracter3.$caracter4.$caracter5;<br /><br />// codificacion propia<br />$captcha_cod=base64_encode($captcha);<br />$captcha_cod="a".$captcha_cod."E";<br />$captcha_cod=str_replace("=","",$captcha_cod);<br />$captcha_cod=base64_encode($captcha_cod);<br /><br />$tu_captcha=md5(strtolower($_POST['tu_captcha']));<br />$mi_captcha=$_POST['mi_captcha'];<br /><br />// variables con HTML<br />$img_captcha='&lt;label for="captcha"&gt;&lt;img src="libreria-captcha/imagen.php?captcha='.$captcha_cod.'" alt="Captcha" title="El c&oacute;digo de verificaci&oacute;n o captcha permite verificar si eres un humano o una m&aacute;quina de SPAM" /&gt;&lt;/label&gt;';<br />$input_captcha='&lt;input type="text" name="tu_captcha" id="captcha" size="10" /&gt;&lt;input type="hidden" name="mi_captcha" value="'.md5($captcha).'" /&gt;';<br /><br />?&gt;</span></span></span></span></span></pre>
<p>(libreria-captcha/variables.php)</p>
<p>Por &uacute;ltimo, en el formulario HTML de una p&aacute;gina cualquiera, donde queremos integrar el captcha necesitamos incluir a las variables (variables.php) e imprimir la varible que contiene el html de la imagen ($img_captcha) y la que tiene el campo donde se debe ingresar el capcha ($input_captcha).</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />include('libreria-captcha/variables.php');<br /><br />echo "&lt;p&gt;".$img_captcha."&lt;/p&gt;";<br />echo "&lt;p&gt;".$input_captcha."&lt;/p&gt;";<br /><br />?&gt;</span></span></span></span></span></pre>
<p>Luego, solo faltar&iacute;a tu c&oacute;digo, en el cual puedes verificar si el c&oacute;digo de verificaci&oacute;n est&aacute; correctamente escrito o no de la siguiente forma:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />if($mi_captcha==$tu_captcha){<br />        // Aqu&iacute; incluyes tu c&oacute;digo si es que el captcha se pasa exitosamente. <br />}else{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// Aqu&iacute; incluyes tu c&oacute;digo si es que el captcha NO se pasa exitosamente.<br />}<br /><br />?&gt;<br /></span></span></span></span></span></pre>
<p>Las variables son enviadas por 2 medios codificados: md5 y uno creado por mi que usa base 64.</p>
<h2>Vea el captcha en funcionamiento.</h2>
<ul>
<li> <a href="archivos/captcha.zip">Descarga el c&oacute;digo</a>, dentro del comprimido hay un ejemplo de uso.</li>
<li><a href="ejemplos/captcha/">Ejemplo de demostraci&oacute;n del captcha</a>.</li>
</ul>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[php]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 15 May 2010 18:11:42</pubDate>
</item>
<item> 
	<title>Texturas: Maderas de calidad para una web</title> 
	<link>http://www.documentoweb.com/Texturas/Maderas-de-calidad-para-una-web</link> 
	<comments>http://www.documentoweb.com/Texturas/Maderas-de-calidad-para-una-web#mensajes </comments> 
	<guid>http://www.documentoweb.com/Texturas/Maderas-de-calidad-para-una-web</guid> 
	<description><![CDATA[ 
He aquí 2 sitios de los cuales he obtenido muy buenas texturas de madera de alta calidad para trabajar junto a un sitio web.

Texturas de madera en flickr
Texturas de madera en defcon-x.de

Posibles usos: Sitios web elegantes. Específicamente si están relacionados con la madera como las...]]></description>
	<content:encoded><![CDATA[<p class="imagen_derecha"><img src="http://farm4.static.flickr.com/3342/4609381286_cea88eb345_o.jpg" alt="textura de madera" /></p>
<p>He aqu&iacute; 2 sitios de los cuales he obtenido muy buenas <strong>texturas de madera</strong> de alta calidad para trabajar junto a un sitio web.</p>
<ul>
<li><a href="http://www.flickr.com/photos/bittbox/sets/72157617708336229/detail/">Texturas de madera en flickr</a></li>
<li><a href="http://www.defcon-x.de/c4d/textures">Texturas de madera en defcon-x.de</a></li>
</ul>
<p><strong>Posibles usos</strong>: Sitios web elegantes. Espec&iacute;ficamente si est&aacute;n relacionados con la madera como las muebler&iacute;as o empresas que trabajen con ella.</p>
<p><strong>Combinaci&oacute;n de colores</strong>: Blanco, negro, marr&oacute;n, verde o naranja y sus derivados. Colores tibios.</p>]]></content:encoded> 	<category><![CDATA[texturas]]></category>	<category><![CDATA[php]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 15 May 2010 11:56:56</pubDate>
</item>
<item> 
	<title>Web: PDFCrowd: Convertir páginas web en PDF con PDFCrowd</title> 
	<link>http://www.documentoweb.com/Web/PDFCrowd/Convierte-paginas-web-en-PDF-con-PDFCrowd</link> 
	<comments>http://www.documentoweb.com/Web/PDFCrowd/Convierte-paginas-web-en-PDF-con-PDFCrowd#mensajes </comments> 
	<guid>http://www.documentoweb.com/Web/PDFCrowd/Convierte-paginas-web-en-PDF-con-PDFCrowd</guid> 
	<description><![CDATA[ Impresionante y simple servicio llamado PDFcrowd que convierte una página web en un archivo PDF. Es demasiado simple de usar y por lo menos a mí, me dejó impactado aunque esté en fase beta: ingresas la URL, presionas "convert to PDF", esperas mientras se descarga el archivo generado y ya tienes...]]></description>
	<content:encoded><![CDATA[<p>Impresionante y simple servicio llamado <a href="http://pdfcrowd.com/"><strong>PDFcrowd</strong></a>&nbsp;que convierte una p&aacute;gina web en un archivo PDF. Es demasiado simple de usar y por lo menos a m&iacute;, me dej&oacute; impactado aunque est&eacute; en fase beta: ingresas la URL, presionas "convert to PDF", esperas mientras se descarga el archivo generado y ya tienes una web para llevar en el bolsillo.</p>
<p>Muy &uacute;til para conservar una p&aacute;gina en un solo archivo sin perder im&aacute;genes o estilos que generalmente suelen omitirse al guardar una p&aacute;gina y que molesta con tantos archivos por separado.</p>
<p>Ir a <a href="http://pdfcrowd.com/">PDFcrowd.com</a>.</p>]]></content:encoded> 	<category><![CDATA[web]]></category>	<category><![CDATA[pdfcrowd]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 12 May 2010 20:52:25</pubDate>
</item>
<item> 
	<title>PHP: Introducción al PHP</title> 
	<link>http://www.documentoweb.com/PHP/Introduccion-al-PHP</link> 
	<comments>http://www.documentoweb.com/PHP/Introduccion-al-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Introduccion-al-PHP</guid> 
	<description><![CDATA[ 
Aprende a crear un sitio web dinámico con PHP de forma sencilla, correcta, con buen uso y excelentes ejemplos.
El lenguaje PHP, "Hypertext Preprocessor" o "Preprocesador de Hipertexto", es el lenguaje de programación del lado del servidor más usado para crear páginas o sitios Web completos de...]]></description>
	<content:encoded><![CDATA[<p id="intro"><span><img style="float: right;" src="http://farm2.static.flickr.com/1428/4596241627_0ed0f0c066_o.png" alt="" /></span></p>
<p>Aprende a crear un sitio web din&aacute;mico con PHP de forma sencilla, correcta, con buen uso y excelentes ejemplos.</p>
<p>El <strong>lenguaje <acronym title="HyperText Preprocessor">PHP</acronym></strong>, "<strong><span>H</span>ypertext <span>P</span>re<span>p</span>rocessor</strong>" o "<strong>Preprocesador de Hipertexto</strong>", es el <strong>lenguaje de programaci&oacute;n</strong> del <strong>lado del servidor</strong> m&aacute;s usado para crear p&aacute;ginas o sitios Web completos de forma f&aacute;cil y din&aacute;mica.</p>
<h2>&iquest;Que es una p&aacute;gina web din&aacute;mica?</h2>
<p>Se refiere a una <strong>p&aacute;gina web din&aacute;mica</strong> a un documento web (de cualquier tipo) que puede <strong>cambiar su c&oacute;digo</strong> seg&uacute;n variables entregadas, como el tiempo o los datos de un formulario, produciendo un resultado esperado. Me refiero a cualquier tipo de documento porque no solo trabaja con HTML, si no que con PDFs, im&aacute;genes, archivos XML, entre otros.</p>
<h3>&iquest;A qu&eacute; se refiere que PHP es del lado del servidor?</h3>
<p>PHP trabaja en una computadora llamada el servidor, la cual contiene el int&eacute;rprete del PHP. &Eacute;ste es el encargado de "interpretar" nuestro c&oacute;digo para entregarnos el resultado que deaseamos. Es por esto que se dice que el PHP es un lenguaje de programaci&oacute;n del <strong>lado del servidor</strong>.</p>
<h3>&iquest;Para que sirve una p&aacute;gina Web din&aacute;mica?</h3>
<p>&iexcl;Infinidad de cosas!... T&uacute; con este verdadero lenguaje de programaci&oacute;n tienes una inmensa gama de posibilidades de <strong>desarrollar en la Web</strong> lo que se te d&eacute; la gana para la internet.</p>
<p>Por ejemplo, puedes crear:</p>
<ul>
<li><strong>Un sitio Web muy flexible</strong>. Con c&oacute;digos independientes puedes separar el encabezado, los menus y el contenido de cualquier p&aacute;gina en <strong>archivos independientes</strong>.</li>
<li>Sistemas de alamacenamiento de informaci&oacute;n. Para crear tus propios libros de visitas u otras utilizaciones como foros y blogs.</li>
<li>Manejar y entregar textos seg&uacute;n las caracter&iacute;sticas de la condici&oacute;n del usuario.</li>
<li>Crear tu propio buscador de informaci&oacute;n.</li>
<li>Manejar archivos y directorios (crear, copiar, eliminar, etc.).</li>
<li>No solo crear p&aacute;ginas Webs en HTML: tambi&eacute;n archivos zip, PDF, feed RSS, im&aacute;genes y otros.</li>
<li>Y lo m&aacute;s importante: su utiliza en conjunto de <strong>bases de datos MySQL</strong>.</li>
</ul>
<p>Siendo estos unos ejemplos m&iacute;ninimos que puedes hacer con PHP, debes saber que no existe l&iacute;mite para crear lo que se te venga a la cabeza. No importa que seas novato, todo se puede aprender y ese es el fin de este tutorial, que aprendas y saques provecho a este gran lenguaje de programaci&oacute;n.</p>
<h3>El desarrollo Web</h3>
<p>El tema del <strong>desarrollo Web</strong> esta muy ligado al lenguaje PHP. Este t&eacute;rmino se emplea para el uso de las tecnolog&iacute;as del lado del servidor y del cliente que involucran algunos o muchos procesos a fin de realizar tareas para el usuario o simplemente mostrar informaci&oacute;n.</p>
<p>De seguro m&aacute;s adelante te topar&aacute;s con este t&eacute;rmino, como por ejemplo, aquella persona que sabe utilizar el PHP en una aplicaci&oacute;n concreta podr&iacute;a considerarsele un <strong>Desarrollador Web</strong>.</p>
<h3>&iexcl;Int&eacute;grate al desarrollo Web!</h3>
<p>El PHP te ofrece posibilidades de desarrollar tus proyectos a t&uacute;s medidas y necesidades. Te invito a seguir leyendo para que aprendas un verdadero lenguaje de programaci&oacute;n.</p>
<h3>Eh! Un momento. &iquest;C&oacute;mo s&eacute; que aqu&iacute; se ense&ntilde;a PHP correctamente?</h3>
<p>Los creadores del lenguaje ofrecen en <a href="http://www.php.net/">PHP.net</a> (tu biblia para este tutorial) toda la documentaci&oacute;n oficial del PHP. Dentro del tutorial siempre se har&aacute; referencia a este sitio.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[pdfcrowd]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 10 May 2010 17:19:05</pubDate>
</item>
<item> 
	<title>XHTML: Etiquetas HTML desaprobadas</title> 
	<link>http://www.documentoweb.com/XHTML/Etiquetas-HTML-desaprobadas</link> 
	<comments>http://www.documentoweb.com/XHTML/Etiquetas-HTML-desaprobadas#mensajes </comments> 
	<guid>http://www.documentoweb.com/XHTML/Etiquetas-HTML-desaprobadas</guid> 
	<description><![CDATA[ 
Vamos a dar un paseo por las obsoletas y desaprobadas etiquetas del lenguaje HTML haciendo referencia al porqué no se utilizan hoy en día y para que servían. Generalmente, se han desaprobado las que tienen un fin de presentación visual y no estructural.
Etiquetas de estilos visuales
Se...]]></description>
	<content:encoded><![CDATA[<p><span><img style="float: right;" src="http://farm5.static.flickr.com/4025/4591566120_f90281f9de_o.png" alt="" /></span></p>
<p>Vamos a dar un paseo por las obsoletas y desaprobadas etiquetas del lenguaje HTML haciendo referencia al porqu&eacute; no se utilizan hoy en d&iacute;a y para que serv&iacute;an. Generalmente, se han desaprobado las que tienen un fin de presentaci&oacute;n visual y no estructural.</p>
<h2>Etiquetas de estilos visuales</h2>
<p>Se desaprobaron muchas etiquetas que l&oacute;gicamente no pretend&iacute;an seguir la estructura b&aacute;sica del html: crear sentido y no estilo. Ahora f&aacute;cilmente podemos lograr estos estilos con con l&iacute;neas de c&oacute;digo CSS:</p>
<ul>
<li><code>&lt;center&gt;</code></li>
<li><code>&lt;font&gt;</code></li>
<li><code>&lt;i&gt;</code></li>
<li><code>&lt;s&gt;</code></li>
<li><code>&lt;strike&gt;</code></li>
<li><code>&lt;u&gt;</code></li>
</ul>
<p>La etiqueta&nbsp;<code>&lt;center&gt;</code>&nbsp;centra horizontalmente a un elemento, <code>&lt;font&gt;</code> un tipo, color y tama&ntilde;o de fuente, <code>&lt;i&gt;</code>&nbsp;crea un estilo cursivo de texto, <code>&lt;s&gt;</code>&nbsp;y&nbsp;<code>&lt;strike&gt;</code> el estilo tachado sobre el texto y <code>&lt;u&gt;</code>&nbsp;proporciona el estilo de subrayado a un texto.</p>
<p>Se sugiere utilizar cualquier propiedad CSS como&nbsp;<code>text-align</code>&nbsp;para las alineaciones horizontales,&nbsp;<code>font</code>&nbsp;para los estilos de fuentes,&nbsp;<code>text-decoration</code>para los subrayados y tachados y&nbsp;<code>color</code>&nbsp;para los colores de elementos en ves de utilizar estas etiquetas obsoletas del HTML.</p>
<h3>Equitueta apple</h3>
<p>Esta etiqueta se utilizaba para insertar <a href="http://es.wikipedia.org/wiki/Applet">applets</a> java en nuestros documentos. Quiz&aacute;s se podr&iacute;a comparar con la etiqueta &lt;object&gt;.</p>
<ul>
<li><code>&lt;applet&gt;</code></li>
</ul>
<p>Incluia un archivo externo&nbsp;<code>.class</code>&nbsp;y era una tremenda complicaci&oacute;n para instalar plug-ins y poder visualizar lo que pretend&iacute;a el c&oacute;digo, que generalmente eran efectos visuales. Actualmente, no cuenta con el apoyo con casi ning&uacute;n navegador.</p>
<h3>Etiqueta basefont</h3>
<p>La etiqueta &lt;basefont&gt; pretend&iacute;a establecer el tama&ntilde;o base de una fuente, pero por la aparici&oacute;n de CSS y solo el apoyo de Internet explorer, se desaprob&oacute;. Se escrib&iacute;a de la forma:</p>
<ul>
<li><code>&lt;basefont&gt;</code></li>
</ul>
<h3>Etiquetas relacionadas con listas (dir y menu)</h3>
<p>Esta etiqueta se utilizaba para crear un directorio de lista. Esta etiqueta est&aacute; obsoleta en HTML 4.01, y no es compatible con XHTML 1.0 Strict DTD. Realmente esta etiqueta es in&uacute;til, se sugiere utilizar&nbsp;<a href="../editar=Guia/CSS/Menus-con-CSS">estilos CSS en nuestras listas</a>. Se escribe de la forma:</p>
<ul>
<li><code>&lt;dir&gt;</code></li>
</ul>
<p>Y la siguiente etiqueta se utiliza para crear una lista de opciones de men&uacute;:</p>
<ul>
<li><code>&lt;menu&gt;</code></li>
</ul>
<p>Ambas, realmente inutilizables.</p>
<h3>Etiquetas muy obsoletas (insidex y xmp)</h3>
<p>Las siguientes y &uacute;ltimas dos etiquetas creo que nunca las usar&aacute;s ni para probar para que funcionan, pues est&aacute;n tan obsoletas que no hay mucha informaci&oacute;n de ellas en internet... se escriben de la siguiente forma:</p>
<ul>
<li><code>&lt;isindex&gt;</code></li>
<li><code>&lt;xmp&gt;</code></li>
</ul>
<p>Puedo rescatar lo siguiente: La etiqueta&nbsp;<code>&lt;isindex&gt;</code>&nbsp;define una entrada de l&iacute;nea simple y&nbsp;<code>&lt;xmp&gt;</code>&nbsp;define texto preformateado.</p>
<h3>Etiquetas que nunca fueron est&aacute;ndares (marquee y blink)</h3>
<p>Esta etiqueta transforma en un caos un documento HTML bien formado, NUNCA utilizes estas etiqueta:</p>
<ul>
<li><code title="marquee - marquesina">&lt;marquee&gt;</code></li>
<li><code>&lt;blink&gt;</code></li>
</ul>
<p>Estas etiqueta NO HAN SIDO DESAPROBADAS, es m&aacute;s, NUNCA formaron parte de los estandares webs, eran unas etiquetas que fueron creadas por Microsoft e implementadas en Internet Explorer. Con el paso del tiempo se fue implementando en casi todos los navegadores, pero de seguro nunca pasar&aacute;n a formar parte de las etiquetas est&aacute;ndres, porque se preocupan solo de presentar un texto atractivo (pero a la ves molesto) y no de una estructura adecuada.</p>
<p>La etiqueta&nbsp;<code>&lt;marquee&gt;</code>&nbsp;crea un texto con movimiento horizontal (por defecto) la que contaba con una serie de atributos para modificar velocidad y direcci&oacute;n, por el otro lado, la etiqueta&nbsp;<code>&lt;blink&gt;</code>&nbsp;creaba un texto parpadeante.</p>
<div><strong>Recordatorio: NUNCA utilizes las etiquetas expuestas en este art&iacute;culo.</strong></div>]]></content:encoded> 	<category><![CDATA[xhtml]]></category>	<category><![CDATA[pdfcrowd]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 09 May 2010 04:40:49</pubDate>
</item>
<item> 
	<title>Ayuda: editores wysiwyg?</title> 
	<link>http://www.documentoweb.com/pregunta/Ayuda/editores-wysiwyg</link> 
	<comments>http://www.documentoweb.com/pregunta/Ayuda/editores-wysiwyg#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Ayuda/editores-wysiwyg</guid> 
	<description><![CDATA[ Hola como empieso a usar esos editores O_O
Actualmente todo lo ago con editores bbcode, y gual en javascript pero uso codigo php para campbbiar el contenido de bb code a etiquetas html
El problema es que no se como funciona el editor wysiwyg es decir como guarda el documento? y como lo instalo en...]]></description>
	<content:encoded><![CDATA[<p>Hola como empieso a usar esos editores O_O</p>
<p>Actualmente todo lo ago con editores bbcode, y gual en javascript pero uso codigo php para campbbiar el contenido de bb code a etiquetas html</p>
<p>El problema es que no se como funciona el editor wysiwyg es decir como guarda el documento? y como lo instalo en mi web</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 25 Apr 2010 12:26:20</pubDate>
</item>
<item> 
	<title>Imprimir en JavaScript?</title> 
	<link>http://www.documentoweb.com/pregunta/Imprimir-en-JavaScript</link> 
	<comments>http://www.documentoweb.com/pregunta/Imprimir-en-JavaScript#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Imprimir-en-JavaScript</guid> 
	<description><![CDATA[ Hola quiero inprimir una web pero solo quiero imrpimir lo que este en un div
ejemplo

imprimir documentoesto se imprimeesto no se imprime
Pero me imprime todo ¿como le ago para que NO me imprima  el renglon que dice "esto no se imprime"?                                                        ...]]></description>
	<content:encoded><![CDATA[<p>Hola quiero inprimir una web pero solo quiero imrpimir lo que este en un div</p>
<p>ejemplo</p>
<p>&lt;script type="text/javascript"&gt;<br />&lt;!--<br />function imprimir_para_mi(){<br />var imprimir_documento= document.getElementById("yo").innerHTML;<br />//document.write(imprimir_documento)<br />window.print(imprimir_documento);</p>
<p>}<br />//--&gt;<br />&lt;/script&gt;</p>
<p>&lt;a href="javascript: imprimir_para_mi()"&gt;imprimir documento&lt;/a&gt;<br />&lt;div id="yo"&gt;esto se imprime&lt;/div&gt;<br />&lt;p&gt;esto no se imprime&lt;/p&gt;</p>
<p>Pero me imprime todo &iquest;como le ago para que&nbsp;NO me imprima&nbsp; el renglon que dice "esto no se imprime"?</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 18 Apr 2010 02:02:32</pubDate>
</item>
<item> 
	<title>Javascript para mi?</title> 
	<link>http://www.documentoweb.com/javascript-para-mi</link> 
	<comments>http://www.documentoweb.com/javascript-para-mi#mensajes </comments> 
	<guid>http://www.documentoweb.com/javascript-para-mi</guid> 
	<description><![CDATA[ Hola necesitamos que null publique tutoriales de javascript, es que se javascript pero solo lo básico ya que no se ajax ni usar la librerya jquery solo se hacer pequeñas alertas y funciones muy básicas, así que si tiene tiempo estaría bien que publicara algunos tutoriales.
Gracias             ...]]></description>
	<content:encoded><![CDATA[<p><span>Hola necesitamos que null publique tutoriales de javascript, es que se javascript pero solo lo b&aacute;sico ya que no se ajax ni usar la librerya jquery solo se hacer peque&ntilde;as alertas y funciones muy b&aacute;sicas, as&iacute; que si tiene tiempo estar&iacute;a bien que publicara algunos tutoriales.</span></p>
<p><span>Gracias</span></p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 16 Apr 2010 02:19:10</pubDate>
</item>
<item> 
	<title>XHTML: Listas de la forma correcta</title> 
	<link>http://www.documentoweb.com/XHTML/Listas-de-la-forma-correcta</link> 
	<comments>http://www.documentoweb.com/XHTML/Listas-de-la-forma-correcta#mensajes </comments> 
	<guid>http://www.documentoweb.com/XHTML/Listas-de-la-forma-correcta</guid> 
	<description><![CDATA[ Este es un sencillo código que deberíamos tener dominado para respetar la estructura lógica de la heredación y anidación de elementos en el HTML. Siendo que el XHTML es una variación del HTML como una variación más estricta del mismo, tendremos el beneficio de que nuestras listas se vean...]]></description>
	<content:encoded><![CDATA[<p><span style="color: #000000;"><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif; line-height: 20px;"><span style="font-family: arial, sans-serif; line-height: normal; font-size: 14px; color: #444444;"><span style="color: #000000; font-size: 12px; font-family: Arial, Helvetica, sans-serif; line-height: 20px;"><img style="float: right;" src="http://farm3.static.flickr.com/2788/4513108921_8573b25f91_o.png" alt="" /></span>Este es un sencillo c&oacute;digo que deber&iacute;amos tener dominado para respetar la estructura l&oacute;gica de la heredaci&oacute;n y anidaci&oacute;n de elementos en el HTML. Siendo que el XHTML es una variaci&oacute;n del HTML como una variaci&oacute;n m&aacute;s estricta del mismo, tendremos el beneficio de que nuestras listas se vean perfectas tanto estructural como visualmente (con CSS) en cualquier vanegador y/o dispositivo.</span></span></span></p>
<p>Ya sea &lt;ol&gt; o &lt;ul&gt; aveces la dificultad est&aacute; entre los items de lista &lt;li&gt;, porque no todos saben con certeza d&oacute;nde ubicar la sublista.</p>
<p>Propuse ejemplos con enlaces ya que es lo m&aacute;s com&uacute;n que se puede encontrar en las listas y en lo que m&aacute;s se complica.</p>
<h2>&iquest;C&oacute;mo crear listas de la forma correcta?</h2>
<p>Esta ser&iacute;a la estructura m&aacute;s b&aacute;sica,&nbsp;que corresponde a una simple lista:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></pre>
<p>Luego, si queremos agregar una sublista al segundo item debemos abrir &lt;/a&gt; y &lt;/li&gt; del mismo:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;<br /><br />&nbsp;&nbsp; &nbsp;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></pre>
<p>Para poner la sublista que queramos en el mismo orden que se muestra al principio.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></pre>
<p>As&iacute; sucesivamente, podemos jugar con las listas y hacer muchas dentro de ella.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ol&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&lt;/ol&gt;</span></span></span></span></span></pre>
<p>La idea no ser&iacute;a hacer algo tan grotesco como el ejemplo.</p>
<h2>&iquest;C&oacute;mo NO crear listas de la forma correcta?</h2>
<p>Este constituir&iacute;a un mal ejemplo, donde la sublista se agrega despu&eacute;s del item y no dentro de &eacute;l:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></pre>
<p>Ya est&aacute;, no hay otra forma de equivocarse, solo hay que respetar las respectivas anidaciones en el orden &lt;ul&gt; &lt;li&gt; &lt;ul&gt; &lt;li&gt;.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 929px; width: 1px; height: 1px;">
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ul&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;ul&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ul&gt;<br />&nbsp;&nbsp; &nbsp;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&nbsp;&nbsp;&nbsp; &lt;li&gt;&lt;a href="..." title="..."&gt;...&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></pre>
</div>]]></content:encoded> 	<category><![CDATA[xhtml]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 11 Apr 2010 17:30:20</pubDate>
</item>
<item> 
	<title>PHP: MySQL: Obtener datos de la base de datos</title> 
	<link>http://www.documentoweb.com/PHP/MySQL/Obtener-datos-de-la-base-de-datos</link> 
	<comments>http://www.documentoweb.com/PHP/MySQL/Obtener-datos-de-la-base-de-datos#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/MySQL/Obtener-datos-de-la-base-de-datos</guid> 
	<description><![CDATA[ Si bien ya vimos como conectar con la tabla de la base de datos, ahora necesitamos sacar algunos datos que necesitemos para trabajar con ellos en el HTML o en lo que se plazca.
Para obtener todos los datos, la consulta debe ser algo parecido a lo siguiente: "Seleccionar todas las filas de la tabla...]]></description>
	<content:encoded><![CDATA[<p>Si bien ya vimos <a href="../../PHP/MySQL/Conexion-simplificada-con-la-base-de-datos">como conectar con la tabla de la base de datos</a>, ahora necesitamos sacar algunos datos que necesitemos para trabajar con ellos en el HTML o en lo que se plazca.</p>
<p>Para obtener todos los datos, la consulta debe ser algo parecido a lo siguiente: "Seleccionar todas las filas de la tabla 'nombre_tabla'".</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">SELECT * FROM nombre_tabla</span></span></span></span></span></pre>
<p>Para obtener algunos de los datos, la consulta puede ser as&iacute;: "Seleccionar las filas 'id', 'producto' y 'precio' de la tabla 'nombre_tabla'".</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">SELECT id,producto,precio FROM nombre_tabla</span></span></span></span></span></pre>
<p>Para obtener los datos que cumplan una condici&oacute;n dada: "Seleccionar todas las filas de la tabla 'nombre_tabla' donde la celda de la columna 'dato' sea igual a 'algo'".</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">SELECT * FROM nombre_tabla WHERE dato='algo'</span></span></span></span></span></pre>
<p>Para obtener los datos de forma ordenada: "Seleccionar todas las filas de la tabla 'nombre_tabla' y ordenarlas por 'fecha' de forma descendiente".</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">SELECT * FROM nombre_tabla ORDER BY fecha DESC</span></span></span></span></span></pre>
<p>Para obtener y limitar los datos: "Seleccionar 5 filas de la tabla 'nombre_tabla'".</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">SELECT * FROM nombre_tabla LIMIT 5</span></span></span></span></span></pre>
<p>Para obtener datos limitados que cumplan una condici&oacute;n dada m&aacute;s un ordenamiento: "Seleccionar 15&nbsp;filas de la tabla 'nombre_tabla' donde la celda de la columna 'dato' sea mayor a 'algo' y ordenarlas por 'fecha' de forma ascendiente".</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span><span><span><span><span>SELECT * FROM nombre_tabla WHERE dato&gt;'algo' ORDER BY fecha ASC LIMIT 15</span></span></span></span></span></span></span></span></span></span></pre>
<p>Y as&iacute; l&oacute;gicamente podemos seguir creando las consultas SQL.</p>
<p>Ahora, estas consultas deben ir dentro de un peque&ntilde;o c&oacute;digo PHP que permite enviarlas al servidor y almacenar la informaci&oacute;n en una variable. La funci&oacute;n se llama <a href="http://cl.php.net/manual/en/function.mysql-query.php">mysql_query()</a>.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$consulta = mysql_query("SELECT FROM * tabla_productos WHERE precio&lt;15000") or die ("Error en la consulta");</span></span></span></span></span></pre>
<p>As&iacute; en este ejemplo seleccionamos de la tabla_productos todas las filas donde los productos tengan un precio menor a $15000. Si la consulta est&aacute; erronea muestra el mensaje "Error en la consulta" y detiene el procesamiento del c&oacute;digo siguiente y lo entrega hasta donde alcanza a ejecutarse.</p>
<p>Luego, debemos transformar los datos de la variable a un array para trabajarla mejor en conjunto de un blucle while:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">while($fila=mysql_fetch_array($consulta)){<br />$id = $fila['id'];<br />$nombre = $fila['nombre'];<br />$precio = $fila['precio'];<br />echo "&lt;p&gt;E producto $nombre ($id) vale $ $precio&lt;/p&gt;";<br />// se obtienen multiples p&aacute;rrafos variando con los datos de los distintos productos <br />}</span></span></span></span></span></pre>
<p><span>Y as&iacute; logramos obtener e imprimir los datos de una tabla de una base de datos.<br /></span></p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[mysql]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 10 Apr 2010 02:19:08</pubDate>
</item>
<item> 
	<title>¿Botón en PHP?</title> 
	<link>http://www.documentoweb.com/pregunta/Boton-en-PHP</link> 
	<comments>http://www.documentoweb.com/pregunta/Boton-en-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Boton-en-PHP</guid> 
	<description><![CDATA[ Como ago funcionar este formulario pero en lugar de usar submit usando button O_O
                                                                                                                                                                                                                        ...]]></description>
	<content:encoded><![CDATA[<p>Como ago funcionar este formulario pero en lugar de usar submit usando button O_O</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;form method="post" action=""&gt;<br />&lt;input type="text" name="yo" /&gt;<br />&lt;!--<br />&lt;input type="submit" value="hola" /&gt;<br />--&gt;<br />&lt;input type="button" value="hola" /&gt;<br />&lt;/form&gt;<br />&nbsp;&lt;?php<br />&nbsp;echo $_POST['yo'];<br />&nbsp;?&gt;</span></span></span></span></span></pre>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[mysql]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 09 Apr 2010 23:42:42</pubDate>
</item>
<item> 
	<title>¿Variables en javascript?</title> 
	<link>http://www.documentoweb.com/pregunta/Variables-en-javascript</link> 
	<comments>http://www.documentoweb.com/pregunta/Variables-en-javascript#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Variables-en-javascript</guid> 
	<description><![CDATA[ Tengo una duda que digerencia hay si pongo la palabra var o si no la pongo ejemplo
var nombre='Juan';edad=10;document.write(nombre);document.write('');document.write(edad); 
Vemos que es exactamente lo mismo.                                                                                          ...]]></description>
	<content:encoded><![CDATA[<p>Tengo una duda que digerencia hay si pongo la palabra var o si no la pongo ejemplo</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;script type="text/javascript"&gt;<br />var nombre='Juan';<br />edad=10;<br />document.write(nombre);<br />document.write('&lt;br&gt;');<br />document.write(edad); <br />&lt;/script&gt;</span></span></span></span></span></pre>
<p>Vemos que es exactamente lo mismo.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[mysql]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 09 Apr 2010 23:41:38</pubDate>
</item>
<item> 
	<title>PHP: Función PHP para calcular &quot;hace cuanto pasó aquello&quot;</title> 
	<link>http://www.documentoweb.com/PHP/Funcion-PHP-para-calcular-hace-cuanto-paso-aquello</link> 
	<comments>http://www.documentoweb.com/PHP/Funcion-PHP-para-calcular-hace-cuanto-paso-aquello#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/Funcion-PHP-para-calcular-hace-cuanto-paso-aquello</guid> 
	<description><![CDATA[ El siguiente código lo cree y utilizo en documentoweb para transformar un número de segundos a "hace cuanto pasó aquello".
Me explico. Por ejemplo, un comentario que fué publicado a las 4:30 y ahora son las 4:45. Pasaron 15 minutos desde que se publicó, y eso es lo que calcula la función, el...]]></description>
	<content:encoded><![CDATA[<p>El siguiente c&oacute;digo lo cree y utilizo en documentoweb para transformar un n&uacute;mero de segundos a "hace cuanto pas&oacute; aquello".</p>
<p>Me explico. Por ejemplo, un comentario que fu&eacute; publicado a las 4:30 y ahora son las 4:45. Pasaron 15 minutos desde que se public&oacute;, y eso es lo que calcula la funci&oacute;n, el tiempo en el que fue guardado algo comparado con el tiempo del momento en que se lee.</p>
<p>La funci&oacute;n que yo llamo "hace_tiempo" est&aacute; basada en la funci&oacute;n <a title="Funci&oacute;n time() del PHP" href="http://www.php.net/manual/en/function.time.php">time()</a> del PHP. Lo que hace time es calcular la cantidad de segundos que hay desde el primero de enero de 1970 hasta los segundos del momento en que se ejecuta. Si guardamos en nuestra base de datos esta cifra generada adjunta al comentario (siguiendo el ejemplo) podremos jugar con esta funci&oacute;n.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />function hace_tiempo($valor){<br /><br />// FORMATOS:<br />// segundos&nbsp;&nbsp; &nbsp;desde 1970 (funci&oacute;n time())&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;hace_tiempo('12313214');<br />// defecto (variable $formato_defecto)&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;hace_tiempo('12:01:02 04-12-1999');<br />// tu propio formato&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;hace_tiempo('04-12-1999 12:01:02 [n.j.Y H:i:s]');<br /><br />$formato_defecto="H:i:s j-n-Y";<br /><br />// j,d = d&iacute;a<br />// n,m = mes<br />// Y = a&ntilde;o<br />// G,H = hora<br />// i = minutos<br />// s = segundos<br /><br />if(stristr($valor,'-') || stristr($valor,':') || stristr($valor,'.') || stristr($valor,',')){<br /><br />&nbsp;&nbsp; &nbsp;if(stristr($valor,'[')){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$explotar_valor=explode('[',$valor);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$valor=trim($explotar_valor[0]);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$formato=str_replace(']','',$explotar_valor[1]);<br />&nbsp;&nbsp; &nbsp;}else{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$formato=$formato_defecto;<br />&nbsp;&nbsp; &nbsp;}<br /><br />&nbsp;&nbsp; &nbsp;$valor = str_replace("-"," ",$valor);<br />&nbsp;&nbsp; &nbsp;$valor = str_replace(":"," ",$valor);<br />&nbsp;&nbsp; &nbsp;$valor = str_replace("."," ",$valor);<br />&nbsp;&nbsp; &nbsp;$valor = str_replace(","," ",$valor);<br /><br />&nbsp;&nbsp; &nbsp;$numero = explode(" ",$valor);<br /><br />&nbsp;&nbsp; &nbsp;$formato = str_replace("-"," ",$formato);<br />&nbsp;&nbsp; &nbsp;$formato = str_replace(":"," ",$formato);<br />&nbsp;&nbsp; &nbsp;$formato = str_replace("."," ",$formato);<br />&nbsp;&nbsp; &nbsp;$formato = str_replace(","," ",$formato);<br /><br />&nbsp;&nbsp; &nbsp;$formato = str_replace("d","j",$formato);<br />&nbsp;&nbsp; &nbsp;$formato = str_replace("m","n",$formato);<br />&nbsp;&nbsp; &nbsp;$formato = str_replace("G","H",$formato);<br /><br />&nbsp;&nbsp; &nbsp;$letra = explode(" ",$formato);<br /><br />&nbsp;&nbsp; &nbsp;$relacion[$letra[0]]=$numero[0];<br />&nbsp;&nbsp; &nbsp;$relacion[$letra[1]]=$numero[1];<br />&nbsp;&nbsp; &nbsp;$relacion[$letra[2]]=$numero[2];<br />&nbsp;&nbsp; &nbsp;$relacion[$letra[3]]=$numero[3];<br />&nbsp;&nbsp; &nbsp;$relacion[$letra[4]]=$numero[4];<br />&nbsp;&nbsp; &nbsp;$relacion[$letra[5]]=$numero[5];<br /><br />&nbsp;&nbsp; &nbsp;$valor = mktime($relacion['H'],$relacion['i'],$relacion['s'],$relacion['n'],$relacion['j'],$relacion['Y']);<br /><br />}<br /><br />$ht = time()-$valor;<br />if($ht&gt;=2116800){<br />$dia = date('d',$valor);<br />$mes = date('n',$valor);<br />$a&ntilde;o = date('Y',$valor);<br />$hora = date('H',$valor);<br />$minuto = date('i',$valor);<br />$mesarray = array('','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');<br />$fecha = "el $dia de $mesarray[$mes] del $a&ntilde;o";<br />}<br />if($ht&lt;30242054.045){$hc=round($ht/2629743.83);if($hc&gt;1){$s="es";}$fecha="hace $hc mes".$s;}<br />if($ht&lt;2116800){$hc=round($ht/604800);if($hc&gt;1){$s="s";}$fecha="hace $hc semana".$s;}<br />if($ht&lt;561600){$hc=round($ht/86400);if($hc==1){$fecha="ayer";}if($hc==2){$fecha="antes de ayer";}if($hc&gt;2)$fecha="hace $hc d&iacute;as";}<br />if($ht&lt;84600){$hc=round($ht/3600);if($hc&gt;1){$s="s";}$fecha="hace $hc hora".$s;if($ht&gt;4200 &amp;&amp; $ht&lt;5400){$fecha="hace m&aacute;s de una hora";}}<br />if($ht&lt;3570){$hc=round($ht/60);if($hc&gt;1){$s="s";}$fecha="hace $hc minuto".$s;}<br />if($ht&lt;60){$fecha="hace $ht segundos";}<br />if($ht&lt;=3){$fecha="ahora";}<br />return $fecha;<br /><br />}<br /><br />// Ejemplos<br /><br />echo hace_tiempo("1271201645")."&lt;br /&gt;";<br />echo hace_tiempo("20:34:05 13-04-2010")."&lt;br /&gt;";<br />echo hace_tiempo("2010-04-13 20:34:05 [Y-n-j H:i:s]")."&lt;br /&gt;";<br /><br />?&gt;</span></span></span></span></span></pre>
<h2>Forma de utilizar la funci&oacute;n</h2>
<p>Primero que nada guardar el c&oacute;digo integr&aacute;ndolo al principio del documento. Al obtener el n&uacute;mero (el time() que se guard&oacute; con anterioridad) de la base de datos e ingresandolo en una variable ($numero) solo debemos llamar a la funci&oacute;n para que trabaje y de el resultado de la siguiente forma:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php echo hace_tiempo($numero); ?&gt;</span></span></span></span></span></pre>
<p>As&iacute; podr&iacute;a decir: hace 20 segundos, hace 1 minuto, hace 2 horas, hace 1 semana, hace m&aacute;s de 1 hora, etc. dependiendo del n&uacute;mero. Est&aacute; programado hasta 3 semanas, si el tiempo exede se muestra como "el dia X del mes X del a&ntilde;o X". El tiempo se puede extender si se sigue la misma l&oacute;gica del c&oacute;digo PHP con un estudio de cuantos segundos hay en un mes, dos meses, un a&ntilde;o, etc.</p>
<h2>Conveniencia</h2>
<p>Es muy conveniente usar esta o una funci&oacute;n similar porque elimina la complejidad de los distintos horarios que hay en el mundo. No en todo el mundo son las 5 de la tarde, pero 5 minutos o 5 horas transcurridos son igual para todos.</p>
<p>Si decimos en la web "publicado el 08 de abril del 2010 a las 5:05pm" siendo que hoy es 08 de abril del 2010 y son las 9:00pm, es mucho pero mucho mejor para el lector decirle que transcurrieron 4 horas a darle tanta molestia de leer esa catastr&oacute;fica frase para compararla con la fecha actual y calcular hace cuanto tiempo pas&oacute; aquello.</p>
<h3>Actualizaci&oacute;n del c&oacute;digo</h3>
<p>Ahora en el c&oacute;digo puedes ingresarle cualquier formato de fechas. En el mismo est&aacute;n las instrucciones.</p>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[mysql]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 08 Apr 2010 20:47:18</pubDate>
</item>
<item> 
	<title>PHP: MySQL: Conexión simplificada con la base de datos</title> 
	<link>http://www.documentoweb.com/PHP/MySQL/Conexion-simplificada-con-la-base-de-datos</link> 
	<comments>http://www.documentoweb.com/PHP/MySQL/Conexion-simplificada-con-la-base-de-datos#mensajes </comments> 
	<guid>http://www.documentoweb.com/PHP/MySQL/Conexion-simplificada-con-la-base-de-datos</guid> 
	<description><![CDATA[ Conectar con la base de datos mediante PHP es el principal paso para utilizar nuestras tablas. El siguiente código de ejemplo muestra cómo podría verse una conexión MySQL en el código PHP:

La parte de "or die()" se muestra solo si hay algún error al conectarse con la base de datos, que...]]></description>
	<content:encoded><![CDATA[<p>Conectar con la base de datos mediante PHP es el principal paso para utilizar nuestras tablas. El siguiente c&oacute;digo de ejemplo muestra c&oacute;mo podr&iacute;a verse una conexi&oacute;n MySQL en el c&oacute;digo PHP:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;?php<br /><br />$tabla = "tabla_productos";<br />$servidor = "sql.servidor.com";<br />$usuario = "nombredeusuario";<br />$clave = "clavedeusuario";<br /><br />mysql_select_db($tabla,mysql_connect($servidor,$usuario,$clave)) or die("Error de conexi&oacute;n con la base de datos.");<br /><br />?&gt;</span></span></span></span></span></pre>
<p>La parte de "or die()" se muestra solo si hay alg&uacute;n error al conectarse con la base de datos, que s&oacute;lo puede deberse a datos incorrectos o mala sintaxis.</p>
<p>La idea del c&oacute;digo es usarlo al principio de todo el PHP y usarlo s&oacute;lo con una tabla MySQL.Tambi&eacute;n se puede aplicar un c&oacute;digo m&aacute;s directo como siempre lo hago (ventaja del PHP):</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">mysql_select_db("tabla_productos",mysql_connect("sql.servidor.com","nombredeusuario","clavedeusuario")) or die("Error de conexi&oacute;n con la base de datos.");</span></span></span></span></span></pre>
<p>Seg&uacute;n mi experiencia no hay necesidad de cerrar la conexi&oacute;n como en otros c&oacute;digos que he visto en otros sitios webs.</p>
<h3>Problemas con la codificaci&oacute;n de caracteres</h3>
<p>Si hay problemas con la&nbsp;codificaci&oacute;n&nbsp;de&nbsp;caracteres, usa la siguiente l&iacute;nea con tu codificaci&oacute;n despu&eacute;s de la conexi&oacute;n:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">mysql_query("SET NAMES 'utf8'");</span></span></span></span></span></pre>]]></content:encoded> 	<category><![CDATA[php]]></category>	<category><![CDATA[mysql]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 08 Apr 2010 20:07:36</pubDate>
</item>
<item> 
	<title>Guía: CSS: Sprites CSS</title> 
	<link>http://www.documentoweb.com/Guia/CSS/Sprites-CSS</link> 
	<comments>http://www.documentoweb.com/Guia/CSS/Sprites-CSS#mensajes </comments> 
	<guid>http://www.documentoweb.com/Guia/CSS/Sprites-CSS</guid> 
	<description><![CDATA[ Una de las formas de mejorar el rendimiento de tu sitio web es el uso de sprites, una técnica CSS que aprovecha una sola imagen para mostrar múltiples imágenes a partir de ella dentro del sitio.
Mejoramos el rendimiento del sitio porque se hace sólo una petición HTTP en vez de que se pidan...]]></description>
	<content:encoded><![CDATA[<p>Una de las formas de mejorar el rendimiento de tu sitio web es el uso de <strong>sprites</strong>, una t&eacute;cnica CSS que aprovecha una sola imagen para mostrar m&uacute;ltiples&nbsp;im&aacute;genes a partir de ella&nbsp;dentro del sitio.</p>
<p>Mejoramos&nbsp;el rendimiento del sitio porque se hace s&oacute;lo una petici&oacute;n HTTP en vez de que se pidan una por cada imagen. Si tenemos por ejemplo 50&nbsp;im&aacute;genes&nbsp;peque&ntilde;as dentro del sitio, cuando un visitante abre la p&aacute;gina se consultan en el servidor toda esta cantidad de im&aacute;genes. &iquest;No ser&iacute;a mejor que se pida solo una vez?. Pues es mejor, porque la imagen es cargada solo una vez por el navegador y el CSS (que act&uacute;a en el cliente y no en el servidor) se encarga de mapear la imagen.&nbsp;</p>
<p>Un ejemplo de un mapa de imagen es el siguiente:</p>
<p><img src="http://farm5.static.flickr.com/4018/4480456058_f77db7dc0f_o.png" alt="" /></p>
<p>Iconos gratis obtenidos desde&nbsp;<a href="http://pictoico.com/download">pictoico</a>.</p>
<p>Quienes usan m&aacute;s los sprites CSS son aquellas webs que tienen demasiadas consultas al minuto, y que buscan reducir en lo posible el tr&aacute;fico generado paraque sus servidores no colapsen. Google usa sprite, y lo usa muy bien:</p>
<p><img src="http://www.google.cl/images/nav_logo8.png" alt="http://www.google.cl/images/nav_logo8.png" /></p>
<h2>Creando un Sprite CSS</h2>
<p>Lo que haremos con el CSS ser&aacute; "recortar" esta imagen, como se ilustra en las siguientes figuras.</p>
<p><img style="float: left;" src="http://farm3.static.flickr.com/2791/4480456070_27d3d3d26b_o.png" alt="" /></p>
<p>&nbsp;<img src="http://farm3.static.flickr.com/2765/4480456096_2a32a84752_o.png" alt="" /></p>
<p>Debemos saber la coordenada de la esquina superior izquierda del icono a utilizar m&aacute;s su anchura y altura correspondiente para utilizarla luego en el CSS. Se puede obtener con programas gr&aacute;ficos como Photoshop (F8 para abrir la informaci&oacute;n) o el mism&iacute;smo Paint (en la barra de estado).</p>
<p><img src="http://farm3.static.flickr.com/2212/4480456114_7295990c6b_o.png" alt="" /></p>
<p>Las propiedades del CSS que utilizaremos en conjunto de un documento XHTML sem&aacute;ntico y accesible para el sprite son:</p>
<ul>
<li>background</li>
<li>display</li>
<li>width</li>
<li>height</li>
<li>overflow</li>
<li>line-height</li>
</ul>
<p>Comenzemos con el Sprite CSS. Vamos a hacer un men&uacute; como el siguiente.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">&lt;ul id="menu"&gt;<br />&lt;li&gt;&lt;a href="/#enlace1" title="Portada, t&iacute;tulo del enlace 1"&gt;Portada&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="/#enlace2" title="Carrito de compra, t&iacute;tulo del enlace 2"&gt;Carrito&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="/#enlace3" title="Buscar, t&iacute;tulo del enlace 3"&gt;Buscar&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="/#enlace4" title="Guardar, t&iacute;tulo del enlace 4"&gt;Guardar&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="/#enlace5" title="Eliminar, t&iacute;tulo del enlace 5"&gt;Eliminar&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></pre>
<p>En la hoja de estilo, cada enlace se convertir&aacute; en imagen teniendo como fondo el mapa de imagen, junto con su anchura y altura correspondiente. Se puede apreciar la propiedad float para hacer que cada enlace flote frente al anterior y as&iacute; quede un menu horizontal. Tambi&eacute;n las propiedades overflow y line-height para hacer desaparecer el texto. El menu tendr&aacute; la misma altura y color de fondo de los enlaces para hacerlo m&aacute;s interesante y largo.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">ul#menu {<br />&nbsp;&nbsp; &nbsp;height:63px;<br />&nbsp;&nbsp; &nbsp;background-color:#212121;<br />}<br /><br />ul#menu li {<br />&nbsp;&nbsp; &nbsp;display: inline;<br />}<br /><br />ul#menu li a {<br />&nbsp;&nbsp; &nbsp;background: url('sprite.png') no-repeat;<br />&nbsp;&nbsp; &nbsp;display: block;<br />&nbsp;&nbsp; &nbsp;width: 63px;<br />&nbsp;&nbsp; &nbsp;height: 63px;<br />&nbsp;&nbsp; &nbsp;float: left;<br />&nbsp;&nbsp; &nbsp;overflow: hidden;<br />&nbsp;&nbsp; &nbsp;line-height: 10em;<br />}</span></span></span></span></span></pre>
<p>Y a continuaci&oacute;n, viene lo que se llama sprite, el mapa de las coordenadas para cada uno de los enlaces segun su clase asignada. Algunos enlaces cambiar&aacute;n seg&uacute;n el estado :hover (cuando el mouse esta por encima del enlace) o :active (cuando se presiona). Las coordenadas deben ir en negativo porque la imagen de fondo debe retroceder para posicionarse donde se quiere (para entenderlo y acostumbrarse es mejor experimentarlo).</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">ul#menu li a.portada {<br />&nbsp;&nbsp; &nbsp;background-position: 0 0;<br />}<br /><br /><br />ul#menu li a.carrito {<br />&nbsp;&nbsp; &nbsp;background-position: 0 -64px;<br />}<br />ul#menu li a.carrito:hover {<br />&nbsp;&nbsp; &nbsp;background-position: -64px -64px;<br />}<br /><br /><br />ul#menu li a.buscar {<br />&nbsp;&nbsp; &nbsp;background-position: -192px 0;<br />}<br /><br /><br />ul#menu li a.guardar {<br />&nbsp;&nbsp; &nbsp;background-position: -128px -128px;<br />}<br />ul#menu li a.guardar:hover {<br />&nbsp;&nbsp; &nbsp;background-position: -64px -128px;<br />}<br />ul#menu li a.guardar:active {<br />&nbsp;&nbsp; &nbsp;background-position: 0 -128px;<br />}<br /><br /><br />ul#menu li a.eliminar {<br />&nbsp;&nbsp; &nbsp;background-position: -256px 0;<br />}<br />ul#menu li a.eliminar:hover {<br />&nbsp;&nbsp; &nbsp;background-position: -256px -64px;<br />}</span></span></span></span></span></pre>
<p>Podemos hacer lo que se nos ocurra. Podemos por ejemplo tener todas las imagenes del sitio en una sola y se gastar&aacute;n menos recursos. Adem&aacute;s, cargar&aacute; mucho m&aacute;s r&aacute;pido.</p>
<p>&iquest;Olvid&eacute; decir que funciona para todos los navegadores?</p>
<p><a href="../../archivos/css-sprites.zip">Descarga el ejemplo</a>.</p>]]></content:encoded> 	<category><![CDATA[guia]]></category>	<category><![CDATA[css]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 07 Apr 2010 23:37:10</pubDate>
</item>
<item> 
	<title>Guía: CSS: Menús con CSS</title> 
	<link>http://www.documentoweb.com/Guia/CSS/Menus-con-CSS</link> 
	<comments>http://www.documentoweb.com/Guia/CSS/Menus-con-CSS#mensajes </comments> 
	<guid>http://www.documentoweb.com/Guia/CSS/Menus-con-CSS</guid> 
	<description><![CDATA[ Una de las cosas básicas para la navegación de un sitio web son los menús. Así que hay que saber cómo crearlos si o si, y muy bien.
Podemos crear menus horizontales ubicados bajo el banner del sitio tanto como arriba para la navegación dentro de las principales secciones. Los menus verticales...]]></description>
	<content:encoded><![CDATA[<p>Una de las cosas b&aacute;sicas para la navegaci&oacute;n de un sitio web son los men&uacute;s. As&iacute; que hay que saber c&oacute;mo crearlos si o si, y muy bien.</p>
<p>Podemos crear menus horizontales ubicados bajo el banner del sitio tanto como arriba para la navegaci&oacute;n dentro de las principales secciones. Los menus verticales ubicados en algun costado del contenido podemos utilizarlos para los enlaces relacionados a la p&aacute;gina que se est&aacute; visitando, o utilizarlo para lo que se estime m&aacute;s conveniente.</p>
<p><img src="http://farm3.static.flickr.com/2695/4502051332_ec72911cce_o.png" alt="" /></p>
<p>Estos son unos ejemplos de como se ver&iacute;a el resultado de una buena maquetaci&oacute;n de menu con XHTML+CSS v&aacute;lida para todos los navegadores.</p>
<h2>Creando el men&uacute; con CSS</h2>
<p>Las propiedades para maquetar el menu tanto horizontal como vertical son:</p>
<ul>
<li>display</li>
<li>float</li>
<li>width</li>
<li>height (opcional)</li>
</ul>
<p>M&aacute;s todas las propiedades que se desee para darle un estilo definido.</p>
<p>La gracia es <strong>aplicar todas estas propiedades los enlaces</strong> para aprovechar sus distintos estados (:hover, :active, :visited o :focus) y para que estos puedan ser visualizados correctamente por cualquier navegador. Recuerda que Internet explorer 6 no admite dichos estados en otros elementos que no sean los hiperv&iacute;nculos.</p>
<p>Utilizaremos el siguiente XHTML para los dos men&uacute;s de ejemplos:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span><span><span><span><span>&lt;ul id="menu"&gt;<br />&lt;li&gt;&lt;a href="#enlace1" title="Inicio, t&iacute;tulo del enlace 1"&gt;Inicio&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="#enlace2" title="Servicios, t&iacute;tulo del enlace 2"&gt;Servicios&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="#enlace3" title="Clientes, t&iacute;tulo del enlace 3"&gt;Clientes&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="#enlace4" title="Galer&iacute;a de im&aacute;genes, t&iacute;tulo del enlace 4"&gt;Galer&iacute;a&lt;/a&gt;&lt;/li&gt;<br />&lt;li&gt;&lt;a href="#enlace5" title="Contacto, t&iacute;tulo del enlace 5"&gt;Contacto&lt;/a&gt;&lt;/li&gt;<br />&lt;/ul&gt;</span></span></span></span></span></span></span></span></span></span></pre>
<h3>El menu CSS horizontal</h3>
<p>La propiedad <strong>display</strong> en conjunto de su valor <strong>block</strong> nos permite transformar un elemento a en bloque, hablamos de los propios enlaces o del selector "a". <strong>Float</strong> m&aacute;s un valor <strong>right </strong>o <strong>left </strong>nos permite hacer que el enlace convertido a en bloque quede junto a otro formando una cadena horizontal. <strong>Width </strong>y <strong>height</strong> ayudan para formatearlo con la medida que queramos.</p>
<p>El siguiente c&oacute;digo CSS identifica las principales propiedades que mencionamos para maquetar el menu horizontal:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">ul#menu {<br />    height: 25px;<br />}<br /><br />ul#menu li {<br />    display: inline;<br />}<br /><br />ul#menu li a {<br />    display: block; <br />    width: 120px;<br />    height: 25px;<br />    float: left;<br />}</span></span></span></span></span></pre>
<p>Hecho esto tendremos inmediatamente lista la maquitaci&oacute;n y solo deber&iacute;amos empezar con la creatividad aplicando las propiedades que queramos para estilizar el menu. Es relativamente simple.</p>
<h3>El menu CSS vertical</h3>
<p>En este ejemplo se cumple el mismo rol pero algo cambiado. La propiedad <strong>width </strong>debe estar definida en el menu y no en los enlaces (ellos se adaptan a esta medida). Adem&aacute;s, el menu es el que flota a la izquierda del contenido y los enlaces solo se deben convertir a elementos en bloque.</p>
<p>Agregamos un nuevo div en el ejemplo del XHTML para el contenido, para que este, quede con un margen igual a la medida del menu, mas un padding para separarlos.</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">ul#menu {<br />    float: left;<br />    width: 130px;<br />}<br /><br />ul#menu li {<br />    display: inline;<br />}<br /><br />ul#menu li a {<br />    display: block;<br />    height: 25px;<br />}<br /><br />#contenido {<br />    margin-left: 130px;<br />    padding-left: 20px;<br />}<br /></span></span></span></span></span></pre>
<p>Y bien, como dijimos antes, se debe aplicar la imaginaci&oacute;n para hacerlo m&aacute;s elegante.</p>
<p>Puedes descargar el ejemplo del <a href="../../archivos/menu-css-vertical.zip">menu vertical</a> y el del <a href="../../archivos/menu-css-horizontal.zip">menu horizontal</a>. Ambos estan m&aacute;s producidos en c&oacute;digo y explicados con comentarios.</p>]]></content:encoded> 	<category><![CDATA[guia]]></category>	<category><![CDATA[css]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 07 Apr 2010 23:28:28</pubDate>
</item>
<item> 
	<title>Usuarios unicos?</title> 
	<link>http://www.documentoweb.com/usuarios-unicos</link> 
	<comments>http://www.documentoweb.com/usuarios-unicos#mensajes </comments> 
	<guid>http://www.documentoweb.com/usuarios-unicos</guid> 
	<description><![CDATA[ Hola como le izo null
 Que cuando alguien se registre con un nombre de usuario y otra persona quiera registrarse con el mismo nombre no se pueda registrar ejemplo
Juan                                                                                                                                  ...]]></description>
	<content:encoded><![CDATA[<p>Hola como le izo null</p>
<p>&nbsp;Que cuando alguien se registre con un nombre de usuario y otra persona quiera registrarse con el mismo nombre no se pueda registrar ejemplo</p>
<p>Juan &lt;-- un usuario que ya se registro</p>
<p>Si me registro con el nombre mismo nombe JUAn no me deje rejistrame</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[css]]></category>
	<dc:creator></dc:creator>
	<pubDate>Fri, 12 Mar 2010 22:10:06</pubDate>
</item>
<item> 
	<title>Ayuda: Un formulario en html y php que inserta a los usuarios registrados?</title> 
	<link>http://www.documentoweb.com/pregunta/Ayuda/Un-formulario-en-html-y-php-que-inserta-a-los-usuarios-registrados</link> 
	<comments>http://www.documentoweb.com/pregunta/Ayuda/Un-formulario-en-html-y-php-que-inserta-a-los-usuarios-registrados#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Ayuda/Un-formulario-en-html-y-php-que-inserta-a-los-usuarios-registrados</guid> 
	<description><![CDATA[ Hola, necesito ayuda.
El problema es el siguiente: Tengo un formularo en html y php que inserta a los usuarios registrados.
Si escribo un nombre en mayusculas me crea un nuevo usuario, el problema empiesa si escribo el mismo nombre en minusculas me crea otro usuario
¿Cómo ago para que esto no...]]></description>
	<content:encoded><![CDATA[<p>Hola, necesito ayuda.</p>
<p>El problema es el siguiente: Tengo un formularo en html y php que inserta a los usuarios registrados.</p>
<p>Si escribo&nbsp;un nombre&nbsp;en mayusculas me crea un nuevo usuario, el problema empiesa si escribo el mismo nombre en minusculas me crea otro usuario</p>
<p>&iquest;C&oacute;mo ago para que esto no pase?</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 10 Mar 2010 04:33:05</pubDate>
</item>
<item> 
	<title>¿close encounter of the 'first kind' with PHP?</title> 
	<link>http://www.documentoweb.com/pregunta/close-encounter-of-the-first-kind-with-PHP</link> 
	<comments>http://www.documentoweb.com/pregunta/close-encounter-of-the-first-kind-with-PHP#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/close-encounter-of-the-first-kind-with-PHP</guid> 
	<description><![CDATA[ Null gracias a tus videos explicativos podría decir que tuve mi primer encuentro cercano de primer tipo con lo que es php, pero aún así falta mucho por aprender.
Me encanto la iniciativa de esta pag y busco cambiar mi sitio en html, que hice hace unos meses, a uno en php que me permita...]]></description>
	<content:encoded><![CDATA[<p>Null gracias a tus&nbsp;videos&nbsp;explicativos&nbsp;podr&iacute;a&nbsp;decir que tuve mi primer encuentro cercano de primer tipo con lo que es php, pero a&uacute;n as&iacute; falta mucho por aprender.</p>
<p>Me encanto la iniciativa de esta pag y busco cambiar mi sitio en html, que hice hace unos meses, a uno en php que me permita modificar m&aacute;s f&aacute;cilmente el contenido, agregar f&aacute;cilmente contenido, cambiar la apriencia, cargar m&aacute;s r&aacute;pido y etc beneficios del php.</p>
<p>Mi pregunta es si es q puedes subir un video que explique la forma de editar alguna plantilla wordpress para hacer tu propio dise&ntilde;o o hacerlo desde cero de alguna manera, como lo del panda pero un poco m&aacute;s lento.</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 09 Mar 2010 16:11:20</pubDate>
</item>
<item> 
	<title>Terremoto en Chile</title> 
	<link>http://www.documentoweb.com/Terremoto-en-Chile</link> 
	<comments>http://www.documentoweb.com/Terremoto-en-Chile#mensajes </comments> 
	<guid>http://www.documentoweb.com/Terremoto-en-Chile</guid> 
	<description><![CDATA[ Hey null pensamos que estabas muerto, Es lamentable todo lo que le paso a tu país, pero bueno ya no se me ocurre nada que escribir, suerte
Cuando estés listo no dudes en contestar mis dudas y publicar mas tutoriales                                                                                  ]]></description>
	<content:encoded><![CDATA[<p>Hey null pensamos que estabas muerto, Es lamentable todo lo que le paso a tu pa&iacute;s, pero bueno ya no se me ocurre nada que escribir, suerte</p>
<p>Cuando est&eacute;s listo no dudes en contestar mis dudas y publicar mas tutoriales</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 03 Mar 2010 21:07:24</pubDate>
</item>
<item> 
	<title>curso de SEO !!!!!</title> 
	<link>http://www.documentoweb.com/curso-de-SEO</link> 
	<comments>http://www.documentoweb.com/curso-de-SEO#mensajes </comments> 
	<guid>http://www.documentoweb.com/curso-de-SEO</guid> 
	<description><![CDATA[ ¿cuales son las tecnicas que utiliza null para posisionarce en google?
¿Como crea sus sitemaps?
URGE UN TUTORIAL DE SEO YAAAAAAAAAAAAAAAAAAA                                                                                                                                                            ]]></description>
	<content:encoded><![CDATA[<p>&iquest;cuales son las tecnicas que utiliza null para posisionarce en google?</p>
<p>&iquest;Como crea sus sitemaps?</p>
<p>URGE UN TUTORIAL DE SEO YAAAAAAAAAAAAAAAAAAA</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Thu, 25 Feb 2010 22:00:56</pubDate>
</item>
<item> 
	<title>google no asepta sitemap en php</title> 
	<link>http://www.documentoweb.com/google-no-asepta-sitemap-en-php</link> 
	<comments>http://www.documentoweb.com/google-no-asepta-sitemap-en-php#mensajes </comments> 
	<guid>http://www.documentoweb.com/google-no-asepta-sitemap-en-php</guid> 
	<description><![CDATA[ me e dado cuenta que google no asepta sitemap en php
tambien no acepta si le cambiamos la extencion de php a xml con htaccess e_e
la unica solucion es aser un script que cree un xml

pero hay un error ya que cadaves que visitemos este escrip se ensimaran las urls                               ...]]></description>
	<content:encoded><![CDATA[<p>me e dado cuenta que google no asepta sitemap en php</p>
<p>tambien no acepta si le&nbsp;cambiamos la extencion de php a xml con htaccess e_e</p>
<p>la unica solucion es aser un script que cree&nbsp;un xml</p>
<p>&lt;?php</p>
<p>include('conexion.php');</p>
<p>$query_preguntas= mysql_query("SELECT *FROM $table_preguntas order by id DESC");<br />while($id_preguntas= mysql_fetch_array($query_preguntas))<br />{$mensaje= "&lt;url&gt;&lt;loc&gt;$web/Pregunta$id_preguntas[id]/&lt;/loc&gt;&lt;/url&gt;\n";<br />$abrir= fopen("sitemap.xml","a");<br />fputs($abrir,$mensaje);<br />fclose($abrir);<br />}</p>
<p>?&gt;</p>
<p>pero hay un error ya que cadaves que visitemos este escrip se ensimaran las urls</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 24 Feb 2010 19:31:03</pubDate>
</item>
<item> 
	<title>¿Mi web se alento cuando use htaccess para las urls accesibles?</title> 
	<link>http://www.documentoweb.com/pregunta/Mi-web-se-alento-cuando-use-htaccess-para-las-urls-accesibles</link> 
	<comments>http://www.documentoweb.com/pregunta/Mi-web-se-alento-cuando-use-htaccess-para-las-urls-accesibles#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/Mi-web-se-alento-cuando-use-htaccess-para-las-urls-accesibles</guid> 
	<description><![CDATA[ ¿Mi web se alento cuando use htaccess para las urls accesibles?
¿Porque pasa eso?                                                                                                                                                                                                                        ]]></description>
	<content:encoded><![CDATA[<p>&iquest;Mi web se alento cuando use htaccess para las urls accesibles?</p>
<p>&iquest;Porque pasa eso?</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 24 Feb 2010 12:53:20</pubDate>
</item>
<item> 
	<title>sitemap y yo</title> 
	<link>http://www.documentoweb.com/sitemap-y-yo</link> 
	<comments>http://www.documentoweb.com/sitemap-y-yo#mensajes </comments> 
	<guid>http://www.documentoweb.com/sitemap-y-yo</guid> 
	<description><![CDATA[ E creado un sitemap  en php y base de datos, funciona perfectamente  no hay ningún error en php mi problema es que por alguna extraña razón cuando le envio a google mi sitemap me da error, mi archivo se encuentra con extencion php,
Sitemap.php Pero google no lo acepto, después con htaccess...]]></description>
	<content:encoded><![CDATA[<p>E creado un sitemap&nbsp; en php y base de datos, funciona perfectamente &nbsp;no hay ning&uacute;n error en php mi problema es que por alguna extra&ntilde;a raz&oacute;n cuando le envio a google mi sitemap me da error, mi archivo se encuentra con extencion php,</p>
<p>Sitemap.php Pero google no lo acepto, despu&eacute;s con htaccess cambie la extensi&oacute;n a sitemap.xml pero google tampoco lo quiso, &iquest;Qu&eacute; puedo hacer?</p>
<p>Aqui esta el codigo que utilizo:</p>
<p>&nbsp;</p>
<p>&lt;?php<br />include('conexion.php');<br />echo "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<br />&lt;urlset<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns=\"<a href="http://www.sitemaps.org/schemas/sitemap/0.9\">http://www.sitemaps.org/schemas/sitemap/0.9\</a>"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi=\"<a href="http://www.w3.org/2001/XMLSchema-instance\">http://www.w3.org/2001/XMLSchema-instance\</a>"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsi:schemaLocation=\"<a href="http://www.sitemaps.org/schemas/sitemap/0.9">http://www.sitemaps.org/schemas/sitemap/0.9</a><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\</a>"&gt;<br />";<br />echo "&lt;url&gt;&lt;loc&gt;$web&lt;/loc&gt;&lt;/url&gt;\n";</p>
<p><br />$query_usuarios= mysql_query("SELECT *FROM $table_usuarios order by id DESC");<br />while($user= mysql_fetch_array($query_usuarios))<br />{echo "&lt;url&gt;&lt;loc&gt;$web/$user[nombre].html&lt;/loc&gt;&lt;/url&gt;\n";}</p>
<p>$query_preguntas= mysql_query("SELECT *FROM $table_preguntas order by id DESC");<br />while($id_preguntas= mysql_fetch_array($query_preguntas))<br />{echo "&lt;url&gt;&lt;loc&gt;$web/Pregunta$id_preguntas[id]/&lt;/loc&gt;&lt;/url&gt;\n";}</p>
<p>$query_tutorial= mysql_query("SELECT *FROM $table_tutorial order by id DESC");<br />while($id_tutorial= mysql_fetch_array($query_tutorial))<br />{echo "&lt;url&gt;&lt;loc&gt;$web/tutorial/$id_tutorial[tipo]/$id_tutorial[id]/&lt;/loc&gt;&lt;/url&gt;\n";}</p>
<p>echo "&lt;/urlset&gt;";<br />?&gt;</p>
<p>&nbsp;</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Tue, 23 Feb 2010 19:22:47</pubDate>
</item>
<item> 
	<title>mi hosting no me deja usar htaccess</title> 
	<link>http://www.documentoweb.com/mi-hosting-no-me-deja-usar-htaccess</link> 
	<comments>http://www.documentoweb.com/mi-hosting-no-me-deja-usar-htaccess#mensajes </comments> 
	<guid>http://www.documentoweb.com/mi-hosting-no-me-deja-usar-htaccess</guid> 
	<description><![CDATA[ mi hosting no me deja usar htaccess
 
NOOOOOOOOOOOOoooooooooooooooooo
me anduve matando investigando para poder crear las urls accessibles y mi hosting no admite hatccess                                                                                                                              ]]></description>
	<content:encoded><![CDATA[<p>mi hosting no me deja usar htaccess</p>
<p>&nbsp;</p>
<p>NOOOOOOOOOOOOoooooooooooooooooo</p>
<p>me anduve matando investigando para poder crear las urls accessibles y mi hosting no admite hatccess</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sun, 21 Feb 2010 02:01:31</pubDate>
</item>
<item> 
	<title>que significa este signo [L] en htaccess ????????</title> 
	<link>http://www.documentoweb.com/pregunta/que-significa-este-signo-L-en-htaccess</link> 
	<comments>http://www.documentoweb.com/pregunta/que-significa-este-signo-L-en-htaccess#mensajes </comments> 
	<guid>http://www.documentoweb.com/pregunta/que-significa-este-signo-L-en-htaccess</guid> 
	<description><![CDATA[ hola a todos yengo una duda siobre htaccess
que significa este signo [L] en htaccess ????????                                                                                                                                                                                                              ]]></description>
	<content:encoded><![CDATA[<p>hola a todos yengo una duda siobre htaccess</p>
<p>que significa este signo [L] en htaccess ????????</p>]]></content:encoded> 	<category><![CDATA[preguntas]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Sat, 20 Feb 2010 16:54:03</pubDate>
</item>
<item> 
	<title>DocumentoWeb: Sobre las categorías</title> 
	<link>http://www.documentoweb.com/DocumentoWeb/Sobre-las-categorias</link> 
	<comments>http://www.documentoweb.com/DocumentoWeb/Sobre-las-categorias#mensajes </comments> 
	<guid>http://www.documentoweb.com/DocumentoWeb/Sobre-las-categorias</guid> 
	<description><![CDATA[ Las categorías permitirán dar orden al sitio, por lo tanto, lo ideal es que todo pertenezca a por lo menos una.
Para crear una categoría se debe seguir la sigguiente sintaxis:
[categoría]: Título de tu publicación
O mejor aún más una subcategoría:
[categoría]: [subcategoría]: Título...]]></description>
	<content:encoded><![CDATA[<p>Las categor&iacute;as permitir&aacute;n dar orden al sitio, por lo tanto, lo ideal es que todo pertenezca a por lo menos una.</p>
<p>Para crear una categor&iacute;a se debe seguir la sigguiente sintaxis:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span><span><span><span><span>[categor&iacute;a]: T&iacute;tulo de tu publicaci&oacute;n</span></span></span></span></span></span></span></span></span></span></pre>
<p>O mejor a&uacute;n m&aacute;s una subcategor&iacute;a:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span><span><span><span><span>[categor&iacute;a]: [subcategor&iacute;a]: T&iacute;tulo de tu publicaci&oacute;n</span></span></span></span></span></span></span></span></span></span></pre>
<p>Ejemplos:</p>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span><span><span><span><span>Photoshop: Crear gifs animados</span></span></span></span></span></span></span></span></span></span></pre>
<pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><span><span><span><span><span>Gu&iacute;a: Photoshop: Crear gifs animados</span></span></span></span></span></span></span></span></span></span></pre>
<p>Las categor&iacute;as o subcategor&iacute;as p&oacute;ngase en plural, singular, may&uacute;sculas, min&uacute;sculas o con acentuaciones dan el mismo resultado en la p&aacute;gina de dicha categor&iacute;a.&nbsp;Si la categor&iacute;a es por ejemplo "Gu&iacute;a", "gu&iacute;as" o "GUIAS" se almacenar&aacute; en esa categor&iacute;a, pero note&nbsp;que las URLs&nbsp;permacenecen sin acentuaciones y se desprecia la escritura mencionada para mostrar los mismos resultados para todas ellas.</p>]]></content:encoded> 	<category><![CDATA[documentoweb]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Wed, 27 Jan 2010 15:15:11</pubDate>
</item>
<item> 
	<title>DocumentoWeb: Nuevas características</title> 
	<link>http://www.documentoweb.com/DocumentoWeb/Nuevas-caracteristicas</link> 
	<comments>http://www.documentoweb.com/DocumentoWeb/Nuevas-caracteristicas#mensajes </comments> 
	<guid>http://www.documentoweb.com/DocumentoWeb/Nuevas-caracteristicas</guid> 
	<description><![CDATA[ Las nuevas características de esta versión dejan por el suelo a las de la anterior.
Desde crear publicaciones, darles una categoría, conectarlas con otro artículo, seguir el feed RSS, editarlas, tener tu propia mensajería, dar puntos, eliminar y editar mensajes, hacer búsquedas y más...]]></description>
	<content:encoded><![CDATA[<p><img class="imagen_derecha" src="http://farm3.static.flickr.com/2427/4305917564_8b6248093a_o.png" alt="" />Las nuevas caracter&iacute;sticas de esta versi&oacute;n dejan por el suelo a las de la anterior.</p>
<p>Desde crear publicaciones, darles una categor&iacute;a, conectarlas con otro art&iacute;culo, seguir el feed RSS, editarlas, tener tu propia mensajer&iacute;a, dar puntos, eliminar y editar mensajes, hacer b&uacute;squedas y m&aacute;s caracter&iacute;sticas que&nbsp;se&ntilde;alar&eacute; ahora junto a sus propiedades.</p>
<h2>Crear</h2>
<p>Crea todo tipo de publicaciones. Desde extensos tutoriales con p&aacute;ginas conectadas hasta peque&ntilde;os tips en un editor de "lo que ves es lo que obtienes".</p>
<ul>
<li><strong>Categor&iacute;as y subcategor&iacute;as</strong>:&nbsp;Cada publicaci&oacute;n puede&nbsp;almacenarse&nbsp;en una categor&iacute;a y una subcategor&iacute;a. Es muy simple: antes del t&iacute;tulo de la publicaci&oacute;n se escribe la categor&iacute;a y/o subcategor&iacute;a junto con dos puntos.&nbsp;</li>
<li><strong>Preguntas</strong>:&nbsp;Para preguntar se debe usar obligatoriamente el signo de interrogaci&oacute;n y as&iacute; se alamacenar&aacute; en la categor&iacute;a de preguntas.</li>
<li><strong>Conectar</strong>:&nbsp;Conecta tus publicaciones con otras mediante "m&aacute;s opciones" en el momento de crear o editar una publicaci&oacute;n.</li>
<li><strong>Dise&ntilde;o</strong>:&nbsp;Puedes elegir entre el dise&ntilde;o est&aacute;ndar de publicaci&oacute;n o el amplio en "m&aacute;s opciones"&nbsp;para, por ejemplo, presentaciones de&nbsp;im&aacute;genes&nbsp;grandes&nbsp;o&nbsp;v&iacute;deos&nbsp;de alta definici&oacute;n.</li>
<li><strong>Mensajes</strong>:&nbsp;Puedes dejar mensajes en absolutamente todas las publicaciones.</li>
<li><strong>Favoritos</strong>:&nbsp;Almacena tus publicaciones favoritas en tu perfil a trav&eacute;s del icono de coraz&oacute;n.</li>
<li><strong>Puntuar</strong>:&nbsp;Puedes puntuar cada publicaci&oacute;n y mensaje una vez por d&iacute;a como bueno (+) o malo (-).</li>
</ul>
<h2>Editar</h2>
<p>Puedes editar todos los art&iacute;culos y mensajes con algunas limitaciones.</p>
<ul>
<li><strong>Publicaciones</strong>:&nbsp;Los amigos pueden editar libre y mutuamente sus publicaciones. Si no, s&oacute;lo pueden recomendar ediciones para que luego sean aceptadas o rechazadas por sus publicadores.</li>
<li><strong>Mensajes</strong>:&nbsp;Puedes editar y eliminar cualquier mensaje tuyo o que est&eacute;n en tus publicaciones.</li>
</ul>
<h2>Perfiles</h2>
<p>Tienes tu propio perfil donde se muestran todo lo que p&uacute;blicamente haces.</p>
<ul>
<li><strong>Historia</strong>:&nbsp;Es un registro de lo que haces en el sitio como los momentos en que publicas o dejas mensajes en otras publicaciones. Puedes comentar en cualquier historia de cualquier usuario.</li>
<li><strong>Agregar amigos</strong>:&nbsp;Env&iacute;a peticiones de amistad desde el perfil que quieres agregar como amigo.</li>
<li><strong>Seguir</strong>: Puedes "seguir" lo que un usuario o amigo haga desde tu perfil para saber lo que &eacute;l hace (si publica o agrega mensajes por ejemplo).</li>
</ul>
<h2>Buscador</h2>
<p>Busca entre los art&iacute;culos del sitio junto a resultados de Google.</p>
<h2>Mensajer&iacute;a privada</h2>
<p>Env&iacute;a y recibe mensajes privados a cualquier usuario del sitio.</p>
<h2>Feed RSS</h2>
<p>Por cada publicaci&oacute;n, perfil y categor&iacute;a existe un canal de sindicaci&oacute;n. S&oacute;lo agrega /feed al final de la URL y podr&aacute;s acceder a ello. EL feed general se encuentra en <a title="Feed RSS de DocumentoWeb" href="../feed">www.documentoweb.com/feed</a>.</p>
<h2>Privacidad</h2>
<p>La privacidad es m&iacute;nima:</p>
<ul>
<li>Tu contrase&ntilde;a permanece encriptada.</li>
<li>Si proporcionas tu e-mail puedes elegir entre dejarlo p&uacute;blico o no.&nbsp;</li>
<li>Tus publicaciones guardadas s&oacute;lo las puedes ver y editar t&uacute;.</li>
<li>Tu mensajer&iacute;a privada, es privada.</li>
</ul>
<p>Toda la informaci&oacute;n que circula es y debe ser p&uacute;blica, por lo tanto, debes cuidar o simplemente no proporcionar tu informaci&oacute;n personal, porque no la necesitamos.</p>
<h2>Licencia</h2>
<p>Todos las publicaciones est&aacute;n bajo la&nbsp;<a title="DocumentoWeb y todo su contenido est&aacute;n bajo Licencia Creative Commons: Atribuci&oacute;n-No Comercial-Licenciar Igual 3.0 Unported License" rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Licencia Creative Commons</a>&nbsp;Atribuci&oacute;n - No Comercial - Licenciar igual. Quiere decir que, puedes copiar y editar las publicaciones haciendo referencia a sus autores siempre y cuando no sea con fines comerciales y licencies bajo esta misma licencia.</p>
<h2>Otras caracter&iacute;sticas</h2>
<ul>
<li>URLs muy limpias</li>
<li>C&oacute;digo XHTML 1.0 y CSS v&aacute;lido</li>
<li>C&oacute;digo PHP listo para agregar f&aacute;cilmente nuevas funciones.</li>
</ul>]]></content:encoded> 	<category><![CDATA[documentoweb]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 25 Jan 2010 22:19:49</pubDate>
</item>
<item> 
	<title>DocumentoWeb: DocumentoWeb 2.0 </title> 
	<link>http://www.documentoweb.com/DocumentoWeb/DocumentoWeb-2</link> 
	<comments>http://www.documentoweb.com/DocumentoWeb/DocumentoWeb-2#mensajes </comments> 
	<guid>http://www.documentoweb.com/DocumentoWeb/DocumentoWeb-2</guid> 
	<description><![CDATA[ Presento la nueva versión del sitio: DocumentoWeb 2.0 bajo el slogan de "Transmite, corrige, pregunta y aprende".
Hace un tiempo deseaba un lugar donde todos pudiésemos intercambiar el conocimiento con la posibilidad de corregir lo incorrecto de otro o que me corrigiesen lo incorrecto, mostrar...]]></description>
	<content:encoded><![CDATA[<p><img class="imagen_derecha" src="http://farm5.static.flickr.com/4017/4269666722_83d617d2bc_m.jpg" alt="" />Presento la nueva versi&oacute;n del sitio: <strong>DocumentoWeb 2.0</strong> bajo el slogan de "<em>Transmite, corrige, pregunta y aprende</em>".</p>
<p>Hace un tiempo deseaba un lugar donde todos pudi&eacute;semos intercambiar el conocimiento con la posibilidad de corregir lo incorrecto de otro o que me corrigiesen lo incorrecto, mostrar los errores, las preguntas y experiencias que conllevan a&nbsp;<strong>aprender y mejorar nuestro conocimiento</strong>. Como humanos tenemos la gran capacidad de aprender y, &iquest;de qu&eacute; servir&iacute;a nuestra vida si no fuese para aprender?.</p>
<p><strong>Quiero aumentar nuestros conocimientos</strong>&nbsp;y para ello cre&eacute; esta herramienta<strong>.</strong></p>
<p>No es un nuevo Wikipedia con informaci&oacute;n neutral, un blog unipersonal, una red social ni un foro de discusi&oacute;n. No s&eacute; como llamarlo, pero posee las ideas que tienen ellos y que nos&nbsp;permitir&aacute;n&nbsp;satisfacer este prop&oacute;sito:</p>
<h2>Transmitir</h2>
<p><img class="imagen_izquierda" src="http://farm3.static.flickr.com/2745/4305661888_e146164a83_o.png" alt="" /></p>
<p>Constantemente estamos transmitiendo conocimientos. Nuestros padres lo hacen, nuestros amigos, los blogueros, los foreros y casi cualquier persona que domine el tema m&aacute;s que el otro transmitir&aacute; su conocimiento.</p>
<h2>Corregir</h2>
<p><img class="imagen_izquierda" src="http://farm5.static.flickr.com/4062/4305628972_efe8e19ac7_o.png" alt="" /></p>
<p>Cuando alguien te transmite un mensaje t&uacute; lo&nbsp;analizas y en caso de un fallo corriges porque no puedes aceptar algo diferente a lo que ya sabes, si te parece extra&ntilde;o o no tiene ninguna base.</p>
<h2>Buscar y/o preguntar</h2>
<p><img class="imagen_izquierda" src="http://farm5.static.flickr.com/4036/4304932707_e07e0fe53c_o.png" alt="" /></p>
<p>Si no sabes algo, buscamos en informaci&oacute;n transmitida y/o corregida, en fuentes externas y si no, simplemente se pregunta para recibir respuestas y luego transmitir este nuevo conocimiento a otros y as&iacute; volver al primer punto.</p>
<h2>Las personas</h2>
<p><img class="imagen_izquierda" src="http://farm5.static.flickr.com/4039/4304886941_5497f50f9e_o.png" alt="" /></p>
<p>Sin este concepto, ninguno de los tres anteriores funcionar&iacute;a para realizar nuestro objetivo. Todo funciona con nosotros y siempre ser&aacute; as&iacute;: una red interconcectada, una comunidad que transmite el conocimiento, corrige los errores, busca informaci&oacute;n, pregunta y lo m&aacute;s importante: <strong>aprende</strong>.</p>
<p>&nbsp;</p>
<p>Bajo un simple sistema, un dise&ntilde;o aireado y distintas funciones espero que &eacute;ste sea nuestro nicho de aprendizaje multidireccional.</p>]]></content:encoded> 	<category><![CDATA[documentoweb]]></category>	<category><![CDATA[ayuda]]></category>
	<dc:creator></dc:creator>
	<pubDate>Mon, 25 Jan 2010 21:39:34</pubDate>
</item>

</channel>
</rss>
