<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>YoPHPro</title>
	
	<link>http://yophpro.com</link>
	<description>YoPHPro el blog de PHP que habla acerca de CMSs, Frameworks, librerías, Noticias y problemas frecuentes.</description>
	<lastBuildDate>Thu, 16 Feb 2012 19:00:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Yophpro" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="yophpro" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Haz tu propio elePHPant origami</title>
		<link>http://yophpro.com/noticias/elephpant-origami.html</link>
		<comments>http://yophpro.com/noticias/elephpant-origami.html#comments</comments>
		<pubDate>Thu, 16 Feb 2012 19:00:08 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=507</guid>
		<description><![CDATA[No he podido evitar meter este video en nuestro blog. En la PHP conference 2011 en Barcelona me cobraron 15 Euros por un elePHPhant de peluche y me resultó bastante caro. Si hubiera visto este video antes quizás me lo hubiera pensado.]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/GpXAXaQHOt_BXw_VouafLWujZEQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/GpXAXaQHOt_BXw_VouafLWujZEQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GpXAXaQHOt_BXw_VouafLWujZEQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/GpXAXaQHOt_BXw_VouafLWujZEQ/1/di" border="0" ismap="true"></img></a></p><p>No he podido evitar meter este video en nuestro blog. En la <strong>PHP conference</strong> 2011 en Barcelona me cobraron 15 Euros por un <strong>elePHPhant</strong> de peluche y me resultó bastante caro. Si hubiera visto este video antes quizás me lo hubiera pensado.</p>
<p><a href="http://www.youtube.com/watch?v=d8c673Bhxkw"><img src="http://img.youtube.com/vi/d8c673Bhxkw/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=d8c673Bhxkw">Click here</a> to view the video on YouTube.</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/noticias/elephpant-origami.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Una amarga despedida. Adios Smarty, Hola Twig</title>
		<link>http://yophpro.com/frameworks/una-amarga-despedida-adios-smarty-hola-twig.html</link>
		<comments>http://yophpro.com/frameworks/una-amarga-despedida-adios-smarty-hola-twig.html#comments</comments>
		<pubDate>Mon, 13 Feb 2012 19:12:18 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[motor de plantillas]]></category>
		<category><![CDATA[php6]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[tpl]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=495</guid>
		<description><![CDATA[&#160; Smarty ha sido mi compañero de batalla durante mucho tiempo. Si echais un vistazo a los post que he ido poniendo en mi blog os dareis cuenta que he puesto más de uno referente a este motor de plantillas. Este post es un recopilatorio a modo de despedida de Smarty y un pequeño guiño [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/im9Wx_d10-QkpuJRjv2Y6rnH-Ok/0/da"><img src="http://feedads.g.doubleclick.net/~a/im9Wx_d10-QkpuJRjv2Y6rnH-Ok/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/im9Wx_d10-QkpuJRjv2Y6rnH-Ok/1/da"><img src="http://feedads.g.doubleclick.net/~a/im9Wx_d10-QkpuJRjv2Y6rnH-Ok/1/di" border="0" ismap="true"></img></a></p><p>&nbsp;</p>
<p><strong><a href="http://yophpro.com/frameworks/una-amarga-despedida-adios-smarty-hola-twig.html/attachment/twig-php-template-framework/" rel="attachment wp-att-496"><img class="aligncenter size-full wp-image-496" title="twig template engine " src="http://yophpro.com/wp-content/uploads/2012/02/twig-php-template-framework.png" alt="logo de twig motor de plantillas php" width="183" height="149" /></a>Smarty</strong> ha sido mi compañero de batalla durante mucho tiempo. Si echais un vistazo a los <strong>post</strong> que he ido poniendo en mi <strong>blog</strong> os dareis cuenta que he puesto más de uno referente a este <strong>motor de plantillas</strong>. Este post es un recopilatorio a modo de despedida de <strong>Smarty</strong> y un pequeño guiño a <strong>twig</strong> que a partir de ahora será mi nueva librería de cabecera para mis desarrollos en <strong>php</strong>.</p>
<p><span id="more-495"></span></p>
<p>En el entorno de php nos estamos profesionalizando bastante. Hace pocos años a los programadores web de php se les tornaba dificil el trabajo orientado a objetos. El diseño orientado a objetos puro, pruebas unitarias, tareas en background, el pensar en el rendimiento etc &#8230; se está convirtiendo poco a poco en una obsesión dentro de nuestro lenguaje de programación. Esto es lo que principalmente me ha llevado a esta dificil decisión de abandonar Smarty. Cuando uno llega a manejar perfectamente una librería solemos tener miedo al cambio. Pero en nuestra profesión creo que tenemos que estar acostumbrados a esto.</p>
<p>¿El por qué? Por tendencia, por eficiencia, por mejoras en el sistema. Seré más específico en posteriores post e intentaremos hacer una comparativa más adelante. Mientras tanto un breve resumen de los post escritos con relación a Smarty:</p>
<p>En este post resumiamos una breve instalación básica para empezar a trabajar con <strong>smarty</strong>. Prometo hacer lo mismo para <strong>twig</strong> lo antes posible</p>
<p><a title="Configuración básica de Smarty para empezar a trabajar" href="http://yophpro.com/librerias/configuracion-basica-de-smarty-para-empezar-a-trabajar.html">Configuración básica de Smarty para empezar a trabajar.</a></p>
<p>Este post está muy bien si alguien quiere seguir usando <strong>smarty</strong>. Indicaba dentro de los que yo considero los 4 mejores <strong>IDEs</strong> para <strong>php</strong> los que mejor se integraban con <strong>smarty</strong>.</p>
<p><a title="Los 4 mejores IDEs para PHP" href="http://yophpro.com/otros/los-4-mejores-ides-para-php.html">Los 4 mejores IDEs para PHP<br />
</a></p>
<p>Una presentación de <strong>smarty</strong> hecha con todo el cariño de alguien que lleva trabajando años con una librería.</p>
<p><a title="Smarty – Motor de Plantillas" href="http://yophpro.com/librerias/smarty-motor-plantillas-php.html">Smarty &#8211; Motor de Plantillas</a></p>
<p>Smarty, te echaré de menos. <em>Sniff, Sniff</em></p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/frameworks/una-amarga-despedida-adios-smarty-hola-twig.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gearman – mucho más que hilos</title>
		<link>http://yophpro.com/librerias/gearman-hilos-threads-en-php.html</link>
		<comments>http://yophpro.com/librerias/gearman-hilos-threads-en-php.html#comments</comments>
		<pubDate>Sat, 11 Feb 2012 18:49:37 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Librerias]]></category>
		<category><![CDATA[gearman]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=485</guid>
		<description><![CDATA[A medida que vamos trabajando con php, la necesidad de realizar tareas en segundo plano y el poder trabajar con hilos o threads se hecha en falta en ocasiones en nuestro lenguaje. Muchas veces nos encontramos ante el error de realizar procesos lentos dentro de la carga de una página con lo que el usuario [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/QfMJunrQ-lOBXDFFrj5EBUPLnho/0/da"><img src="http://feedads.g.doubleclick.net/~a/QfMJunrQ-lOBXDFFrj5EBUPLnho/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QfMJunrQ-lOBXDFFrj5EBUPLnho/1/da"><img src="http://feedads.g.doubleclick.net/~a/QfMJunrQ-lOBXDFFrj5EBUPLnho/1/di" border="0" ismap="true"></img></a></p><p><img class="aligncenter size-full wp-image-487" title="logo de gearman" src="http://yophpro.com/wp-content/uploads/2012/01/gearman.png" alt="logo de gearman" width="128" height="128" /></p>
<p>A medida que vamos trabajando con <strong>php,</strong> la necesidad de realizar tareas en segundo plano y el poder trabajar con <strong>hilos</strong> o <strong>threads</strong> se hecha en falta en ocasiones en nuestro lenguaje. Muchas veces nos encontramos ante el error de realizar procesos lentos dentro de la carga de una página con lo que el usuario acaba pagando esta carencia de nuestro lenguaje.  En estos tiempos en los que cada vez damos más importancia a la experiencia de usuario y a la usabilidad cada vez encontramos soluciones más eficientes a este problema.</p>
<p><span id="more-485"></span></p>
<p>En ocasiones anteriores había trabajado con sistemas de <strong>threads en php </strong>que trataban de asemejarse más al funcionamiento de los hilos de Java. Un ejemplo de esto es el proyecto alojado en PHP Classes PHP_FORK del que ya hablaré e intentaré poner un ejemplo de implementación en el futuro :</p>
<p><a href="http://www.phpclasses.org/package/1136-PHP-A-class-to-implement-multi-threaded-applications.html" rel="external nofollow">http://www.phpclasses.org/package/1136-PHP-A-class-to-implement-multi-threaded-applications.html</a></p>
<p>Gracias a la PHP Barcelona Conference 2011 me encontré con Gearman. Este software es una fantástica solución al problema que acabo de describir. Divide estos procesos como lo haría un buen jefe en una empresa. Tú como jefe del sistema has de dividir las tareas (GearmanTasks) entre distintos trabajadores (GearmanWorker) y en todo momento puedes ver el Estado del trabajo (GearmandJob).</p>
<p>Este es un esquema de cómo funciona:</p>
<p><img class="aligncenter size-full wp-image-488" title="Proceso de Gearman" src="http://yophpro.com/wp-content/uploads/2012/01/gearman_stack.png" alt="Esquema de proceso de trabajo de un servidor Gearman" width="479" height="302" /></p>
<p>Dejo en mi TO-DO list el hacer un POST en las próximas semanas sobre la <strong>instalación de Gearman paso a paso</strong>. También añado el hacer un análisis completo de la librería <strong>PHP</strong> nativa para la gestión de <strong>Gearman</strong> con un ejemplo. Si no teneis paciencia y quereis probarlo ya, os guío escuetamente con unos sencillos pasos:</p>
<ol>
<li>Instala <strong>Gearman</strong> en tu servidor <strong>linux</strong> (¿apt-get, yum? Como prefieras)</li>
<li>Instala la librería de <strong>Gearman</strong> en tu servidor web</li>
<li>Mira el ejemplo que ha realizado el creador de php en su blog :<a href="http://toys.lerdorf.com/archives/51-Playing-with-Gearman.html" rel="external nofollow">http://toys.lerdorf.com/archives/51-Playing-with-Gearman.html</a></li>
</ol>
<p><strong>Gearmand</strong> sólo está disponible para sistemas <strong>UNIX</strong>. Por si deseais más indormación la página donde está alojado el proyecto es la siguiente :</p>
<p><a href="http://gearman.org/" rel="external nofollow">http://gearman.org/</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/librerias/gearman-hilos-threads-en-php.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La maravilla de memcached</title>
		<link>http://yophpro.com/librerias/memcached.html</link>
		<comments>http://yophpro.com/librerias/memcached.html#comments</comments>
		<pubDate>Tue, 07 Feb 2012 18:31:02 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Librerias]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php6]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=469</guid>
		<description><![CDATA[Memcached es un sistema por el cuál podemos utilizar la memoria RAM de nuestro servidor web para almacenar datos de manera temporal. Su facilidad de uso y la rapidez de acceso a estos datos almacenados la hacen una herramienta perfecta cuando tratamos de aumentar la eficiencia de nuestras aplicaciones web. En memcached podemos guardar cualquier [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/KQ36zY_W6zL3mI0QbXhDhiBweZg/0/da"><img src="http://feedads.g.doubleclick.net/~a/KQ36zY_W6zL3mI0QbXhDhiBweZg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KQ36zY_W6zL3mI0QbXhDhiBweZg/1/da"><img src="http://feedads.g.doubleclick.net/~a/KQ36zY_W6zL3mI0QbXhDhiBweZg/1/di" border="0" ismap="true"></img></a></p><p><img class="aligncenter size-full wp-image-470" title="memcached" src="http://yophpro.com/wp-content/uploads/2012/01/memcached-logo-200x152.png" alt="logo de memcached" width="200" height="152" /></p>
<p>Memcached es un sistema por el cuál podemos utilizar la memoria RAM de nuestro servidor web para almacenar datos de manera temporal. Su facilidad de uso y la rapidez de acceso a estos datos almacenados la hacen una herramienta perfecta cuando tratamos de aumentar la eficiencia de nuestras aplicaciones web.</p>
<p><span id="more-469"></span></p>
<p>En memcached podemos guardar cualquier tipo de dato u objeto. Es un cajón de sastre dónde podemos guardar desde resultados de consultas a bases de datos hasta html puro. Es la primera medida que se debe adoptar cuando te encuentras con una plataforma que necesita escalar rápidamente una plataforma infradimensionada. Aprender a usar memcached y sacarle todo el partido posible es esencial para cualquier desarrollador que trabaje con webs con un mucho tráfico.</p>
<p>Puedes empezar a trabajar con memcached en tu própio entorno local de desarrollo cualquiera que sea tu sistema operativo. Lo primero que debes hacer es instalar memcached en tu máquina y posteriormente instalar la extensión de php en tu servidor para poder empezar a trabajar con ella desde la completa librería desarrollada para nuestro lenguaje de programación favorito.</p>
<p>Para probar te puede interesar el siguiente enlace</p>
<p><a href="http://yophpro.com/librerias/instalar-memcached-en-windows-dll.html">Instalar memcached en windows</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/librerias/memcached.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar memcached en windows + dll</title>
		<link>http://yophpro.com/librerias/instalar-memcached-en-windows-dll.html</link>
		<comments>http://yophpro.com/librerias/instalar-memcached-en-windows-dll.html#comments</comments>
		<pubDate>Fri, 03 Feb 2012 19:09:07 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Librerias]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php6]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=477</guid>
		<description><![CDATA[Hoy toca una entrada rápida acerca de memcached. Por diferentes razones que no vienen al caso estoy obligado a programar en windows. La mayor parte de los servidores web o sistemas de servidores están basados  en Unix. Esto hace que mi entorno de desarrollo no sea igual que mi entorno de producción y esto muchas [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/vllgR1DTHW3JdyOPvjtDeONDJXE/0/da"><img src="http://feedads.g.doubleclick.net/~a/vllgR1DTHW3JdyOPvjtDeONDJXE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vllgR1DTHW3JdyOPvjtDeONDJXE/1/da"><img src="http://feedads.g.doubleclick.net/~a/vllgR1DTHW3JdyOPvjtDeONDJXE/1/di" border="0" ismap="true"></img></a></p><p style="text-align: center;"><a href="http://yophpro.com/librerias/instalar-memcached-en-windows.html ? "><img class="aligncenter size-full wp-image-470" title="memcached" src="http://yophpro.com/wp-content/uploads/2012/01/memcached-logo-200x152.png" alt="logo de memcached" width="200" height="152" /></a></p>
<p>Hoy toca una entrada rápida acerca de <strong>memcached</strong>. Por diferentes razones que no vienen al caso estoy obligado a programar en windows. La mayor parte de los servidores web o sistemas de servidores están basados  en <strong>Unix</strong>. Esto hace que mi entorno de desarrollo no sea igual que mi entorno de producción y esto muchas veces da lugar a conflictos. Este no es el caso de memcached. Podemos instalar sin ningún problema memcached en nuestra máquina <strong>windows</strong>.<span id="more-477"></span>Desde la siguiente url podemos bajarnos <strong>memcached</strong> para <strong>windows</strong> : <a title="memcached para windows" href="http://code.jellycan.com/memcached/" rel="external nofollow">http://code.jellycan.com/memcached/</a></p>
<p>Lo único que tendremos que hacer despues de hacer doble click en el exe es instalar la extensión de php en nuestro servidor local:</p>
<p>1.- Bájate la siguiente <strong>dll</strong> y descomprimelo:</p>
<p><strong>dll memcached windows <a title="dll php memcached windows" href="http://yophpro.com/wp-content/uploads/2012/01/php_memcache.zip" target="_blank">php_memcache</a></strong></p>
<p>2.- Busca el directorio de php en tu servidor.</p>
<p>3.- Copia y pega el archivo dll en el directorio <strong>\php\ext\</strong></p>
<p>4.- Edita tu <strong>php.ini.</strong> Encuentra la parte en la que aparece</p>
<p><em>extension=php_memcache.dll</em></p>
<p>si al principio de la linea hay un &#8220;;&#8221; eliminalo, guarda y reinicia tu servidor</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/librerias/instalar-memcached-en-windows-dll.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>¿Alguien duda cuál es el mejor lenguaje de programación web?</title>
		<link>http://yophpro.com/otros/alguien-duda-cual-es-el-mejor-lenguaje-de-programacion-web.html</link>
		<comments>http://yophpro.com/otros/alguien-duda-cual-es-el-mejor-lenguaje-de-programacion-web.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 00:31:48 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Otros]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=456</guid>
		<description><![CDATA[&#160; ¿Alguien duda cuál es el mejor lenguaje de programación web? Si lo dudas  &#8230;. Sal de mi blog inmediatamente. Para todos aquellos que no lo duden os aconsejo que en http://www.theranking.com/es/ur/cual-es-el-mejor-lenguaje-de-programacion_578 y voteis por PHP. La gente de Phyton se está acercando peligrosamente.]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/cnIWs3ZuTC4UcSazsH5ZVaK-O9Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/cnIWs3ZuTC4UcSazsH5ZVaK-O9Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cnIWs3ZuTC4UcSazsH5ZVaK-O9Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/cnIWs3ZuTC4UcSazsH5ZVaK-O9Y/1/di" border="0" ismap="true"></img></a></p><p>&nbsp;</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-458" title="theranking.com" src="http://yophpro.com/wp-content/uploads/2012/01/logo-e1327797167393.png" alt="The Ranking" width="190" height="77" /></p>
<p>¿Alguien duda cuál es el mejor lenguaje de programación web? Si lo dudas  &#8230;. Sal de mi blog inmediatamente. Para todos aquellos que no lo duden os aconsejo que en <a href="http://www.theranking.com/es/ur/cual-es-el-mejor-lenguaje-de-programacion_578" rel="external nofollow">http://www.theranking.com/es/ur/cual-es-el-mejor-lenguaje-de-programacion_578</a> y voteis por PHP. La gente de Phyton se está acercando peligrosamente.<br />
<span id="more-456"></span></p>
<p><center><br />
<iframe src="http://www.theranking.com/es/widget/ranking/578/?rankingId=578&amp;width=600&amp;height=300&amp;lang=es" frameborder="0" scrolling="no" width="600px" height="750px"></iframe></center></p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/otros/alguien-duda-cual-es-el-mejor-lenguaje-de-programacion-web.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API TTS Text To Speech Gratuita</title>
		<link>http://yophpro.com/librerias/api-gratis-tts-text-to-speech.html</link>
		<comments>http://yophpro.com/librerias/api-gratis-tts-text-to-speech.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 00:05:39 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Librerias]]></category>
		<category><![CDATA[Noticias]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=444</guid>
		<description><![CDATA[Hoy os voy a contar un secreto que me comentó un compañero de trabajo y que os puede ser muy útil. Si teneis pensado realizar alguna aplicación que tenga que ver con &#8220;Text to Speech&#8221; es posible que os resulte de utilidad conocer que hoy por hoy Google tiene abierto su servicio de TTS para [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/7jcktmoOQGsT4_ntaMBA_oCAc0o/0/da"><img src="http://feedads.g.doubleclick.net/~a/7jcktmoOQGsT4_ntaMBA_oCAc0o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7jcktmoOQGsT4_ntaMBA_oCAc0o/1/da"><img src="http://feedads.g.doubleclick.net/~a/7jcktmoOQGsT4_ntaMBA_oCAc0o/1/di" border="0" ismap="true"></img></a></p><p style="text-align: center;"><a href="http://yophpro.com/librerias/api-gratis-tts-text-to-speech.html"><img class="size-medium wp-image-445 aligncenter" title="api-free" src="http://yophpro.com/wp-content/uploads/2012/01/its-free-template-e1327794024783-300x222.jpg" alt="Api Gratuita de Google para TTS" width="300" height="222" /></a></p>
<p>Hoy os voy a contar un secreto que me comentó un compañero de trabajo y que os puede ser muy útil. Si teneis pensado realizar alguna aplicación que tenga que ver con <strong>&#8220;Text to Speech&#8221;</strong> es posible que os resulte de utilidad conocer que hoy por hoy Google tiene abierto su servicio de TTS para todo el mundo que lo quiera utilizar. No sabemos durante cuánto tiempo google permitirá su uso de manera gratuita pero de momento podeis beneficiaros de esta API &#8220;no declarada&#8221; de Google.</p>
<p><span id="more-444"></span></p>
<p>¿Cómo lograrlo? A través de la url:</p>
<p><em>http://translate.google.com/translate_tts?tl=es&amp;q=<strong>Quiero+archivo+de+audio+con+este+texto</strong></em></p>
<p>Mediante el parámetro <strong>tl</strong> definimos el lenguaje deseado, y el el parámetro <strong>q</strong> podemos poner el texto deseado. Como resultado obtendremos un archivo de audio con extensión mpga. A pesar de la extensión del archivo resultante el audio es en realidad un mp4 compatible casi con cualquier dispositivo o reproductor.</p>
<p>Con una simple implementación con nuestra amada librería Curl podreis hacer autenticas maravillas. Un poco de mágia,  algo de creatividad y podremos tener ideas tan resultonas como por ejemplo el video que nos ofrecen para cada ranking desde <a title="TheRanking.com" href="http://www.theranking.com/es/ur/cual-es-el-mejor-lenguaje-de-programacion_578" target="_blank" rel="external nofollow">www.theranking.com </a></p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/librerias/api-gratis-tts-text-to-speech.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://translate.google.com/translate_tts?tl=es&amp;amp" length="0" type="audio/mpeg" />
		</item>
		<item>
		<title>Empezamos de nuevo. Nueva temporada de YoPHPro</title>
		<link>http://yophpro.com/otros/empezamos-de-nuevo-nueva-temporada-de-yophpro.html</link>
		<comments>http://yophpro.com/otros/empezamos-de-nuevo-nueva-temporada-de-yophpro.html#comments</comments>
		<pubDate>Sun, 01 Jan 2012 19:14:33 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Otros]]></category>

		<guid isPermaLink="false">http://yophpro.com/otros/empezamos-de-nuevo-nueva-temporada-de-yophpro.html</guid>
		<description><![CDATA[Hace ya unos meses unos amigos con los que ya había trabajado antes me propusieron trabajar en un proyecto innovador. La idea me gusto mucho y decidí cambiar de trabajo para irme con ellos. El cambio de trabajo más situaciones personales unido a unas cortitas vacaciones me hicieron abandonar el blog durante un par de [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/T4zuR2gEWk7qsv80d0NYtrUQaSw/0/da"><img src="http://feedads.g.doubleclick.net/~a/T4zuR2gEWk7qsv80d0NYtrUQaSw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T4zuR2gEWk7qsv80d0NYtrUQaSw/1/da"><img src="http://feedads.g.doubleclick.net/~a/T4zuR2gEWk7qsv80d0NYtrUQaSw/1/di" border="0" ismap="true"></img></a></p><p>Hace ya unos meses unos amigos con los que ya había trabajado antes me propusieron trabajar en un proyecto innovador. La idea me gusto mucho y decidí cambiar de trabajo para irme con ellos. El cambio de trabajo más situaciones personales unido a unas cortitas vacaciones me hicieron abandonar el blog durante un par de meses a pesar de los comienzos prometedores que las visitas me daban. Pero ahora quiero retomarlo con más fuerza que antes.<br />
Intentaré insertar al menos 2 entradas interesantes todas las semanas y procesar los comentarios que me vayais poniendo siempre que me sea posible. Para esos seguidores de twitter y para los fieles al blog mis disculpas.<br />
¡Comenzamos la nueva temporada! ¿Preparados?</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/otros/empezamos-de-nuevo-nueva-temporada-de-yophpro.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Patrones de Diseño II – Singleton en PHP</title>
		<link>http://yophpro.com/otros/singleton-en-php.html</link>
		<comments>http://yophpro.com/otros/singleton-en-php.html#comments</comments>
		<pubDate>Sun, 19 Jun 2011 10:09:58 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[patrones de diseño]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php4]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[php6]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=435</guid>
		<description><![CDATA[Una breve entrada para describir el patrón de diseño denominado Singleton y para contaros cómo podríamos implementarlo en PHP. Intención del patrón Garantiza que una clase sólo tenga una instancia y proporciona un punto de acceso global a ella. Problema a resolver Varios clientes distintos precisan referenciar a un mismo elemento y queremos asegurarnos de [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/vDNjyBeTVywVJvAkLJjPBXyjoa0/0/da"><img src="http://feedads.g.doubleclick.net/~a/vDNjyBeTVywVJvAkLJjPBXyjoa0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vDNjyBeTVywVJvAkLJjPBXyjoa0/1/da"><img src="http://feedads.g.doubleclick.net/~a/vDNjyBeTVywVJvAkLJjPBXyjoa0/1/di" border="0" ismap="true"></img></a></p><p>Una breve entrada para describir el patrón de diseño denominado <strong>Singleton </strong>y para contaros cómo podríamos implementarlo en <strong>PHP</strong>.</p>
<p><strong>Intención del patrón<br />
</strong></p>
<p>Garantiza que una clase sólo tenga una instancia y proporciona un punto de acceso global a ella.</p>
<p><strong>Problema a resolver<br />
</strong></p>
<p>Varios clientes distintos precisan referenciar a un mismo elemento y queremos asegurarnos de que no hay más de una instancia de ese elemento.</p>
<p><strong>Solución -&gt; Singleton<br />
</strong></p>
<p>Garantizaremos una única instancia.</p>
<p><span id="more-435"></span></p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> MiSingleton<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Contenedor de la instancia del singleton</span>
    <span style="color: #000000; font-weight: bold;">private</span> static <span style="color: #000088;">$instance</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Un constructor privado evita la creación de un nuevo objeto</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Construido!'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// método singleton</span>
    <span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> singleton<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$instance</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">__CLASS__</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$instance</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$instance</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// método de ejemplo</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> ladrar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Woof!'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Evita que el objeto se pueda clonar</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __clone<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">trigger_error</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Clone is not allowed.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">E_USER_ERROR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>¿Cómo obtengo una instancia de la clase y cómo uso sus métodos?</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #000088;">$objMiSingleton</span> <span style="color: #339933;">=</span> MiSingleton<span style="color: #339933;">::</span><span style="color: #004000;">singleton</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$objMiSingleton</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ladrar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/otros/singleton-en-php.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patrones de Diseño I : introducción</title>
		<link>http://yophpro.com/otros/patrones-de-diseno-introduccion.html</link>
		<comments>http://yophpro.com/otros/patrones-de-diseno-introduccion.html#comments</comments>
		<pubDate>Fri, 17 Jun 2011 09:45:42 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[patrones de diseño]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php4]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[smarty]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=431</guid>
		<description><![CDATA[Este es el primero de 5 post que tengo planeado hacer en el blog. Después de trabajar con muchos desarrolladores y equipos de trabajo en PHP me he dado cuenta que la gran mayoría de compañeros de profesión no saben que son los patrones de diseño. Debido a que a mí personalmente me parece esencial [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/nFwlJFvSmnS_ajU7W_aHnCHK-fo/0/da"><img src="http://feedads.g.doubleclick.net/~a/nFwlJFvSmnS_ajU7W_aHnCHK-fo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/nFwlJFvSmnS_ajU7W_aHnCHK-fo/1/da"><img src="http://feedads.g.doubleclick.net/~a/nFwlJFvSmnS_ajU7W_aHnCHK-fo/1/di" border="0" ismap="true"></img></a></p><p>Este es el primero de 5 post que tengo planeado hacer en el blog.</p>
<p>Después de trabajar con muchos desarrolladores y equipos de trabajo en PHP me he dado cuenta que la gran mayoría de compañeros de profesión no saben que son los <strong>patrones de diseño</strong>. Debido a que a mí personalmente me parece esencial para cualquier <strong>desarrollador Senior </strong>tener un buen manejo de estas <strong>herramientas </strong>he decidido hacer una serie de entradas sobre este tema. En este primer POST intentaré hablaros de tres puntos principalmente:</p>
<p><strong>1.- ¿Qué son los patrones de diseño?</strong></p>
<p><strong>2.- ¿Para que sirven los patrones de diseño?</strong></p>
<p><strong>3.-  ¿Que importancia tienen?</strong></p>
<h3><span id="more-431"></span>1.- ¿Qué son los patrones de diseño?</h3>
<p>Voy a hacer un copy-paste de la wikipedia porque creo que yo mismo no encontraré mejores palabras para definirlo :</p>
<p><em>&#8220;Los <strong>patrones de diseño</strong> son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.</em></p>
<p><em>Un patrón de diseño es una solución a un problema de diseño. Para que  una solución sea considerada un patrón debe poseer ciertas  características. Una de ellas es que debe haber comprobado su <strong>efectividad</strong> resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser <strong>reusable</strong>, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.&#8221;</em></p>
<p><strong>2.- ¿Para que sirven los patrones de diseño?</strong></p>
<p>Seguro que casi todos vosotros habéis usado el <strong>MVC </strong>(<strong>Modelo Vista Controlador</strong>) en más de una ocasión usando algún <strong>Framework </strong>o <strong>librería</strong>. ¿Os habéis dado cuenta de los fácil que es programar con este método una web? ¿Habéis observado lo límpio que queda el código y lo rápido que se programa? Pues bien el MVC no es más que un patrón de diseño que se adapta perfectamente a la programación web.</p>
<p>En general los objetivos de cualquier patrón de diseño los podemos resumir en los siguientes puntos:</p>
<ol>
<li>Aportar elementos reutilizables en el diseño de sistemas software.</li>
<li>Evitar la repetición de búsqueda de soluciones a problemas ya conocidos y ya solucionados anteriormente.</li>
<li>Definir un vocabulario común entre Analistas-Programadores.</li>
<li>Estandarizar el modo en que se realiza el Análisis estructural de la aplicación.</li>
<li>Facilitar el aprendizaje de las nuevas generaciones de programadores condensando conocimiento ya existente.</li>
</ol>
<p><strong>3.-  ¿Que importancia tienen?</strong></p>
<p>Saber de patrones de diseño te ayuda a tener un lenguaje  común con otros programadores.  Cuando te toque modificar un programa, el autor del código seguramente  tendrá que explicarte qué fue lo que hizo, cómo funciona su código y por  qué hizo cualquier cambio. Se puede demorar horas. Pero esa  conversación puede acortarse si te dice, aquí estoy utilizando tal o  cual patrón (por ejemplo: el patrón Factory). Serás tú el que ya conozcas los conceptos detrás de esa palabra y sabrás cómo fue diseñado el  programa.</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/otros/patrones-de-diseno-introduccion.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>T_PAAMAYIM_NEKUDOTAYIM php error</title>
		<link>http://yophpro.com/problema/t_paamayim_nekudotayim-php-error.html</link>
		<comments>http://yophpro.com/problema/t_paamayim_nekudotayim-php-error.html#comments</comments>
		<pubDate>Wed, 08 Jun 2011 13:15:18 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Problemas]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=428</guid>
		<description><![CDATA[Error Expecting T_PAAMAYIM_NEKUDOTAYIM ¿¿¡¡¡ unexpected T_PAAMAYIM_NEKUDOTAYIM !!!? WTF!!?!? ¿En qué estaban pensando los desarrolladores de php cuando inicializaron este error? Nadie lo sabe a ciencia cierta. Lo que si puedo deciros es lo que significa. Google me comenta que es una frase en Hebreo que significa : &#8220;dobles puntos&#8221; más o menos &#8230; Este error [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/8rGr34zKeIngyzY2QG1rTz5pdAk/0/da"><img src="http://feedads.g.doubleclick.net/~a/8rGr34zKeIngyzY2QG1rTz5pdAk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8rGr34zKeIngyzY2QG1rTz5pdAk/1/da"><img src="http://feedads.g.doubleclick.net/~a/8rGr34zKeIngyzY2QG1rTz5pdAk/1/di" border="0" ismap="true"></img></a></p><p><strong>Error Expecting T_PAAMAYIM_NEKUDOTAYIM </strong>¿¿¡¡¡ <strong>unexpected </strong><em>T_PAAMAYIM_NEKUDOTAYIM</em> !!!? WTF!!?!? ¿En qué estaban pensando los desarrolladores de php cuando inicializaron este error? Nadie lo sabe a ciencia cierta.</p>
<p>Lo que si puedo deciros es lo que significa. Google me comenta que es una frase en <strong>Hebreo </strong>que significa : &#8220;dobles puntos&#8221; más o menos &#8230; Este error solía aparecer cuando intentas llamar a un método o propiedad <strong><em>static </em> </strong>con la <strong>flecha </strong><em>&#8216;-&gt;&#8217; </em>en lugar de los <em>&#8216;::&#8217; . </em>Si te está ocurriendo lo más probable es que en la línea donde te señala este error tengas un fallo de este tipo. También pasa si estás intentando evaluar una <strong>CONSTANTE</strong> debido a un <strong>bug </strong>registrado de <strong>php</strong>&#8230; pongo un <strong>código de ejemplo</strong> para que me entendais mejor :</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'EXAMPLE'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span>EXAMPLE<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// some code here</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Si te está ocurriendo esto podrías valorar el usar este otro código en su lugar:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'EXAMPLE'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>EXAMPLE<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// some code here</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/problema/t_paamayim_nekudotayim-php-error.html/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Transacciones mysql con php</title>
		<link>http://yophpro.com/mysql/transacciones-mysql-con-php.html</link>
		<comments>http://yophpro.com/mysql/transacciones-mysql-con-php.html#comments</comments>
		<pubDate>Tue, 07 Jun 2011 17:30:45 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[noticias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php4]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=418</guid>
		<description><![CDATA[La transacciones en mysql ¿qué son? ¿cómo se utilizan? ¿para qué sirven?. Estas son las cuestiones que voy a intentar explicar de la manera más simple posible. ¿Qué son las transacciones? Una transacción es un conjunto de operaciones SQL que se ejecutan como un único bloque, es decir, si falla una operación fallan todas. Es [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/I4LmIbSsfCB5sbAZSfANaX59N8U/0/da"><img src="http://feedads.g.doubleclick.net/~a/I4LmIbSsfCB5sbAZSfANaX59N8U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/I4LmIbSsfCB5sbAZSfANaX59N8U/1/da"><img src="http://feedads.g.doubleclick.net/~a/I4LmIbSsfCB5sbAZSfANaX59N8U/1/di" border="0" ismap="true"></img></a></p><p><a href="http://yophpro.com/wp-content/uploads/2011/06/logo-mysql-e1307443218739.jpg"><img class="aligncenter size-medium wp-image-419" title="logo mysql" src="http://yophpro.com/wp-content/uploads/2011/06/logo-mysql-300x218.jpg" alt="logo mysql" width="300" height="218" /></a></p>
<p>La <strong>transacciones </strong>en mysql <strong>¿qué son? ¿cómo se utilizan? ¿para qué sirven?.</strong> Estas son las cuestiones que voy a intentar explicar de la manera más simple posible.</p>
<p><strong>¿Qué son las transacciones?</strong><br />
Una <strong>transacción </strong>es un conjunto de <strong>operaciones SQL</strong> que se ejecutan como un único bloque, es decir, si falla una operación fallan todas. Es una unidad única de trabajo. Si una transacción tiene éxito, todas las modificaciones de los datos realizadas durante la transacción se confirman y se convierten en una parte permanente de la base de datos. Si una transacción encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos.</p>
<p><strong>¿Para qué sirven?</strong><span id="more-418"></span><br />
Un <strong>ejemplo </strong>de <strong>transacción </strong>puede ser una transferencia bancaria&#8230; Quitamos saldo a una cuenta y lo añadimos en otra. Si no somos capaces de abonar el dinero en la cuenta de destino, no podemos quitarlo de la cuenta de origen. Como este <strong>ejemplo </strong>seguro que en vuestra carrera os cruzareis con otros muchos similares en los que tener nociones de cómo manejar esta herramienta os puede resultar realmente útil.</p>
<p>Por último pero no menos importante vamos a ver cómo podemos utilizar esta herramienta con el lenguaje favorito de este blog &#8230; <strong>PHP</strong></p>
<p><strong>¿Cómo se utilizan con PHP?</strong></p>
<p>En principio <strong>php </strong>no realiza ninguna función dentro de las transacciones. La única cuestión real que tiene importancia dentro de tu código php es que realice las <strong>querys </strong>de manera ordenada hacia <strong>MySQL</strong>.  Para trabajar con transacciones con <strong>php </strong>y <strong>mysql </strong>es importante tener en cuenta:</p>
<ol>
<li>Que tu base de datos tenga soporte para base de datos <strong>innodb.<br />
</strong></li>
<li>Las transacciones sólo son soportadas sólo para las  tablas tipo <strong>innodb</strong>, así que necesitamos crear las tablas o modificarlas  con éste tipo. Ante la pregunta &#8230; ¿Cómo me aseguro que mis tablas sean innodb? Ejecutando la siguiente query en tu base de datos : ALTER TABLE tutabla ENGINE = INNODB;</li>
</ol>
<p>Y ahora un ejemplo básico con código php<strong><br />
</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php
<span style="color: #000088;">$servidor</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;TuHost&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$base_de_datos</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;TuBaseDeDatos&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$usuario</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;TuUsuario&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pass</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;TuPassword&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$dbh</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$servidor</span><span style="color: #339933;">,</span><span style="color: #000088;">$usuario</span><span style="color: #339933;">,</span><span style="color: #000088;">$pass</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$base_de_datos</span><span style="color: #339933;">,</span><span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SET AUTOCOMMIT=0;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;BEGIN;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM primera; &quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INSERT INTO `segunda` (`id`, `descripcion`) VALUES ('', 'Otro
valor');&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INSERT INTO `primera` (`id`, `ripcion`) VALUES (´´, ´Otro valor´);&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$resultado</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'OK'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;COMMIT&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'MAL'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'
'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'SE EJECUTA EL ROOLBACK'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'
'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;ROLLBACK;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultado</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dbh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre>
</div>
</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/mysql/transacciones-mysql-con-php.html/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Configuración básica de Smarty para empezar a trabajar</title>
		<link>http://yophpro.com/librerias/configuracion-basica-de-smarty-para-empezar-a-trabajar.html</link>
		<comments>http://yophpro.com/librerias/configuracion-basica-de-smarty-para-empezar-a-trabajar.html#comments</comments>
		<pubDate>Mon, 06 Jun 2011 13:00:00 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Librerias]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[motor de plantillas]]></category>
		<category><![CDATA[php4]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[php6]]></category>
		<category><![CDATA[plantillas]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[tpl]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=405</guid>
		<description><![CDATA[Hoy un post corto, para los que empiecen a utilizar smarty como motor de plantillas. Este es un pequeño ejemplo de cómo configurar de la manera más simple posible esta librería. En primer lugar tenemos que tener la librería Smarty descargada, puedes conseguirla mediante el siguiente link : http://www.smarty.net/download En segundo lugar debemos tener una [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/mg7jtb0vJrAKytwnaLIfmbQ0cYs/0/da"><img src="http://feedads.g.doubleclick.net/~a/mg7jtb0vJrAKytwnaLIfmbQ0cYs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mg7jtb0vJrAKytwnaLIfmbQ0cYs/1/da"><img src="http://feedads.g.doubleclick.net/~a/mg7jtb0vJrAKytwnaLIfmbQ0cYs/1/di" border="0" ismap="true"></img></a></p><p>Hoy un post corto, para los que empiecen a utilizar <strong>smarty </strong>como <strong>motor de plantillas</strong>. Este es un pequeño ejemplo de cómo configurar de la manera más simple posible esta <strong>librería</strong>.</p>
<p><strong>En primer lugar</strong> tenemos que tener la librería Smarty descargada, puedes conseguirla mediante el siguiente link : <a href="http://www.smarty.net/download" rel="external nofollow">http://www.smarty.net/download</a></p>
<p><strong>En segundo lugar</strong> debemos tener una carpeta dónde poner nuestros templates. La extensión de estos templates puede ser la que tu prefieras (html, htm, tpl, txt etc &#8230; ). Yo siempre prefiero que la extensión de mis plantillas sea tpl para diferenciarlas bien de la maquetación sin <strong>smarty</strong>. El nombre de la carpeta dónde están mis templates suele ser en mis desarrollos  <em>/templates/</em> . En esta carpeta generaré un archivo de ejemplo que llamaré ejemplo.tpl con el siguiente contenido:<br />
<span id="more-405"></span></p>
<div class="wp_syntax">
<div class="code">
<pre class="html" style="font-family:monospace;">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Documento sin título&lt;/title&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
&nbsp;
Este es un template de prueba
&lt;h1&gt;Esta es una variable de smarty que hemos inicializado mediante php {$smarty_rules}&lt;/h1&gt;
&nbsp;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
</div>
<p>&nbsp;</p>
<p><strong>En tercer lugar</strong> vamos a crear una carperta para <strong>smarty </strong>dónde la <strong>librería </strong>generará archivos precompilados de plantillas. Yo siempre suelo llamarla <em>/templates_c/</em></p>
<p>Bueno recopilando en nuestra raiz tenemos</p>
<p>/smarty/</p>
<p>/templates/</p>
<p style="padding-left: 30px;">ejemplo.tpl</p>
<p>/templates_c/</p>
<p>Ahora voy a crear mi primer <strong>archivo php</strong> que use <strong>smarty </strong>para exportar el <strong>html </strong>de la <strong>plantilla </strong>de ejemplo:<br />
&nbsp;</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smarty/Smarty.class.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$smarty</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//suelo denominar a smarty como única variable global en mis desarrollos</span>
&nbsp;
<span style="color: #000088;">$smarty</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Smarty<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">template_dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'templates/'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">compile_dir</span> <span style="color: #339933;">=</span>  <span style="color: #0000ff;">'templates_c/'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smarty_rules'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Variable de smarty que vamos a inicializar con esta cadena de texto'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ejemplo.tpl'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>&nbsp;<br />
Así es como se realiza una configuración muy básica de Smarty para comenzar a trabajar con el motor de plantillas. Si os interesa esta librería os aconsejo que paseis por la web oficial para ver todas las ventajas y posibilidades de la librería. Podremos pasar objetos y arrays a la plantilla así como realizar bucles y condicionales.<br />
<em><strong><br />
<blockquote>Con smarty tu plantilla se vuelve inteligente de tal manera que puedes separar la lógica de la aplicación de la lógica de la visualización.</p></blockquote>
<p></strong></em><br /></p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/librerias/configuracion-basica-de-smarty-para-empezar-a-trabajar.html/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Subir imágenes en php</title>
		<link>http://yophpro.com/problema/subir-imagenes-en-php.html</link>
		<comments>http://yophpro.com/problema/subir-imagenes-en-php.html#comments</comments>
		<pubDate>Wed, 01 Jun 2011 12:09:54 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[Problemas]]></category>
		<category><![CDATA[bajar]]></category>
		<category><![CDATA[blog de php]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[php4]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[php6]]></category>
		<category><![CDATA[SEO Smart Links]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=400</guid>
		<description><![CDATA[Hoy me ha ocurrido algo que me ha puesto muy triste. Tenía que hacer un pequeño y rápido desarrollo para subir imágenes y se me ha ocurrido buscar en google algo que ya estuviera hecho para cortar y pegar. En el primer resultado de búsqueda me encontré un blog de SEO. Busco &#8220;subir imágenes en [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/KTHtRPjYPSwEfcRU0j_QLLTAiK4/0/da"><img src="http://feedads.g.doubleclick.net/~a/KTHtRPjYPSwEfcRU0j_QLLTAiK4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KTHtRPjYPSwEfcRU0j_QLLTAiK4/1/da"><img src="http://feedads.g.doubleclick.net/~a/KTHtRPjYPSwEfcRU0j_QLLTAiK4/1/di" border="0" ismap="true"></img></a></p><p>Hoy me ha ocurrido algo que me ha puesto muy triste. Tenía que hacer un pequeño y rápido desarrollo para subir imágenes y se me ha ocurrido buscar en google algo que ya estuviera hecho para cortar y pegar. En el primer resultado de búsqueda me encontré un blog de SEO. Busco &#8220;subir imágenes en php&#8221; y lo primero que me aparece es ¿un blog de SEO?. Indignado, entré en el blog y para colmo la función que tenía en el post estaba mal hecha, obsoleta y fallaba. Hoy he decidido hacer este POST para al menos intentar pujar por ese primer puesto de google con la búsqueda &#8220;subir imágenes en php&#8221; y aportar a la comunidad algo útil para cortar pegar.</p>
<h3>Subir imágenes en php</h3>
<p>No leais este párrafo porque voy a decir unas cuantas veces más &#8220;subir imágenes en php&#8221; para ver si me puedo posicionar mejor:</p>
<p>Me encanta subir imágenes en php, sé cómo subir imágenes en php, imágenes y php. Todo lo que necesitas para subir imágenes en php. No hay cosa que me guste más que las imágenes y subirlas sin ningún pudor en php. Subo imágenes en php y me divierto. He subido una imágen en php y me gusta. Subo imágenes luego existo. Todo lo que necesitas saber acerca de subir imágenes en php. La vida se ve de otra manera al subir una imágen en php. Me encanta subir imágenes en php, sé cómo subir imágenes en php, imágenes y php. Todo lo que necesitas para subir imágenes en php. No hay cosa que me guste más que las imágenes y subirlas sin ningún pudor en php. Subo imágenes en php y me divierto. He subido una imágen en php y me gusta. Subo imágenes luego existo. Todo lo que necesitas saber acerca de subir imágenes en php. La vida se ve de otra manera al subir una imágen en php.</p>
<p>Voy a usar una función muy fácil para subir nuestras imágenes que he hecho especialmente para vosotros:</p>
<p><span id="more-400"></span></p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
     * upload_image()
     *
     * Sube una imagen al servidor  al directorio especificado teniendo el Atributo 'Name' del campo archivo.
     *
     * @param string $destination_dir Directorio de destino dónde queremos dejar el archivo
     * @param string $name_media_field Atributo 'Name' del campo archivo
     * @return boolean
     */</span>
    <span style="color: #000000; font-weight: bold;">function</span> upload_image<span style="color: #009900;">&#40;</span><span style="color: #000088;">$destination_dir</span><span style="color: #339933;">,</span><span style="color: #000088;">$name_media_field</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$tmp_name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$name_media_field</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">//si hemos enviado un directorio que existe realmente y hemos subido el archivo    </span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$destination_dir</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #990000;">is_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp_name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$img_file</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$name_media_field</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">;</span>
            <span style="color: #000088;">$img_type</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$name_media_field</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">echo</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
            <span style="color: #666666; font-style: italic;">//¿es una imágen realmente?           </span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img_type</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;gif&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img_type</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;jpeg&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img_type</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;jpg&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$img_type</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;png&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">//¿Tenemos permisos para subir la imágen?</span>
                <span style="color: #b1b100;">echo</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp_name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$destination_dir</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$img_file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #666666; font-style: italic;">//si llegamos hasta aquí es que algo ha fallado</span>
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #666666; font-style: italic;">//end function</span></pre>
</div>
</div>
<p>Este es un ejemplo de formulario html &#8230;</p>
<div class="wp_syntax">
<div class="code">
<pre class="html" style="font-family:monospace;">&lt;form id=&quot;form1&quot; enctype=&quot;multipart/form-data&quot; method=&quot;post&quot;&gt;
	  &lt;label&gt;Imagen
		&lt;input id=&quot;uploadImage&quot; name=&quot;uploadImage&quot; type=&quot;file&quot; /&gt;
	  &lt;/label&gt;
	&lt;input id=&quot;enviar&quot; name=&quot;enviar&quot; type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt;
&lt;/form&gt; </pre>
</div>
</div>
<p>Ahora un ejemplo de llamada a la function &#8230;</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span>upload_image<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tudirectorio'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'uploadImage'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>Espero que a alguien le resulte útil. Sólo espero que ese blog de SEO que ha arrancado el primer puesto de google en las keywords &#8220;subir imágenes en php&#8221; pueda ser sustituido por algo que sea realmente útil pronto</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/problema/subir-imagenes-en-php.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Solución Error 404 wp-admin/post.php WordPress al guardar actualizar blog</title>
		<link>http://yophpro.com/cms/solucion-error-404-wordpress-guardar-actualizar.html</link>
		<comments>http://yophpro.com/cms/solucion-error-404-wordpress-guardar-actualizar.html#comments</comments>
		<pubDate>Sun, 29 May 2011 10:42:54 +0000</pubDate>
		<dc:creator>Garretus</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Problemas]]></category>

		<guid isPermaLink="false">http://yophpro.com/?p=385</guid>
		<description><![CDATA[Hoy os traigo una solución que encontré en google a un problema extraño que me venía pasando en WordPress desde hace unos días. Cada vez que intentaba actualizar, guardar o modificar un post, aparecía un error 404. No se guardaba, ni se actualizaba, ni se creaba. Se quedaba en la página wp-admin/post.php con un error [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/5-xwJVv-kphLAZR70OjAiQmuLQ8/0/da"><img src="http://feedads.g.doubleclick.net/~a/5-xwJVv-kphLAZR70OjAiQmuLQ8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5-xwJVv-kphLAZR70OjAiQmuLQ8/1/da"><img src="http://feedads.g.doubleclick.net/~a/5-xwJVv-kphLAZR70OjAiQmuLQ8/1/di" border="0" ismap="true"></img></a></p><p><a href="http://yophpro.com/wp-content/uploads/2011/03/images.jpg"><img class="aligncenter size-full wp-image-196" title="cms wordpress" src="http://yophpro.com/wp-content/uploads/2011/03/images.jpg" alt="logo wordpress" width="210" height="241" /></a>Hoy os traigo una <strong>solución </strong>que encontré en google a un <strong>problema </strong>extraño que me venía pasando en WordPress desde hace unos días. Cada vez que intentaba <strong>actualizar, guardar o modificar</strong> un post, aparecía un<strong> error 404</strong>. No se guardaba, ni se actualizaba, ni se creaba. Se quedaba en la página <strong>wp-admin/post.php </strong>con un <strong>error 404</strong>.<br />
La solución es tan fácil como subir un archivo .htaccess a la carpeta donde tengas el administrador de <strong>WordPress</strong>. Por defecto esta carpeta es<strong> wp-admin</strong>/<br />
El archivo .htaccess debe tener las siguientes lineas:</p>
<p>&lt;IfModule mod_security.c&gt;<br />
SecFilterInheritance Off<br />
&lt;/IfModule&gt;</p>
<p>también puedes descargarlo desde <a href="http://yophpro.com/wp-content/uploads/2011/05/htaccess.zip">htaccess problema worpress</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yophpro.com/cms/solucion-error-404-wordpress-guardar-actualizar.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

