<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michoacano&#039;s Blog &#187; PHP</title>
	<atom:link href="http://michoacano.com.mx/category/programacion/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://michoacano.com.mx</link>
	<description>Blog de un mundialmente conocido habitante del estado de Michoacán. Estudiante del Tecnológico de Morelia, nerd, geek, cinéfilo, metalero, ateo y algo de activista.</description>
	<lastBuildDate>Tue, 15 May 2012 22:50: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>
		<item>
		<title>Solución al error de WordPress en paginación de categorias y autor</title>
		<link>http://michoacano.com.mx/solucion-al-error-de-wordpress-en-paginacion-de-categorias-y-autor/</link>
		<comments>http://michoacano.com.mx/solucion-al-error-de-wordpress-en-paginacion-de-categorias-y-autor/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 12:50:54 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[trucos Wordpress]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=2504</guid>
		<description><![CDATA[Existe un error de WordPress donde la paginación no funciona en permalinks que lleven la siguiente estructura. tublog.com/%category%/%postname%/ tublog.com/%author%/%postname%/ Cuando vas a la cualquier página que no sea la primera recibes error 404. Afortunadamente puedes solucionar el error puedes pegar el siguiente código en el archivo functions.php de tu theme. &#160; function remove_page_from_query_string&#40;$query_string&#41; &#123; if [...]]]></description>
			<content:encoded><![CDATA[<p>Existe un error de WordPress donde la paginación no funciona en permalinks que lleven la siguiente estructura.  </p>
<pre>tublog.com/%category%/%postname%/
tublog.com/%author%/%postname%/</pre>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Cuando vas a la cualquier página que no sea la primera recibes error <span style="color: #cc66cc;">404</span><span style="color: #339933;">.</span> Afortunadamente puedes solucionar el error puedes pegar el siguiente código en el archivo functions<span style="color: #339933;">.</span>php de tu theme<span style="color: #339933;">.</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> remove_page_from_query_string<span style="color: #009900;">&#40;</span><span style="color: #000088;">$query_string</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: #000088;">$query_string</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: #0000ff;">'page'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query_string</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'page'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query_string</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// 'page' in the query_string looks like '/2', so split it out</span>
        <span style="color: #990000;">list</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$delim</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page_index</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">split</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$query_string</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'page'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$query_string</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'paged'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$page_index</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$query_string</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'request'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'remove_page_from_query_string'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/solucion-al-error-de-wordpress-en-paginacion-de-categorias-y-autor/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ejecutar PHP en Google App Engine</title>
		<link>http://michoacano.com.mx/ejecutar-php-en-google-app-engine/</link>
		<comments>http://michoacano.com.mx/ejecutar-php-en-google-app-engine/#comments</comments>
		<pubDate>Thu, 14 May 2009 13:47:28 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1630</guid>
		<description><![CDATA[Google App Engine te permite ocupar el procesamiento de los Servers de google para tus aplicaciones. Pero solo esta limitado a pocos lenguajes como Java sin embargo puedes usar Quercus, una implementación Java de PHP. En el siguiente post puedes encontrar la explicación: Run PHP on the Google App Engine Via: sentidoweb.com]]></description>
			<content:encoded><![CDATA[<p>Google App Engine te permite ocupar el procesamiento de los Servers de google para tus aplicaciones. Pero solo esta limitado a pocos lenguajes como Java sin embargo puedes usar <a href="http://www.caucho.com/resin-3.0/quercus/" target="_blank">Quercus</a>, una implementación Java de PHP.</p>
<p>En el siguiente post puedes encontrar la explicación: <a href="http://www.webdigi.co.uk/blog/2009/run-php-on-the-google-app-engine/" target="_blank">Run PHP on the Google App Engine</a></p>
<p>Via: <a href="http://www.sentidoweb.com/">sentidoweb.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/ejecutar-php-en-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clase PHP para importar contactos MSN, GMAIL, WINDOWS LIVE..</title>
		<link>http://michoacano.com.mx/clase-php-para-importar-contactos-msn-gmail-windows-live/</link>
		<comments>http://michoacano.com.mx/clase-php-para-importar-contactos-msn-gmail-windows-live/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 18:19:29 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[CONTACTOS]]></category>
		<category><![CDATA[GMAIL]]></category>
		<category><![CDATA[MSN]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1543</guid>
		<description><![CDATA[Muchas redes sociales hoy permiten invitar a tus amigos mediante el acceso a tu cuenta para enviarles invitaciones a todos tus contactos. Lamentablemente también existen muchos otros sitios que solo se dedican a dar un supuesto servicio como &#8220;QUIEN TE BLOQUEO DEL MSN&#8221;, para obtener un beneficio propio. También es culpa de la idiota de [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas redes sociales hoy permiten invitar a tus amigos mediante el acceso a tu cuenta para enviarles invitaciones a todos tus contactos. </p>
<p>Lamentablemente también existen muchos otros sitios que solo se dedican a dar un supuesto servicio como &#8220;QUIEN TE BLOQUEO DEL MSN&#8221;, para obtener un beneficio propio. También es culpa de la idiota de la gente,  no entiendo para que quieres saber quien te bloqueo.</p>
<pre language="PHP">
include('openinviter.php');
$inviter = new OpenInviter();
$inviter->startPlugin('gmail');
$inviter->login("username", "password");

$contacts = $inviter->getMyContacts();
foreach ($contacts as $email => $name) {
    echo $name . "  - " . $email . "";
}
$inviter->stopPlugin(true);
$inviter->logout();
</pre>
<p>El uso es muy sencillo. No pidas más. </p>
<p><a href="http://openinviter.com/">Openinviter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/clase-php-para-importar-contactos-msn-gmail-windows-live/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Clase PHP para pagos de Paypal</title>
		<link>http://michoacano.com.mx/clase-php-para-pagos-de-paypal/</link>
		<comments>http://michoacano.com.mx/clase-php-para-pagos-de-paypal/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 18:22:22 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[DESARROLLO WEB]]></category>
		<category><![CDATA[paypal]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1542</guid>
		<description><![CDATA[Si necesitas crear aplicaciones con pagos mediante Paypal y no te quieres romper la cabeza viendo su documentación o creando botones o herramientas que son muy tardadas. Ve la siguiente clase muy fácil de utilizar. &#160; // Include the paypal library include_once &#40;'Paypal.php'&#41;; &#160; // Create an instance of the paypal library $myPaypal = new [...]]]></description>
			<content:encoded><![CDATA[<p>Si necesitas crear aplicaciones con pagos mediante <strong>Paypal</strong> y no te quieres romper la cabeza viendo su documentación  o creando botones o herramientas que son muy tardadas. Ve la siguiente clase muy fácil de utilizar.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #666666; font-style: italic;">// Include the paypal library</span>
<span style="color: #b1b100;">include_once</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Paypal.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Create an instance of the paypal library</span>
<span style="color: #000088;">$myPaypal</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Paypal<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Specify your paypal email</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'business'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'YOUR_PAYPAL_EMAIL'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Specify the currency</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'currency_code'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'USD'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Specify the url where paypal will send the user on success/failure</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'return'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://YOUR_HOST/payment/paypal_success.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cancel_return'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://YOUR_HOST/payment/paypal_failure.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Specify the url where paypal will send the IPN</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'notify_url'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://YOUR_HOST/payment/paypal_ipn.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Specify the product information</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'item_name'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'T-Shirt'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'amount'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'9.99'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'item_number'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'001'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Specify any custom value</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'custom'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'muri-khao'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Enable test mode if needed</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">enableTestMode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Let's start the train!</span>
<span style="color: #000088;">$myPaypal</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">submitPayment</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><a href="http://www.phpfour.com/blog/2009/02/php-payment-gateway-library-for-paypal-authorizenet-and-2checkout/" rel="nofollow" ><strong>Libreria PHP PAYMENT LIBRARY</strong></a> | Via <a href="http://sentidoweb.com" rel="nofollow" >sentidoweb.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/clase-php-para-pagos-de-paypal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Errores de PHP</title>
		<link>http://michoacano.com.mx/errores-de-php/</link>
		<comments>http://michoacano.com.mx/errores-de-php/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 19:00:14 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1445</guid>
		<description><![CDATA[Y tu estas cometiendo estos errores de PHP?]]></description>
			<content:encoded><![CDATA[<p>Y tu estas cometiendo estos <a rel="nofollow" href="http://nettuts.com/articles/are-you-making-these-10-php-mistakes/">errores de PHP</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/errores-de-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Elegant themes: La mejor opción para WordPress</title>
		<link>http://michoacano.com.mx/elegant-themes-la-mejor-opcion-para-wordpress/</link>
		<comments>http://michoacano.com.mx/elegant-themes-la-mejor-opcion-para-wordpress/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 06:54:02 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1261</guid>
		<description><![CDATA[Hace algunas semanas compre la licencia para tener acceso a los themes de ElegantThemes , sin duda la mejor opción para themes premium. El precio es una ganga, 19.99 por 1 año entero a toda la colección de temas existentes y los que estén por crear. Yo la compre sin dudar, los temas son muy [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.elegantthemes.com/affiliates/idevaffiliate.php?id=829_0_1_7" target="_blank"><img class="aligncenter" src="http://www.elegantthemes.com/affiliates/banners/468x60.gif" border="0" alt="" width="468" height="60" /></a></p>
<p>Hace algunas semanas compre la licencia para tener acceso a los themes de <a href="http://www.elegantthemes.com/affiliates/idevaffiliate.php?id=829">ElegantThemes</a> , sin duda la mejor opción para themes premium.</p>
<p>El precio es una ganga, 19.99 por 1 año entero a toda la colección de temas existentes y los que estén por crear. Yo la compre sin dudar, los temas son muy lindos y elegantes.  Lo mejor de todo es que son  para distintos tipos de sitios, revistas, blogging, video, juegos, etc. Por menos de 20 dolares al año es una oferta que pocas veces se ve en Internet.</p>
<p><strong>En cuanto a código.</strong></p>
<p>La mayoría de los temas están muy bien estructurados. El código es limpio y muy fácil de modificar e instalar. En mi caso he modificado 5 temas sin ningún problema, aunque el autor tiene su propia manera de estructurar no es difícil darte cuenta de su estilo.  <strong></strong></p>
<p><strong>En cuanto a la galería de temas.</strong></p>
<p><strong></strong> Los temas la mayoría tienden a tener un index diferente a la mayoría de los blogs. Se concentra mucho en poner thumbs en cada post. Esto puede ser un fastidio o no(depende de lo que tengas en mente), afortunadamente el autor no te obliga hacerlo. Los mejores temas traen una opción para quitar estas características.</p>
<p> Conclusión: Sin duda una gran forma de tener grandes temas de calidad por un precio muy bajo, no solo te limitas a los temas que ya existen, si no el usuario en promedio agrega 2 por mes.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/elegant-themes-la-mejor-opcion-para-wordpress/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Full Height con JQUERY</title>
		<link>http://michoacano.com.mx/full-height-con-jquery/</link>
		<comments>http://michoacano.com.mx/full-height-con-jquery/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 01:01:41 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1190</guid>
		<description><![CDATA[Tuve un problema, en una aplicación que estoy desarrollando, donde necesitaba que una capa tuviera la altura restante de la pantalla. Jquery me hizo la vida fácil, dado que mi aplicación es enteramente JS, puedo darme el lujo de usar este truco. var top_header=200px; $&#40;window&#41;.resize&#40;function&#40;&#41; &#123; $&#40;&#34;#content&#34;&#41;.css&#40;'height', $&#40;window&#41;.height&#40;&#41;-top_header&#41;; &#125;&#41;; Este codígo redimensiona la altura de [...]]]></description>
			<content:encoded><![CDATA[<p>Tuve un problema,  en una aplicación que estoy desarrollando, donde necesitaba que una capa tuviera la altura restante de la pantalla.  Jquery me hizo la vida fácil, dado que mi aplicación  es enteramente JS, puedo darme el lujo de usar este truco.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> top_header<span style="color: #339933;">=</span>200px<span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>resize<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#content&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>css<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'height'</span><span style="color: #339933;">,</span> $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>height<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>top_header<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Este codígo redimensiona la altura de un div con la altura de la pantalla restándole unos px, que podrían ser un header o alguna otra cosa.</p>
<p>Aunque creo que en algunos navegadores no se invoca el evento de resize una vez que se carga la página. Por lo que lo ideal seria ponerlo en el <strong>.ready()</strong>.</p>
<p>Para quien le sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/full-height-con-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP: Includes como funciones</title>
		<link>http://michoacano.com.mx/php-includes-como-funciones/</link>
		<comments>http://michoacano.com.mx/php-includes-como-funciones/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 14:53:15 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=1078</guid>
		<description><![CDATA[Podemos usar un archivo. return array&#40; 'hostname' =&#62; 'localhost', 'database' =&#62; 'test', 'username' =&#62; 'test', 'password' =&#62; 'test', &#41;; Y al incluirlo a otro podemos hacer que regrese el valor. $config = include 'config.php'; Yo tampoco sabía &#8211;> Devolver Includes como funciones]]></description>
			<content:encoded><![CDATA[<p>Podemos usar un archivo.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> 
  <span style="color: #0000ff;">'hostname'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'localhost'</span><span style="color: #339933;">,</span> 
  <span style="color: #0000ff;">'database'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test'</span><span style="color: #339933;">,</span> 
  <span style="color: #0000ff;">'username'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test'</span><span style="color: #339933;">,</span> 
  <span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test'</span><span style="color: #339933;">,</span> 
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Y al incluirlo a otro podemos hacer que regrese el valor.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> <span style="color: #b1b100;">include</span> <span style="color: #0000ff;">'config.php'</span><span style="color: #339933;">;</span></pre></div></div>

<p>Yo tampoco sabía &#8211;> <a href="http://sentidoweb.com/2008/11/28/devolver-valores-en-includes-de-php.php">Devolver Includes como funciones</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/php-includes-como-funciones/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Excepciones en PHP al estilo java</title>
		<link>http://michoacano.com.mx/excepciones-en-php-al-estilo-java/</link>
		<comments>http://michoacano.com.mx/excepciones-en-php-al-estilo-java/#comments</comments>
		<pubDate>Thu, 01 May 2008 17:52:11 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[excepciones]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/?p=680</guid>
		<description><![CDATA[Un truco interesante para emular las excepciones de java en php. set_error_handler('error_handler'); function error_handler($errno, $errstr, $errfile, $errline) { if (4096 == $errno) throw new Exception($errstr); return false; } Y después: try { // Operación que produce error } catch (ErrorException $e) { // Tratar el error }]]></description>
			<content:encoded><![CDATA[<p>Un truco interesante para emular las excepciones de java en php.<br />
<code lang="php"><br />
set_error_handler('error_handler');<br />
function error_handler($errno, $errstr, $errfile, $errline) {<br />
  if (4096 == $errno) throw new Exception($errstr);<br />
  return false;<br />
}</code></p>
<p>Y después:</p>
<p><code lang="php">try {<br />
  // Operación que produce error<br />
} catch (ErrorException $e) {<br />
  // Tratar el error<br />
}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/excepciones-en-php-al-estilo-java/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Petición POST en PHP</title>
		<link>http://michoacano.com.mx/peticion-post-en-php/</link>
		<comments>http://michoacano.com.mx/peticion-post-en-php/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 23:22:27 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/peticion-post-en-php/</guid>
		<description><![CDATA[A raíz de un post anterior sobre http testing, alguien me pregunto como hacer una petición POST en php. Existen dos formas, una es usando CURL. Y la más bonita es con sockets.]]></description>
			<content:encoded><![CDATA[<p>A raíz de un post anterior sobre<a href="http://michoacano.com.mx/http-testing-con-firefox/"> http testing</a>,  alguien me pregunto como hacer una petición POST en php.</p>
<p>Existen dos formas, una es usando <strong>CURL</strong>.</p>
<p><code lang="PHP"><br />
<?php<br />
$ch = curl_init('http://dominio.com/pagina.php');<br />
curl_setopt ($ch, CURLOPT_POST, 1);<br />
curl_setopt ($ch, CURLOPT_POSTFIELDS, "parametro1=valor1&#038;parametro2=valor2");<br />
curl_exec ($ch);<br />
curl_close ($ch);<br />
?><br />
</code></p>
<p>Y la más bonita es con<a href="http://pastebin.com/f7f667268"> sockets</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/peticion-post-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP vs JSP</title>
		<link>http://michoacano.com.mx/php-vs-jsp/</link>
		<comments>http://michoacano.com.mx/php-vs-jsp/#comments</comments>
		<pubDate>Sun, 02 Sep 2007 17:52:32 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnológico]]></category>

		<guid isPermaLink="false">http://michoacano.com.mx/php-vs-jsp/</guid>
		<description><![CDATA[Últimamente me he dado a la tarea de contestar una pregunta, ¿en que conviene programar mas? ¿en PHP o en JSP?. Claro que la pregunta siempre va a ser depende del proyecto. Muchos profes, incluso muchas empresas de Morelia usan JSP para desarrollar sus proyectos. Parece que java es la mejor opción para todos los [...]]]></description>
			<content:encoded><![CDATA[<p>Últimamente me he dado a la tarea de contestar una pregunta, <strong>¿en que conviene programar mas?</strong> ¿en PHP o en JSP?. Claro que la pregunta siempre va a ser  <em><strong>depende del proyecto.</strong></em> Muchos profes, incluso muchas empresas de Morelia usan JSP para desarrollar sus proyectos. Parece que java es la mejor opción para todos los casos, lo cual obviamente no es cierto, siempre depende&#8230;.</p>
<p>Entonces mi pregunta ya no es cual es mejor, si no por que conviene utilizar JSP en lugar de PHP en algún proyecto,  pero hasta ahora nadie me ha dado las respuestas claras.  Algunos dicen es que simplemente es mejor por que tienes la potencia de un lenguaje como JAVA para desarrollar aplicaciones Web, esto es cierto, pero también es cierto que raramente vas ocupar todo lo que haces como cuando programas una aplicación de escritorio, entonces esta ventaja en lugar de ayudarte podría frustrarte.</p>
<p>Yo programo en JAVA, java es un  buen lenguaje. Pero en JSP cambian algunas cosas que no me gustan nada. Un ejemplo los BEANS.</p>
<p>Supongamos que tienes en un archivo tu clase que hace cualquier cosa, esa clase necesitas incluirla en un archivo y crear un constructor y ejecutar un método.</p>
<p>PHP:</p>
<p><code lang="PHP"><br />
include "miclase.php";<br />
$clase= new miclase();<br />
$clase->;Metodo();</code></p>
<p>JSP:</p>
<p><code lang="JSP"><br />
<@page language="Java" import="miclase.jsp" ><br />
<jsp:usebean id="clase" class="paquete.miclase"><br />
<sp:setproperty name="clase" property="Metodo"><br />
</sp:setproperty><br />
</jsp:usebean><br />
</code></p>
<p>Yo me pregunto por que es así en JSP, no sé si hay otra manera pero esa es la que me encontré. Los beans no te dan mayor control en la aplicación, no entiendo el motivo de ellos, no sé el por que es así&#8230;. ¿alguien me lo podría explicar?.</p>
<p>Yo les quiero creer, creer que JSP puede ser mejor opción que PHP en la mayoría de los casos. Quiero escuchar razones validas, no simplemente por que es java.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/php-vs-jsp/feed/</wfw:commentRss>
		<slash:comments>94</slash:comments>
		</item>
		<item>
		<title>Empezando con CakePHP</title>
		<link>http://michoacano.com.mx/empezando-con-cakephp/</link>
		<comments>http://michoacano.com.mx/empezando-con-cakephp/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 23:14:13 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.michoacano.com.mx/2007/06/12/empezando-con-cakephp/</guid>
		<description><![CDATA[Ahora con la moda de los frameworks todo el mundo quiere utilizarlos para el desarrollo. Gnuget insiste e insiste que lo debo de probar que por fin me he animado. ¿Y Ruby on Rails?, parecía que iba hacer algo que revolucionaria el desarrollo web, pero no lo es por muchas razones(obvias). Es un framework, por [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora con la moda de los <strong>frameworks</strong> todo el mundo quiere utilizarlos para el desarrollo. <strong>Gnuget </strong>insiste e insiste que lo debo de probar que por fin me he animado.</p>
<p><strong>¿Y Ruby on Rails?</strong>, parecía que iba hacer algo que revolucionaria el desarrollo web, pero no lo es por muchas razones(obvias).</p>
<p><img src="http://www.michoacano.com.mx/wp-content/uploads/2007/06/cakephp.gif" title="cakephp.gif" alt="cakephp.gif" align="left" /></p>
<ul>
<li>Es un framework, por lo que &#8230; ¿Te limitas?</li>
<li>Su facilidad de uso complica el desarrollo, (como un visual basic de la web).</li>
<li>Sus problemas de<a href="http://mnm.uib.es/gallir/posts/2007/04/13/1050/"> carga en el servidor.</a></li>
<li>Su simpleza trae consigo los múltiples problemas de seguridad, como los que ha sufrido(y sufre)  <a href="http://twitter.com">twitter.com</a>.</li>
</ul>
<p>Siempre digo que no soy experto en esto, simplemente es como percibo las cosas. Pero pienso que para utilizar un <strong>framework</strong> primero deberias empezar por programar  desde abajo y entender al menos como funciona un lenguaje, asi le sacaras mas provecho a un framework conociendo como es que funciona PHP e incluso mejorarlo y adaptarlo a tus necesidades.</p>
<p>No es una buena opción para los principiantes, le quitaría lo divertido, que es   &#8220;aprender&#8221;. Además que seria malo depender de este, para desarrollar en <strong>PHP</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/empezando-con-cakephp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Validación PHP vs Javascript</title>
		<link>http://michoacano.com.mx/validacion-php-vs-javascript/</link>
		<comments>http://michoacano.com.mx/validacion-php-vs-javascript/#comments</comments>
		<pubDate>Sun, 03 Jun 2007 00:04:10 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.michoacano.com.mx/2007/06/03/validacion-php-vs-javascript/</guid>
		<description><![CDATA[Algunos prefieren Javascript otros prefieren PHP, los usuarios que tienen sentido común sabrán que esta ultima es indispensable en nuestros sistemas.Si&#8230;. es una tarea tediosa, yo cuando empiezo hacerla en alguna página es lo que mas me molesta(también soy flojo para crear clase xD ni conozco alguna). Todo esto lo digo por que en hola-tu.com [...]]]></description>
			<content:encoded><![CDATA[<p>Algunos prefieren <strong>Javascript</strong> otros prefieren <strong>PHP</strong>, los usuarios que tienen sentido común sabrán que esta ultima es indispensable en nuestros sistemas.<strong>Si&#8230;. es una tarea tediosa</strong>, yo cuando empiezo hacerla en alguna página  es lo que mas me molesta(también soy flojo para crear  clase xD ni conozco alguna).</p>
<p><img src="http://www.hola-tu.com/imagenes/interfaz/ind_logoTop.jpg" align="left" height="110" width="287" /> Todo esto lo digo por que en <a href="http://hola-tu.com">hola-tu.com</a> ahora que esta fuera de servicio parecería que no saben de esto, quizás por que son del <strong>Tec de Monterrey </strong>, quizás por otra razón, no lo sé(es muy probable la primera).</p>
<p>Les puedo asegurar que al menos el 30% de los mensajes que se envían desde este servicio, no se hacen a través de la página, y es que es tan fácil programar o encontrar una herramienta que lo haga, que ya no es necesario teclear <strong>hola-tu.com</strong> en tu navegador.</p>
<p>Se me hizo curioso algo, no entiendo para que hacen tanta validación <strong>Javascript</strong> e incluso <strong>PHP</strong> si al final la página que envía el mensaje no necesita ni siquiera una sesión, mas que una cookie que siempre es la misma en todos los casos y si no,  <strong>Javascript</strong> te lo saltas mediante algunas <a href="http://www.michoacano.com.mx/2007/03/25/utilizando-firefox-para-el-hacking-etico/" target="_blank">herramientas de firefox</a>.</p>
<p>Yo hice un sencillo <strong>Bot Msn</strong>, que se la pasa conectado y envía sms mediante <a href="http://hola-tu.com">hola-tu.com</a> solamente para amigos del Tec, también les pase a otros una funcion en PHP que lo hacia. Lo malo de esto es que según los dueños de <strong>hola-tu </strong> pagan por cada mensaje, y muchos de ellos ni siquiera se envían desde la página. Por lo que su modelo de <strong>negocio/publicidad</strong> se viene para abajo.</p>
<p>Yo me pregunto <strong>¿Lo sabrán?</strong> <strong>¿Se darán cuenta que existen tools que bombardean celulares hechas en Visual Basic?</strong> y que no es necesario entrar a la página para enviar los mensajes.</p>
<p>Es un proyecto joven lo sé, pero cuando algo funciona en grande, necesitamos hacer cosas que estén a su altura. Quizás no sea fácil, pero al menos no debería estar al alcance de cualquiera.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/validacion-php-vs-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Multi-threading en PHP y otra Botnet</title>
		<link>http://michoacano.com.mx/multi-threading-en-php-y-otra-botnet/</link>
		<comments>http://michoacano.com.mx/multi-threading-en-php-y-otra-botnet/#comments</comments>
		<pubDate>Sun, 13 May 2007 20:46:43 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.michoacano.com.mx/2007/05/13/multi-threading-en-php-y-otra-botnet/</guid>
		<description><![CDATA[Hace como 1 semana vi un ejemplo, o mas bien un intento para ¿Simular? hilos en PHP. Me parecio interesante y es por eso que se los comparto a todos ustedes. Lo primero que debemos de saber es que obviamente PHP no tiene una implementación para los threads, entonces lo que se hace es una [...]]]></description>
			<content:encoded><![CDATA[<p>Hace como 1 semana vi un ejemplo, o mas bien un intento para <strong>¿Simular?</strong> <strong>hilos</strong> en <strong>PHP</strong>. Me parecio interesante y es por eso que se los comparto a todos ustedes.</p>
<p>Lo primero que debemos de saber es que obviamente <strong>PHP</strong> no tiene una implementación para los <strong>threads</strong>, entonces lo que se hace es una truco para simularlo haciendo uso de la función <strong><a href="http://www.php.net/proc_open">proc_open</a>.</strong></p>
<p>La clase la pueden encontrar <a href="http://www.alternateinterior.com/2007/05/multi-threading-strategies-in-php.html">aquí</a> y el ejemplo de una implementación seria asi.</p>
<p><code>include ("Thread.php");<br />
$t2 = Thread::create("t2.php");<br />
$t3 = Thread::create("t3.php");<br />
$t4 = Thread::create("t4.php");<br />
$t5 = Thread::create("t5.php");<br />
while ($t2-&gt;isActive() || $t3-&gt;isActive() || $t4-&gt;isActive() || $t5-&gt;isActive()) {<br />
echo $t2-&gt;listen();<br />
echo $t3-&gt;listen();<br />
echo $t4-&gt;listen();<br />
echo $t5-&gt;listen();<br />
}<br />
$t2-&gt;close();<br />
$t3-&gt;close();<br />
$t4-&gt;close();<br />
$t5-&gt;close();<br />
echo "Main thread done\n";</code></p>
<p>No quiero hacer mucho énfasis en la clase, si quieren ver su implementación y como utilizarla vayan <a href="http://www.alternateinterior.com/2007/05/multi-threading-strategies-in-php.html">al link original</a>. Prefiero echarle mi imaginación y tratarle de sacar provecho&#8230;.<strong> ¿Para que se podría utilizar esta clase?</strong></p>
<p><strong>Botnet de php scripts:</strong> Obviamente siempre me voy por el lado malo de las cosas(pero no tan severo <a href="http://g30rg3x.com/">como otros</a> xD), hace poco observaba que en un foro de <strong>h4x0rs</strong> alguien mostraba un script en <strong>PHP</strong> para hacer una petición a una página y llamaba a los usuarios a subirlo a una gran cantidad de servidores para después ser llamados y efectuar un ataque <strong>DOS</strong>. Se me hizo interesante, el único problema que veia era como llamar a todos los scripts al mismo tiempo, o al menos en un tiempo razonable.  Si se utilizara este<strong> &#8220;truco&#8221;</strong> podrían hacerse muchas cosas Interesantes.</p>
<p>Mi idea es que el <strong>script principal</strong> mande llamar a otros cuatro  o cinco script mas&#8230;..y estos a otros cuatro o cinco script mas&#8230;&#8230;&#8230; asi unas cinco veces mas (<strong>WTF!</strong>). Gráficamente seria algo asi.</p>
<p style="text-align: center"><img src="http://www.michoacano.com.mx/wp-content/uploads/2007/05/botnet.jpg" alt="Botnet PHP scripts" /></p>
<p>Quizás la imagen ya le quito la poca seriedad que tenia este articulo, pero en fin espero que me haya podido explicar(.. y es lo que pude hacer).</p>
<p>La verdad no se si alguien lo haya hecho de otra manera, y también es el único ejemplo que se me ocurriría hacer con estos <strong>&#8220;Threads en PHP&#8221;</strong>, ya que el proceso siempre es el mismo cuando navegas, petición, visualización, parada&#8230; petición, visualización, parada&#8230; y lo que no se lo dejamos a <strong>AJAX</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/multi-threading-en-php-y-otra-botnet/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Las 20 aplicaciones PHP mas vulnerables</title>
		<link>http://michoacano.com.mx/las-20-aplicaciones-php-mas-vulnerables/</link>
		<comments>http://michoacano.com.mx/las-20-aplicaciones-php-mas-vulnerables/#comments</comments>
		<pubDate>Sat, 28 Apr 2007 02:30:45 +0000</pubDate>
		<dc:creator>julio</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.michoacano.com.mx/2007/04/28/las-20-aplicaciones-php-mas-vulnerables/</guid>
		<description><![CDATA[Ed Finkler, publico en su blog y gracias a los datos de National Vulnerability Database, las 2o aplicaciones mas vulneradas desde hace 1 año. Podemos ver en los primeros lugares a WordPress, no ha sido un buen año para este sistema, como g30rg3 y su post sobre los meses y meses de bugs en wordpress [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.funkatron.com/">Ed Finkler</a>, publico en su blog y gracias a los datos de  <a href="http://nvd.nist.gov/">National Vulnerability Database</a>, las <strong>2o aplicaciones mas vulneradas desde hace 1 año</strong>.</p>
<p><a href="http://www.michoacano.com.mx/wp-content/uploads/2007/04/php-top20-april-entries.png" title="php-top20-april-entries.png"><img src="http://www.michoacano.com.mx/wp-content/uploads/2007/04/php-top20-april-entries.miniatura.png" title="php-top20-april-entries.png" alt="php-top20-april-entries.png" align="left" /></a> Podemos ver en los primeros lugares a <strong>WordPress</strong>,  no ha sido un buen año para este sistema, como <a href="http://g30rg3x.com/2007/03/15/wordpress-y-su-al-parecer-mes-o-meses-de-bugs/">g30rg3 y su post sobre los meses y meses de bugs en wordpress</a> , todo esto surgió desde la  salida de la versión 2.0 que no lleva mucho tiempo, pero desde el inicio del 2007 <strong>WordPress</strong> le ha ido muy mal en muy pocos meses.</p>
<p>Solo falta seguir esperando y aunque prácticamente ya se solucionaron los principales, hay multitud de plugins que tienen muchos fallos que comprometen al sistema(es lo malo de tener un sistema tan accesible).</p>
<p>Link: <a href="http://blog.funkatron.com/archives/general/the-php-app-insecurity-top-20/">http://blog.funkatron.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michoacano.com.mx/las-20-aplicaciones-php-mas-vulnerables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

