<?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>Linux &#38;&#38; PHP @ NomikOS – BLOG &#187; PHP</title>
	<atom:link href="http://nomikos.info/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://nomikos.info</link>
	<description>Artículos y temas sobre programación web: Linux, PHP, jQuery, CodeIgniter/Kohana y mis trabajos en linea en RAC. Igor Parra Bastias – NomikOS</description>
	<lastBuildDate>Wed, 18 Aug 2010 14:22:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Torpedos, chuletas y cheat-sheets para el desarrollador web cojonudo, bacancito y cool.</title>
		<link>http://nomikos.info/2010/06/30/torpedos-chuletas-y-cheat-sheets-para-el-desarrollador-web-cojonudo-bacancito-y-cool.html</link>
		<comments>http://nomikos.info/2010/06/30/torpedos-chuletas-y-cheat-sheets-para-el-desarrollador-web-cojonudo-bacancito-y-cool.html#comments</comments>
		<pubDate>Thu, 01 Jul 2010 01:25:35 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Computación]]></category>
		<category><![CDATA[Herramientas para programación web]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[jQuery y OOP Javascript]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=1630</guid>
		<description><![CDATA[Aquí hay una buena muestra de las materias que debes conocer como desarrollador web. Imprímelas y pégalas en la puerta del baño, de manera que puedas estudiarlas mientras meditas en la levedad del ser. Ni se te ocurra linkear directamente a estas imágenes porque ando escaso de ancho de banda. Asi que si pasas por [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/09/phpmyadmin-mostrar-todos-los-registros-y-otras-configuraciones-ocultas.html' rel='bookmark' title='Permanent Link: phpMyAdmin &#8211; Mostrar todos los registros y otras configuraciones ocultas.'>phpMyAdmin &#8211; Mostrar todos los registros y otras configuraciones ocultas.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Aquí hay una buena muestra de las materias que debes conocer como desarrollador web. Imprímelas y pégalas en la puerta del baño, de manera que puedas estudiarlas mientras meditas en la levedad del ser. Ni se te ocurra linkear directamente a estas imágenes porque ando escaso de ancho de banda. Asi que si pasas por aquí de visita por favor entra sin comida ni mascotas &#8211;a menos que sean gatos. Cada una tiene una referencia para dar crédito a quien se lo merezca.</p>
<hr />
<p><center></p>
<h1>Expresiones regulares</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/regular-expressions-cheat-sheet-v2.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/regular-expressions-cheat-sheet-v2-630x856.png" alt="" title="regular-expressions-cheat-sheet-v2" width="630" height="856" class="aligncenter size-630 wp-image-1596" /></a><span id="more-1630"></span></p>
<hr />
<h1>mod_rewrite &#8211; Módulo Apache</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/mod_rewrite-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/mod_rewrite-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/mod_rewrite-cheat-sheet-v2.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/mod_rewrite-cheat-sheet-v2-630x856.png" alt="" title="mod_rewrite-cheat-sheet-v2" width="630" height="856" class="aligncenter size-630 wp-image-1597" /></a></p>
<hr />
<h1>CSS &#8211; Hojas de estilo en cascadas</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/css-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/css-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/css-cheat-sheet-v2.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/css-cheat-sheet-v2-630x856.png" alt="" title="css-cheat-sheet-v2" width="630" height="856" class="aligncenter size-630 wp-image-1600" /></a></p>
<hr />
<h1>Javascript &#8211; Lenguaje de programación para navegadores web</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/javascript-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/javascript-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/javascript-cheat-sheet-v1.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/javascript-cheat-sheet-v1-630x856.png" alt="" title="javascript-cheat-sheet-v1" width="630" height="856" class="aligncenter size-630 wp-image-1598" /></a></p>
<hr />
<h1>Subversion (svn) &#8211; Sistema de control de versiones</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/subversion-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/subversion-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/subversion-cheat-sheet-v1.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/subversion-cheat-sheet-v1-630x856.png" alt="" title="subversion-cheat-sheet-v1" width="630" height="856" class="aligncenter size-630 wp-image-1595" /></a></p>
<hr />
<h1>Git  &#8211; Sistema de control de versiones distribuido</h1>
<p>
<a target="_blank" href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html">http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/git-cheat-sheet-medium.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/git-cheat-sheet-medium-630x486.png" alt="" title="git-cheat-sheet-medium" width="630" height="486" class="aligncenter size-630 wp-image-1599" /></a></p>
<hr />
<h1>PHP &#8211; Lenguaje de programación web</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/php-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/php-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/php-cheat-sheet-v2.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/php-cheat-sheet-v2-630x856.png" alt="" title="php-cheat-sheet-v2" width="630" height="856" class="aligncenter size-630 wp-image-1613" /></a></p>
<hr />
<h1>MySQL &#8211; Base de datos relacional</h1>
<p>
<a target="_blank" href="http://www.addedbytes.com/cheat-sheets/mysql-cheat-sheet/">http://www.addedbytes.com/cheat-sheets/mysql-cheat-sheet/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/mysql-cheat-sheet-v1.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/mysql-cheat-sheet-v1-630x819.png" alt="" title="mysql-cheat-sheet-v1" width="630" height="819" class="aligncenter size-630 wp-image-1612" /></a></p>
<hr />
<h1>Unix / Linux Shell Scripting Tutorial</h1>
<p>
<a target="_blank" href="http://gdf.tricon.hu/linux/segedanyag/SteveParker/sh.shtml">http://gdf.tricon.hu/linux/segedanyag/SteveParker/sh.shtml</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/bash_cheat_sheet.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/bash_cheat_sheet-630x891.png" alt="" title="bash_cheat_sheet" width="630" height="891" class="aligncenter size-630 wp-image-1640" /></a></p>
<hr />
<h1>Bash &#8211; Shell para comunicarse con linux</h1>
<p>
<a target="_blank" href="http://weblog.topopardo.com/?p=1389">http://weblog.topopardo.com/?p=1389</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/bash_sheet.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/bash_sheet-630x472.png" alt="" title="bash_sheet" width="630" height="472" class="aligncenter size-630 wp-image-1641" /></a></p>
<p></p>
<li><a target="_blank" href="http://wiki.timgurney.net/index.php/Bash_Cheat_Sheet">Bash Cheat Sheet</a> por Tim Gurney<br />(Un resúmen en una sóla página.)</li>
<li><a target="_blank" href="http://en.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html">BASH Programming &#8211; Introduction HOW-TO</a> por Mike G<br />(Un resúmen avanzado, excelente como primer tutorial.)</li>
<li><a target="_blank" href="http://tldp.org/LDP/abs/html/">Advanced Bash-Scripting Guide</a> por Mendel Cooper<br />(Este es el mejor, completísimo y entretenido)</li>
<hr />
<h1>vim (vi) &#8211; Editor de texto para consola</h1>
<p>
<a target="_blank" href="http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html">http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/vi_sheet.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/vi_sheet-630x445.png" alt="" title="vi_sheet" width="630" height="445" class="aligncenter size-630 wp-image-1642" /></a></p>
<hr />
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/0010_en_vi-vs-emacs.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/0010_en_vi-vs-emacs-630x200.png" alt="" title="vi-vs-emacs" width="630" height="200" class="aligncenter size-630 wp-image-1650" /></a></p>
<hr />
<h1>vim &#8211; Carta de referencia rápida</h1>
<p>
<a target="_blank" href="http://tnerual.eriogerg.free.fr">http://tnerual.eriogerg.free.fr</a><br />
</p>
<table width="100%" style="color:black">
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Movimiento b&aacute;sico<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>h l k j</b></font></tt></td>
<td>caracter izq., derecha; l&iacute;nea arriba, abajo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>b w</b></font></tt></td>
<td>palabra/s&iacute;mbolo izquierda, derecha</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>ge e</b></font></tt></td>
<td>fin de palabra/s&iacute;mbolo izquierda, derecha</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>&#123;&nbsp; &#125;</b></font></tt></td>
<td>principio del anterior, siguiente p&aacute;rrafo</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>( )</b></font></tt></td>
<td>comienzo de anterior, siguiente oraci&oacute;n</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>0 gm</b></font></tt></td>
<td>principio, medio de la l&iacute;nea</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^&nbsp; $</b></font></tt></td>
<td>primer, &uacute;ltimo caracter de la l&iacute;nea</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>G <font color='red'><i>n</i></font>gg</b></font></tt></td>
<td>l&iacute;nea <font color='red'><i>n</i></font>. por defecto la primera, &uacute;ltima</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>%</b></font></tt></td>
<td>porcentaje <font color='red'><i>n</i></font> del archivo <i>(<font color='red'><i>n</i></font> es obligatorio)</i></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n|</i></font></b></font></tt></td>
<td>columna <font color='red'><i>n</i></font> de la l&iacute;nea actual</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>%</b></font></tt></td>
<td>siguiente llave, par&eacute;ntesis, comentario, <tt>#define</tt></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>H <font color='red'><i>n</i></font>L</b></font></tt></td>
<td>l&iacute;nea <font color='red'><i>n</i></font> desde el principio, medio de la ventana</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>M</b></font></tt></td>
<td>medio de la ventana</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Inserci&oacute;n &amp; sustituci&oacute;n <font color='red'><i><font color='black'>&#8594;</font></i></font> modo insertar<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>i a</b></font></tt></td>
<td>insertar antes, despu&eacute;s del cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>I A</b></font></tt></td>
<td>insertar al principio, fin de la l&iacute;nea</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>gI</b></font></tt></td>
<td>insertar texto en la primera columna</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>o O</b></font></tt></td>
<td>insertar nueva l&iacute;nea abajo, arriba de la actual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>r<font color='red'><i>c</i></font></b></font></tt></td>
<td>sustituir caracter bajo el cursor por <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>gr<font color='red'><i>c</i></font></b></font></tt></td>
<td>como <tt> r</tt>, pero sin afectar el dise&ntilde;o</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>R</b></font></tt></td>
<td>sustituir caracteres a partir del cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>gR</b></font></tt></td>
<td>como <tt> R</tt>, pero sin afectar el dise&ntilde;o</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>c<font color='red'><i>m</i></font></b></font></tt></td>
<td>cambiar texto del comando de deplazamiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>cc&nbsp;<font size='-1'>or</font> S</b></font></tt></td>
<td>cambiar l&iacute;nea actual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>C</b></font></tt></td>
<td>cambiar hasta el fin de la l&iacute;nea</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>s</b></font></tt></td>
<td>cambiar un caracter e insertar</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>~</b></font></tt></td>
<td>invertir may&uacute;scula/min&uacute;scula y avanzar el cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>g~<font color='red'><i>m</i></font></b></font></tt></td>
<td>invertir may&uacute;s/min&uacute;s del movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>gu<font color='red'><i>m</i></font> gU<font color='red'><i>m</i></font></b></font></tt></td>
<td>min&uacute;scula, may&uacute;scula texto movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i><</i></font><font color='red'><i>m</i></font> <font color='red'><i>></i></font><font color='red'><i>m</i></font></b></font></tt></td>
<td>desplazar izq., der. texto del movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font><font color='red'><i><</i></font><font color='red'><i><</i></font> <font color='red'><i>n</i></font><font color='red'><i>></i></font><font color='red'><i>></i></font></b></font></tt></td>
<td>desplazar <font color='red'><i>n</i></font> l&iacute;neas a la izquierda, derecha</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Borrado<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>x X</b></font></tt></td>
<td>eliminar caracter sobre, previo al cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>d<font color='red'><i>m</i></font></b></font></tt></td>
<td>eliminar texto de comando de movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>dd D</b></font></tt></td>
<td>eliminar l&iacute;nea actual, hasta fin de l&iacute;nea actual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>J gJ</b></font></tt></td>
<td>juntar linea actual con la siguiente, sin espacio</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>d<font size='+1'>&#8629;</font></b></font></tt></td>
<td>eliminar rango <font color='red'><i>r</i></font> de l&iacute;neas</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>d<font color='red'><i>x</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>eliminar rango <font color='red'><i>r</i></font> de l&iacute;neas al registro <font color='red'><i>x</i></font></td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Modo insertar<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^V<font color='red'><i>c</i></font> ^V<font color='red'><i>n</i></font></b></font></tt></td>
<td>insertar caracter <font color='red'><i>c</i></font> literal, con valor decimal <font color='red'><i>n</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^A</b></font></tt></td>
<td>insertar &uacute;ltimo texto insertado</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^@</b></font></tt></td>
<td>igual que <tt>^A</tt> y detener inserci&oacute;n <font color='red'><i><font color='black'>&#8594;</font></i></font> modo comando</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^R<font color='red'><i>x</i></font> ^R^R<font color='red'><i>x</i></font></b></font></tt></td>
<td>insertar contenido de registro <font color='red'><i>x</i></font>, literal</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^N ^P</b></font></tt></td>
<td>completar texto antes, luego del cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^W</b></font></tt></td>
<td>eliminar palabra anterior al cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^U</b></font></tt></td>
<td>eliminar todo el texto insertado en la l&iacute;nea actual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^D ^T</b></font></tt></td>
<td>desplazar linea a la izquierda, derecha</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^K<font color='red'><i>c<font size='-2'>1</font></i></font><font color='red'><i>c<font size='-2'>2</font></i></font>&nbsp;<font size='-1'>or</font> <font color='red'><i>c<font size='-2'>1</font></i></font><font size='+1'>&#8592;</font><font color='red'><i>c<font size='-2'>2</font></i></font></b></font></tt></td>
<td>entrar d&iacute;grafo <font color='red'><i>\c<font size='-2'>1</font>,c<font size='-2'>2</font>\</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^O<font color='red'><i>c</i></font></b></font></tt></td>
<td>ejecutar <font color='red'><i>c</i></font> en modo de temporal de comando</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^X^E ^X^Y</b></font></tt></td>
<td>scrollear arriba, abajo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font size='-1' color='blue'>&lt;esc&gt;</font>&nbsp;<font size='-1'>or</font> ^[</b></font></tt></td>
<td>salir del modo edici&oacute;n <font color='red'><i><font color='black'>&#8594;</font></i></font> modo comando</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Copiado<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>"<font color='red'><i>x</i></font></b></font></tt></td>
<td>usar registro <font color='red'><i>x</i></font> para la siguiente acci&oacute;n</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:reg<font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar contenido de todos los registros</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:reg <font color='red'><i>x</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar contenido de los registros <font color='red'><i>x</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>y<font color='red'><i>m</i></font></b></font></tt></td>
<td>copiar texto del movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>yy&nbsp;<font size='-1'>or</font> Y</b></font></tt></td>
<td>copiar l&iacute;nea actual al registro</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>p P</b></font></tt></td>
<td>pegar registro antes, despues del cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>]p [p</b></font></tt></td>
<td>como <tt> p</tt>, <tt> P</tt> pero ajustando la sangr&iacute;a</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>gp gP</b></font></tt></td>
<td>igual, pero cursor queda luego de texto nuevo</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Inserci&oacute;n avanzada<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>g?<font color='red'><i>m</i></font></b></font></tt></td>
<td>realizar codificaci&oacute;n rot13 en movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>^A <font color='red'><i>n</i></font>^X</b></font></tt></td>
<td>incrementar/disminuir numero bajo el cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>gq<font color='red'><i>m</i></font></b></font></tt></td>
<td>formatear l&iacute;nea de movimiento <font color='red'><i>m</i></font> a ancho fijo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>ce <font color='red'><i>w</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>centrar l&iacute;neas en rango <font color='red'><i>r</i></font> a ancho <font color='red'><i>w</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>le <font color='red'><i>i</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>alinear izq. lineas en rango <font color='red'><i>r</i></font> con sangr&iacute;a <font color='red'><i>i</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>ri <font color='red'><i>w</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>alinear der. lineas en rango <font color='red'><i>r</i></font> con ancho <font color='red'><i>w</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>!<font color='red'><i>m</i></font><font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>aplicar comando <font color='red'><i>c</i></font> al movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>!!<font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>aplicar comando <font color='red'><i>c</i></font> a siguientes <font color='red'><i>n</i></font> lineas</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>!<font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>aplicar comando <font color='red'><i>c</i></font> a rango de l&iacute;neas <font color='red'><i>r</i></font></td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Modo visual<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>v V ^V</b></font></tt></td>
<td>empezar/terminar marca caract, l&iacute;neas, bloque</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>o</b></font></tt></td>
<td>cursor de selecci&oacute;n al principio/fin del marcado</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>gv</b></font></tt></td>
<td>empezar a marcar utilizando &uacute;ltima zona marcada</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>aw as ap</b></font></tt></td>
<td>seleccionar una palabra, oraci&oacute;n, p&aacute;rrafo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>ab aB</b></font></tt></td>
<td>seleccionar un bloque ( ), un bloque <tt>&#123;</tt> <tt>&#125;</tt></td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Deshacer, repetir &amp; registros<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>u U</b></font></tt></td>
<td>deshacer &uacute;ltimo comando, restaurar &uacute;ltima l&iacute;nea</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>.&nbsp;&nbsp;^R</b></font></tt></td>
<td>repetir &uacute;ltimos cambios, rehacer &uacute;ltimo deshacer</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>.&nbsp; </b></font></tt></td>
<td>repetir &uacute;ltimos cambios <font color='red'><i>n</i></font> veces</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>q<font color='red'><i>c</i></font> q<font color='red'><i>C</i></font></b></font></tt></td>
<td>grabar, agregar teclas tipeadas en registro <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>q</b></font></tt></td>
<td>detener grabaci&oacute;n</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>@<font color='red'><i>c</i></font></b></font></tt></td>
<td>ejecutar el contenido del registro <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>@@</b></font></tt></td>
<td>repetir comando <tt> @</tt> anterior</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:@<font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>ejecutar registro <font color='red'><i>c</i></font> como un comando <i> Ex</i></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>g/<font color='red'><i>p</i></font>/<font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>ejecutar comando <i> Ex</i> <font color='red'><i>c</i></font> en rango <font color='red'><i>r</i></font></td>
</tr>
<tr bgcolor='white'>
<td></td>
<td>donde se cumpla el patr&oacute;n <font color='red'><i>p</i></font></td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Movimiento complejo<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>- +</b></font></tt></td>
<td>l&iacute;nea arriba, abajo al primer caracter no blanco</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>B W</b></font></tt></td>
<td>siguiente, anterior palabra separada por espacio</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>gE E</b></font></tt></td>
<td>fin de anterior, siguiente palabra espaciada</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>_</b></font></tt></td>
<td>al primer caracter no blanco en linea <font color='red'><i>n-1</i></font> debajo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>g0</b></font></tt></td>
<td>principio de la l&iacute;nea en <i> pantalla</i></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>g^&nbsp; g$</b></font></tt></td>
<td>primer, &uacute;ltimo caracter de la l&iacute;nea en <i> pantalla</i></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>gk gj</b></font></tt></td>
<td>l&iacute;nea en <i> pantalla</i> arriba, abajo</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>f<font color='red'><i>c</i></font> F<font color='red'><i>c</i></font></b></font></tt></td>
<td>siguiente, anterior ocurrencia del caracter <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>t<font color='red'><i>c</i></font> T<font color='red'><i>c</i></font></b></font></tt></td>
<td>antes de la siguiente, anterior occurencia de <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>; ,</b></font></tt></td>
<td>repetir &uacute;ltima <tt> fFtT</tt>, en direcci&oacute;n opuesta</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>[[ ]]</b></font></tt></td>
<td>comienzo de la secci&oacute;n hacia atr&aacute;s, adelante</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>[] ][</b></font></tt></td>
<td>fin de la secci&oacute;n hacia atr&aacute;s, adelante</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>[( ])</b></font></tt></td>
<td>seccion (, ) abierta hacia atr&aacute;s, adelante</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>[&#123;&nbsp; ]&#125;</b></font></tt></td>
<td>seccion <tt>&#123;</tt>, <tt>&#125;</tt> abierta hacia atr&aacute;s, adelante</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>[m ]m</b></font></tt></td>
<td>comienzo de m&eacute;todo <i> Java</i> hacia atr&aacute;s, adelante</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>[# ]#</b></font></tt></td>
<td><tt>#if</tt>, <tt>#else</tt>, <tt>#endif</tt> abierto atr&aacute;s, adelante</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>[* ]*</b></font></tt></td>
<td>principio, fin de <tt>/* */</tt> hacia atr&aacute;s, adelante</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>B&uacute;squeda &amp; sustituci&oacute;n<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>/<font color='red'><i>s</i></font><font size='+1'>&#8629;</font>&nbsp; ?<font color='red'><i>s</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>buscar <font color='red'><i>s</i></font> hacia adelante, atr&aacute;s</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>/<font color='red'><i>s</i></font>/<font color='red'><i>o</i></font><font size='+1'>&#8629;</font>&nbsp; ?<font color='red'><i>s</i></font>?<font color='red'><i>o</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>buscar <font color='red'><i>s</i></font> adelante, atr&aacute;s con desplaz. <font color='red'><i>o</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>n&nbsp;<font size='-1'>or</font> /<font size='+1'>&#8629;</font></b></font></tt></td>
<td>repetir &uacute;ltima b&uacute;squeda hacia adelante</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>N&nbsp;<font size='-1'>or</font> ?<font size='+1'>&#8629;</font></b></font></tt></td>
<td>repetir &uacute;ltima b&uacute;squeda hacia atr&aacute;s</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b># *</b></font></tt></td>
<td>buscar adelante, atr&aacute;s palabra sobre cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>g# g*</b></font></tt></td>
<td>igual, pero buscar tambien resultados parciales</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>gd gD</b></font></tt></td>
<td>definici&oacute;n local, global de s&iacute;mbolo sobre cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>s/<font color='red'><i>f</i></font>/<font color='red'><i>t</i></font>/<font color='red'><i>x</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>sustituir <font color='red'><i>f</i></font> por <font color='red'><i>t</i></font> en rango <font color='red'><i>r</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td></td>
<td><font color='red'><i>x:</i></font> <tt> g</tt>-todas las ocurrencias, <tt> c</tt>-confirmar cambios</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>s <font color='red'><i>x</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>repetir sustituci&oacute;n con nuevo <font color='red'><i>r</i></font> &amp; <font color='red'><i>x</i></font></td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Caracteres especiales en patrones de busqueda<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>.&nbsp;&nbsp;&nbsp;^&nbsp; $</b></font></tt></td>
<td>caracter simple; comienzo, fin de l&iacute;nea</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>\<font color='red'><i><</i></font> \<font color='red'><i>></i></font></b></font></tt></td>
<td>comienzo, fin de palabra</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>[<font color='red'><i>c<font size='-2'>1</font></i></font>-<font color='red'><i>c<font size='-2'>2</font></i></font>]</b></font></tt></td>
<td>caracter simple en el rango <font color='red'><i>c<font size='-2'>1</font>..c<font size='-2'>2</font></i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>[^<font color='red'><i>c<font size='-2'>1</font></i></font>-<font color='red'><i>c<font size='-2'>2</font></i></font>]</b></font></tt></td>
<td>caracter simple no en el rango <font color='red'><i>c<font size='-2'>1</font>..c<font size='-2'>2</font></i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>\i \k \I \K</b></font></tt></td>
<td>identificador, palabra clave; excl. d&iacute;gitos</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>\f \p \F \P</b></font></tt></td>
<td>nombre arch, car. imprim.; ign. d&iacute;gitos</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>\s \S</b></font></tt></td>
<td>espacio en blanco, no espacio en blanco</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>\e \t \r \b</b></font></tt></td>
<td><font size='-1' color='blue'>&lt;esc&gt;</font>, <font size='-1' color='blue'>&lt;tab&gt;</font>, <font size='-1' color='blue'>&lt;<font size='+1'>&#8629;</font>&gt;</font>, <font size='-1' color='blue'>&lt;<font color='red'><i><font size='+1'>&#8592;</font></i></font>&gt;</font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>\= * \+</b></font></tt></td>
<td><font color='red'><i>0..1</i></font>, <font color='red'><i>0..<font size='+1'>&#8734;</font></i></font>, <font color='red'><i>1..<font size='+1'>&#8734;</font></i></font> del &aacute;tomo anterior</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>\<font color='red'><i>|</i></font></b></font></tt></td>
<td>separar dos ramas (<font color='red'><i>&nbsp;<font size='+1'>&#8801;</font></i></font> <i> o</i>)</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>\( \)</b></font></tt></td>
<td>agrupa patrones en un &aacute;tomo</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>\&amp; \<font color='red'><i>n</i></font></b></font></tt></td>
<td>todo el patr&oacute;n encontrado, grupo <font color='red'><i>n<font size='-2'>o</font></i></font> <tt>()</tt></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>\u \l</b></font></tt></td>
<td>pr&oacute;ximo caracter a may&uacute;scula, min&uacute;scula</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Desplazamientos en comandos de b&uacute;squeda<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>&nbsp;<font size='-1'>or</font> +<font color='red'><i>n</i></font></b></font></tt></td>
<td><font color='red'><i>n</i></font> l&iacute;neas hacia abajo en columna 1</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>-<font color='red'><i>n</i></font></b></font></tt></td>
<td><font color='red'><i>n</i></font> l&iacute;neas hacia arriba en columna 1</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>e+<font color='red'><i>n</i></font> e-<font color='red'><i>n</i></font></b></font></tt></td>
<td><font color='red'><i>n</i></font> caract. der., izq de comienzo del matcheo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>s+<font color='red'><i>n</i></font> s-<font color='red'><i>n</i></font></b></font></tt></td>
<td><font color='red'><i>n</i></font> caract. der., izq. del final del matcheo</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>;<font color='red'><i>sc</i></font></b></font></tt></td>
<td>ejecutar comando de b&uacute;squeda <font color='red'><i>sc</i></font> a continuaci&oacute;n</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Marcas y movimiento<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>m<font color='red'><i>c</i></font></b></font></tt></td>
<td>marcar posici&oacute;n actual con marca <font color='red'><i>c&nbsp;<font size='+1'>&#8712;</font>[a..Z]</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>`<font color='red'><i>c</i></font> `<font color='red'><i>C</i></font></b></font></tt></td>
<td>ir a marca  <font color='red'><i>c</i></font> en archivo actual, cualquier archivo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>`<font color='red'><i>0..9</i></font></b></font></tt></td>
<td>ir a &uacute;ltima posici&oacute;n de salida</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>``  `"</b></font></tt></td>
<td>ir a posici&oacute;n antes del salto, de &uacute;ltima edici&oacute;n</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>`[ `]</b></font></tt></td>
<td>ir al principio, fin del &uacute;ltimo texto operado</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:marks<font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar lista de marcas activas</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:jumps<font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar lista de saltos</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>^O</b></font></tt></td>
<td>ir a la <font color='red'><i>n<font size='-2'>a</font></i></font> posici&oacute;n m&aacute;s vieja de la lista de saltos</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font>^I</b></font></tt></td>
<td>ir a la <font color='red'><i>n<font size='-2'>a</font></i></font> posici&oacute;n m&aacute;s nueva de la lista de saltos</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Mapeo de teclas &amp; abreviaciones<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:map <font color='red'><i>c</i></font> <font color='red'><i>e</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>mapear <font color='red'><i>c&nbsp;<font size='+1'>&#8614;</font> e</i></font>. modo normal &amp; visual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:map!&nbsp; <font color='red'><i>c</i></font> <font color='red'><i>e</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>map. <font color='red'><i>c&nbsp;<font size='+1'>&#8614;</font> e</i></font>. modo insertar &amp; comandos</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:unmap <font color='red'><i>c</i></font><font size='+1'>&#8629;</font>&nbsp; :unmap!&nbsp; <font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>borrar mapeo <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:mk <font color='red'><i>f</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>guardar mapeos actuales en archivo <font color='red'><i>f</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:ab <font color='red'><i>c</i></font> <font color='red'><i>e</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>agregar abreviatura para <font color='red'><i>c&nbsp;<font size='+1'>&#8614;</font> e</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:ab <font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar abreviaturas que empiezan con <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:una <font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>borrar abreviatura <font color='red'><i>c</i></font></td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Etiquetas<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:ta <font color='red'><i>t</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>saltar a etiqueta <font color='red'><i>t</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>n</i></font>ta<font size='+1'>&#8629;</font></b></font></tt></td>
<td>saltar a la <font color='red'><i>n<font size='-2'>a</font></i></font> etiqueta mas nueva</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^] ^T</b></font></tt></td>
<td>saltar a etiqueta sobre cursor, volver de etiqueta</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:ts <font color='red'><i>t</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>listar etiquetas que matchean y elegir una</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:tj <font color='red'><i>t</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>saltar a etiqueta o elegir una si varias cumplen</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:tags<font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar lista de etiquetas</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>n</i></font>po<font size='+1'>&#8629;</font>&nbsp; :<font color='red'><i>n</i></font>^T<font size='+1'>&#8629;</font></b></font></tt></td>
<td>saltar desde, hacia <font color='red'><i>n^va</i></font> etiqueta vieja</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:tl<font size='+1'>&#8629;</font></b></font></tt></td>
<td>saltar a &uacute;ltima etiqueta que matchea</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^W&#125;&nbsp; :pt <font color='red'><i>t</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>vista previa etiqueta sobre cursor, etiq. <font color='red'><i>t</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^W]</b></font></tt></td>
<td>separar ventana y mostrar etiqueta sobre el cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^Wz&nbsp;<font size='-1'>or</font> :pc<font size='+1'>&#8629;</font></b></font></tt></td>
<td>cerrar vista previa de etiquetas</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Scrolleo &amp; ventanas<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^E ^Y</b></font></tt></td>
<td>scrollear una l&iacute;nea arriba, abajo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^D ^U</b></font></tt></td>
<td>scrollear media p&aacute;gina arriba, abajo</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^F ^B</b></font></tt></td>
<td>scrollear una p&aacute;gina arriba, abajo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>zt&nbsp;<font size='-1'>or</font> z<font size='+1'>&#8629;</font></b></font></tt></td>
<td>poner l&iacute;nea actual al principio de la ventana</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>zz&nbsp;<font size='-1'>or</font> z.&nbsp; </b></font></tt></td>
<td>poner l&iacute;nea actual al centro de la ventana</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>zb&nbsp;<font size='-1'>or</font> z-</b></font></tt></td>
<td>poner l&iacute;nea actual al final de la ventana</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>zh zl</b></font></tt></td>
<td>scrollear un caracter a la derecha, izquierda</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>zH zL</b></font></tt></td>
<td>scrollear media pantalla a la derecha, izquierda</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^Ws&nbsp;<font size='-1'>or</font> :split<font size='+1'>&#8629;</font></b></font></tt></td>
<td>dividir ventana en dos</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^Wn&nbsp;<font size='-1'>or</font> :new<font size='+1'>&#8629;</font></b></font></tt></td>
<td>crear nueva ventana vac&iacute;a</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^Wo&nbsp;<font size='-1'>or </font>&#58;on<font size='+1'>&#8629;</font></b></font></tt></td>
<td>hacer ventana actual &uacute;nica en la pantalla</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^Wj ^Wk</b></font></tt></td>
<td>pasar a la ventana de abajo, arriba</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^Ww ^W^W</b></font></tt></td>
<td>pasar a la ventana de abajo, arriba (cicl&iacute;co)</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Comandos Ex (<font size='+1'>&#8629;</font>)<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:e <font color='red'><i>f</i></font></b></font></tt></td>
<td>editar archivo <font color='red'><i>f</i></font>, a menos que hayan cambios</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:e!&nbsp; <font color='red'><i>f</i></font></b></font></tt></td>
<td>editar archivo <font color='red'><i>f</i></font> siempre (recargar el actual)</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:wn :wN</b></font></tt></td>
<td>guardar archivo y editar siguiente, anterior</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:n :N</b></font></tt></td>
<td>editar archivo siguiente, anterior de la lista</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>w</b></font></tt></td>
<td>guardar rango <font color='red'><i>r</i></font> en archivo actual</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>w <font color='red'><i>f</i></font></b></font></tt></td>
<td>guardar rango <font color='red'><i>r</i></font> a archivo <font color='red'><i>f</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>w<font color='red'><i>></i></font><font color='red'><i>></i></font><font color='red'><i>f</i></font></b></font></tt></td>
<td>agregar rango <font color='red'><i>r</i></font> al archivo <font color='red'><i>f</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:q :q!</b></font></tt></td>
<td>salir y confirmar, salir e ignorar cambios</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:wq&nbsp;<font size='-1'>or</font> &#58;x&nbsp;<font size='-1'>or</font> ZZ</b></font></tt></td>
<td>guardar archivo actual y salir</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font size='-1' color='blue'>&lt;up&gt;</font> <font size='-1' color='blue'>&lt;down&gt;</font></b></font></tt></td>
<td>recordar comandos anteriores (historial)</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:r <font color='red'><i>f</i></font></b></font></tt></td>
<td>insertar contenido archivo <font color='red'><i>f</i></font> debajo del cursor</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:r!&nbsp; <font color='red'><i>c</i></font></b></font></tt></td>
<td>insertar salida del comando <font color='red'><i>c</i></font> debajo del cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:all</b></font></tt></td>
<td>abrir una vent. por cada arch. pasado en los arg.</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:args</b></font></tt></td>
<td>mostrar lista de argumentos</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Rangos Ex<br />
</b></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>, ;&nbsp; </b></font></tt></td>
<td>separa dos n&uacute;meros de l&iacute;nea, primera linea</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b><font color='red'><i>n</i></font></b></font></tt></td>
<td>n&uacute;mero de linea absoluto <font color='red'><i>n</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>.&nbsp;&nbsp;&nbsp;$</b></font></tt></td>
<td>l&iacute;nea actual, &uacute;ltima linea del archivo</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>% *</b></font></tt></td>
<td>todo el archivo, toda el &aacute;rea visual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>'<font color='red'><i>t</i></font></b></font></tt></td>
<td>posici&oacute;n de la marca <font color='red'><i>t</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>/<font color='red'><i>p</i></font>/ ?<font color='red'><i>p</i></font>?</b></font></tt></td>
<td>la pr&oacute;xima, anterior l&iacute;nea que cumple con <font color='red'><i>p</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>+<font color='red'><i>n</i></font> -<font color='red'><i>n</i></font></b></font></tt></td>
<td><font color='red'><i>+n</i></font>, <font color='red'><i>-n</i></font> al numero de l&iacute;nea predecesor</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Pliegues (folding)<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>zf<font color='red'><i>m</i></font></b></font></tt></td>
<td>crear pliegue del movimiento <font color='red'><i>m</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:<font color='red'><i>r</i></font>fo</b></font></tt></td>
<td>crear pliegue para el rango <font color='red'><i>r</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>zd zE</b></font></tt></td>
<td>borrar pliegue activo, todos los de la ventana</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>zo zc zO zC</b></font></tt></td>
<td>abrir, cerrar un pliegue; recursivamente</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>[z ]z</b></font></tt></td>
<td>ir al comienzo, fin del pliegue actual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>zj zk</b></font></tt></td>
<td>ir abajo, arriba del comienzo, fin de sig. pliegue</td>
</tr>
<tr>
<td bgcolor='lightgrey' colspan='2'><b>Miscel&aacute;neas<br />
</b></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:sh<font size='+1'>&#8629;</font>&nbsp; :!<font color='red'><i>c</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>correr shell, ejecutar comando <font color='red'><i>c</i></font></td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>K</b></font></tt></td>
<td>buscar palabra sobre el cursor con <tt> man</tt></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:make<font size='+1'>&#8629;</font></b></font></tt></td>
<td>correr <tt> make</tt>, leer errores y saltar al primero</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:cn<font size='+1'>&#8629;</font>&nbsp; :cp<font size='+1'>&#8629;</font></b></font></tt></td>
<td>mostrar el siguiente, anterior error</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:cl<font size='+1'>&#8629;</font>&nbsp; :cf<font size='+1'>&#8629;</font></b></font></tt></td>
<td>listar errores, leer errores de archivo</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>^L ^G</b></font></tt></td>
<td>redibujar pant., mostrar nombre archivo y pos.</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>g^G</b></font></tt></td>
<td>mostrar columna, l&iacute;nea, palabra, byte actual</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>ga</b></font></tt></td>
<td>mostrar c&oacute;digo ASCII del caracter actual</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>gf</b></font></tt></td>
<td>abrir archivo con nombre debajo del cursor</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:redir<font color='red'><i>></i></font><font color='red'><i>f</i></font><font size='+1'>&#8629;</font></b></font></tt></td>
<td>redirigir salida al archivo <font color='red'><i>f</i></font></td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>:mkview <font color='red'><i>[f]</i></font></b></font></tt></td>
<td>guardar config. de vista [en archivo <font color='red'><i>f</i></font>]</td>
</tr>
<tr bgcolor='#dfe2ff'>
<td><tt><font size='+1'><b>:loadview <font color='red'><i>[f]</i></font></b></font></tt></td>
<td>cargar config. de vista [de archivo <font color='red'><i>f</i></font>]</td>
</tr>
<tr bgcolor='white'>
<td><tt><font size='+1'><b>^@ ^K ^_&nbsp; \&nbsp; F<font color='red'><i>n</i></font> ^F<font color='red'><i>n</i></font></b></font></tt></td>
<td>teclas no mapeadas</td>
</tr>
</table>
<hr />
<h1>jQuery 1.4 &#8211; Biblioteca y framework javascript</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/32981686/jQuery-Visual-Cheat-Sheet-1-4-2">http://www.scribd.com/doc/32981686/jQuery-Visual-Cheat-Sheet-1-4-2</a><br />
</p>
<p><object id="doc_72346912796171" name="doc_72346912796171" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=32981686&#038;access_key=key-qoy8hmeoz9gew8h95pm&#038;page=1&#038;viewMode=list"><embed id="doc_72346912796171" name="doc_72346912796171" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=32981686&#038;access_key=key-qoy8hmeoz9gew8h95pm&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<li> <a target="_blank" href="http://www.futurecolors.ru/jquery/">jQuery 1.4 API Cheat Sheet</a></li>
<hr />
<h1>Ext &#8211; Framework javascript para aplicaciones web (RIA)</h1>
<p>
<a target="_blank"http://devcheatsheet.com/tag/ext-js/">http://devcheatsheet.com/tag/ext-js/</a><br />
</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/Ext_Cheat_Sheet-1-1280x1024.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/Ext_Cheat_Sheet-1-1280x1024-630x504.png" alt="" title="Ext_JS_Cheat_Sheet" width="630" height="504" class="aligncenter size-630 wp-image-1618" /></a></p>
<hr />
<h1>Cloud computing &#8211; Servicios web sobre demanda</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/25033275/DZone-Refcard-82-Getting-Started-with-Cloud-Computing">http://www.scribd.com/doc/25033275/DZone-Refcard-82-Getting-Started-with-Cloud-Computing</a><br />
</p>
<p><object id="doc_576798701900568" name="doc_576798701900568" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=25033275&#038;access_key=key-21h3es0f30duiycj5bz9&#038;page=1&#038;viewMode=list"><embed id="doc_576798701900568" name="doc_576798701900568" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=25033275&#038;access_key=key-21h3es0f30duiycj5bz9&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<hr />
<h1>Escabilidad y alta disponibilidad</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/12910002/Refcard-43-Scalability-High-Availability">http://www.scribd.com/doc/12910002/Refcard-43-Scalability-High-Availability</a><br />
</p>
<p><object id="doc_257506692988020" name="doc_257506692988020" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=12910002&#038;access_key=key-1k04ygfn68pveoih3k66&#038;page=1&#038;viewMode=list"><embed id="doc_257506692988020" name="doc_257506692988020" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=12910002&#038;access_key=key-1k04ygfn68pveoih3k66&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<hr />
<h1>Primeros pasos con AJAX</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/7470987/Refcardz-02-Getting-Started-With-Ajax">http://www.scribd.com/doc/7470987/Refcardz-02-Getting-Started-With-Ajax</a><br />
</p>
<p><object id="doc_580018026553295" name="doc_580018026553295" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=7470987&#038;access_key=key-gemg40ut1qjepsgrx9y&#038;page=1&#038;viewMode=list"><embed id="doc_580018026553295" name="doc_580018026553295" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=7470987&#038;access_key=key-gemg40ut1qjepsgrx9y&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<hr />
<h1>Selectores jQuery</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/7471024/Refcardz-07-jQuery-Selectors">http://www.scribd.com/doc/7471024/Refcardz-07-jQuery-Selectors</a><br />
</p>
<p><object id="doc_550498903456028" name="doc_550498903456028" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=7471024&#038;access_key=key-p93ty9pxdq5mjrr7zmh&#038;page=1&#038;viewMode=list"><embed id="doc_550498903456028" name="doc_550498903456028" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=7471024&#038;access_key=key-p93ty9pxdq5mjrr7zmh&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<hr />
<h1>Patrones de diseño</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/7471031/Refcardz-08-Design-Patterns">http://www.scribd.com/doc/7471031/Refcardz-08-Design-Patterns</a><br />
</p>
<p><object id="doc_876236136780956" name="doc_876236136780956" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=7471031&#038;access_key=key-12w3e63rpa7n8kka3bxy&#038;page= 1&#038;viewMode=list"><embed id="doc_876236136780956" name="doc_876236136780956" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=7471031&#038;access_key=key-12w3e63rpa7n8kka3bxy&#038;page= 1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<hr />
<h1>CSS Core 1</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/7407101/Refcardz-19-Core-CSS-Part-1">http://www.scribd.com/doc/7407101/Refcardz-19-Core-CSS-Part-1</a><br />
</p>
<p><object id="doc_565855432707490" name="doc_565855432707490" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=7407101&#038;access_key=key-68jvpddbatc1qznw390&#038;page=1&#038;viewMode=list"><embed id="doc_565855432707490" name="doc_565855432707490" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=7407101&#038;access_key=key-68jvpddbatc1qznw390&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object></p>
<hr />
<h1>CSS Core 2</h1>
<p>
<a target="_blank" href="http://www.scribd.com/doc/7407114/Refcardz-25-Core-CSS-Part-2">http://www.scribd.com/doc/7407114/Refcardz-25-Core-CSS-Part-2</a><br />
</p>
<p><object id="doc_884314071143014" name="doc_884314071143014" height="490" width="630" type="application/x-shockwave-flash" data="http://d1.scribdassets.com/ScribdViewer.swf" style="outline:none;" ><param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf"><param name="wmode" value="opaque"><param name="bgcolor" value="#ffffff"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="FlashVars" value="document_id=7407114&#038;access_key=key-21n6ttxdsugz7ei81fk8&#038;page=1&#038;viewMode=list"><embed id="doc_884314071143014" name="doc_884314071143014" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=7407114&#038;access_key=key-21n6ttxdsugz7ei81fk8&#038;page=1&#038;viewMode=list" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="490" width="630" wmode="opaque" bgcolor="#ffffff"></embed></object><br />
</center></p>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/09/phpmyadmin-mostrar-todos-los-registros-y-otras-configuraciones-ocultas.html' rel='bookmark' title='Permanent Link: phpMyAdmin &#8211; Mostrar todos los registros y otras configuraciones ocultas.'>phpMyAdmin &#8211; Mostrar todos los registros y otras configuraciones ocultas.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/06/30/torpedos-chuletas-y-cheat-sheets-para-el-desarrollador-web-cojonudo-bacancito-y-cool.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin &#8211; Mostrar todos los registros y otras configuraciones ocultas.</title>
		<link>http://nomikos.info/2010/06/09/phpmyadmin-mostrar-todos-los-registros-y-otras-configuraciones-ocultas.html</link>
		<comments>http://nomikos.info/2010/06/09/phpmyadmin-mostrar-todos-los-registros-y-otras-configuraciones-ocultas.html#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:55:19 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[Herramientas para programación web]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=1455</guid>
		<description><![CDATA[phpmyadmin es muy mezquino al momento de listar registros de tablas, por defecto muestra sólo de a 30. Hay una manera de mostrar todos los registros apretando un botón. En el archivo de configuración de phpmyadmin config.inc.php puedes agregar este valor: 1$cfg&#91;'ShowAll'&#93; = true; Ahora tienes el botón [Show all] o [Mostrar todo]: Puedes usarlo [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/07/20/phpmyadmin-autentificacion-en-localhost-y-en-sevidores-en-linea.html' rel='bookmark' title='Permanent Link: phpMyAdmin &#8211; Autentificación en localhost y en sevidores en línea.'>phpMyAdmin &#8211; Autentificación en localhost y en sevidores en línea.</a></li>
<li><a href='http://nomikos.info/2010/07/12/codeigniter-como-acceder-a-valores-en-el-archivo-de-configuracion.html' rel='bookmark' title='Permanent Link: Codeigniter &#8211; Cómo acceder a valores en el archivo de configuración.'>Codeigniter &#8211; Cómo acceder a valores en el archivo de configuración.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>phpmyadmin es muy mezquino al momento de listar registros de tablas, por defecto muestra sólo de a 30. Hay una manera de mostrar todos los registros apretando un botón.</p>
<p>En el archivo de configuración de phpmyadmin <em>config.inc.php</em> puedes agregar este valor:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$cfg</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ShowAll'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Ahora tienes el botón [Show all] o [Mostrar todo]:</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/06/phpmyadmin-show-all.png"><img src="http://nomikos.info/wp-content/uploads/2010/06/phpmyadmin-show-all.png" alt="" title="phpmyadmin-show-all" width="625" height="184" class="aligncenter size-full wp-image-1456" /></a></p>
<p>Puedes usarlo con confianza con hasta 3000 registros (dependiendo de la cantidad de columnas) &#8211;con demasiados puedes quedarte esperando eternamente.</p>
<h1>Otros valores interesantes:</h1>
<p></p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Máximo de registros al listar tablas<br />
</span><span style="color: #000088;">$cfg</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'MaxRows'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">300</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;"># Guardar en un log todas las consultas hechas<br />
</span><span style="color: #000088;">$cfg</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'QueryHistoryDB'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;"># Si usas lo anterior conviene limitar el largo del log<br />
</span><span style="color: #000088;">$cfg</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'QueryHistoryMax'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Estos y otros valores por defecto están definidos en <em>libraries/config.default.php</em>. Para cambiarlos copialos a <em>config.inc.php</em>.</p>
<h1>Y dónde está config.inc.php?:</h1>
<p></p>
<p>Sí los has instalado automáticamente, como por ejemplo con apt-get:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ find <span style="color: #339933;">/</span>etc <span style="color: #339933;">-</span>name config<span style="color: #339933;">.</span>inc<span style="color: #339933;">.</span>php</div></td></tr></tbody></table></div>
<p>Si no, busca donde lo instalaste (¬_¬), debiera estar en el directorio raíz de phpmyadmin. Si sólo encuentras <em>config.sample.inc.php</em>, cópialo a <em>config.inc.php</em> y ponle bueno.</p>
<p>Más info en <a target="_blank" href="http://wiki.phpmyadmin.net/pma/Config">http://wiki.phpmyadmin.net/pma/Config</a></p>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/07/20/phpmyadmin-autentificacion-en-localhost-y-en-sevidores-en-linea.html' rel='bookmark' title='Permanent Link: phpMyAdmin &#8211; Autentificación en localhost y en sevidores en línea.'>phpMyAdmin &#8211; Autentificación en localhost y en sevidores en línea.</a></li>
<li><a href='http://nomikos.info/2010/07/12/codeigniter-como-acceder-a-valores-en-el-archivo-de-configuracion.html' rel='bookmark' title='Permanent Link: Codeigniter &#8211; Cómo acceder a valores en el archivo de configuración.'>Codeigniter &#8211; Cómo acceder a valores en el archivo de configuración.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/06/09/phpmyadmin-mostrar-todos-los-registros-y-otras-configuraciones-ocultas.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Función PHP para obtener IP del cliente.</title>
		<link>http://nomikos.info/2010/06/02/funcion-php-para-obtener-ip-del-cliente.html</link>
		<comments>http://nomikos.info/2010/06/02/funcion-php-para-obtener-ip-del-cliente.html#comments</comments>
		<pubDate>Wed, 02 Jun 2010 16:47:09 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=1240</guid>
		<description><![CDATA[Obtener la dirección IP del cliente sirve para muchas cosas, por ejemplo para guardarla en logs de acceso. 12345function getIp&#40;&#41; &#123; &#160; $hostip = @gethostbyname&#40;$_SERVER&#91;'REMOTE_ADDR'&#93;&#41;; &#160; return long2ip&#40;ip2long&#40;$hostip&#41;&#41;; &#125; Pero también es muy útil para realizar depuración remota: 1234567891011121314# anotar mi IP $ip = 'xxx.xxx.xxx.xxx'; # si no estoy en localhost if &#40;$_SERVER&#91;'REMOTE_ADDR'&#93; != '127.0.0.1'&#41; [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/02/funcion-php-para-depurar.html' rel='bookmark' title='Permanent Link: Función PHP para depurar.'>Función PHP para depurar.</a></li>
<li><a href='http://nomikos.info/2009/06/17/funcion-php-para-reinvertir-bbcode.html' rel='bookmark' title='Permanent Link: Función PHP para reinvertir BBCode.'>Función PHP para reinvertir BBCode.</a></li>
<li><a href='http://nomikos.info/2009/05/16/funcion-php-para-transformar-fechas-formateadas-a-timeunix.html' rel='bookmark' title='Permanent Link: Función PHP para transformar fechas formateadas a unixtime.'>Función PHP para transformar fechas formateadas a unixtime.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Obtener la dirección IP del cliente sirve para muchas cosas, por ejemplo para guardarla en logs de acceso.</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> getIp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$hostip</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><a href="http://www.php.net/gethostbyname"><span style="color: #990000;">gethostbyname</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REMOTE_ADDR'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #b1b100;">return</span> <a href="http://www.php.net/long2ip"><span style="color: #990000;">long2ip</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/ip2long"><span style="color: #990000;">ip2long</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$hostip</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Pero también es muy útil para realizar depuración remota:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># anotar mi IP</span><br />
<span style="color: #007800;">$ip</span> = <span style="color: #ff0000;">'xxx.xxx.xxx.xxx'</span>;<br />
<br />
<span style="color: #666666; font-style: italic;"># si no estoy en localhost</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$_SERVER</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #ff0000;">'REMOTE_ADDR'</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">'127.0.0.1'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #666666; font-style: italic;"># comparar con mi IP</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$this</span>-<span style="color: #000000; font-weight: bold;">&gt;</span>getIp<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #007800;">$ip</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># si no coincide matar ejecucuón</span><br />
&nbsp; &nbsp; die<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'x_x morí en la línea '</span> . __line__ . <span style="color: #ff0000;">' del archivo '</span> . __file__<span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># o más grácilmente</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">return</span>;<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>Como obtener IP propia</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># en linux </span><br />
$ <span style="color: #c20cb9; font-weight: bold;">ifconfig</span> <br />
eth1 &nbsp; &nbsp; Link encap:Ethernet &nbsp;HWaddr e0:cb:4e:d4:e0:<span style="color: #000000;">10</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># aqui está</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:xxx.xxx.xxx.xxx &nbsp;Bcast:190.100.123.255 &nbsp;Mask:x.x.x.x<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx<span style="color: #000000; font-weight: bold;">/</span>xx Scope:Link<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP BROADCAST RUNNING MULTICAST &nbsp;MTU:<span style="color: #000000;">1500</span> &nbsp;Metric:<span style="color: #000000;">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:<span style="color: #000000;">809347</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:<span style="color: #000000;">25086</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">1000</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:<span style="color: #000000;">75990540</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">75.9</span> MB<span style="color: #7a0874; font-weight: bold;">&#41;</span> &nbsp;TX bytes:<span style="color: #000000;">2637607</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2.6</span> MB<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Interrupt:<span style="color: #000000;">27</span> Base address:0x2000 <br />
lo &nbsp; &nbsp; &nbsp; &nbsp;Link encap:Local Loopback &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet addr:127.0.0.1 &nbsp;Mask:255.0.0.0<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inet6 addr: ::<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">128</span> Scope:Host<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UP LOOPBACK RUNNING &nbsp;MTU:<span style="color: #000000;">16436</span> &nbsp;Metric:<span style="color: #000000;">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX packets:<span style="color: #000000;">25</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> frame:<span style="color: #000000;">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TX packets:<span style="color: #000000;">25</span> errors:<span style="color: #000000;">0</span> dropped:<span style="color: #000000;">0</span> overruns:<span style="color: #000000;">0</span> carrier:<span style="color: #000000;">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; collisions:<span style="color: #000000;">0</span> txqueuelen:<span style="color: #000000;">0</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RX bytes:<span style="color: #000000;">2411</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2.4</span> KB<span style="color: #7a0874; font-weight: bold;">&#41;</span> &nbsp;TX bytes:<span style="color: #000000;">2411</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2.4</span> KB<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># En MS-Windows usar línea de comando</span><br />
ipconfig<br />
<br />
<span style="color: #666666; font-style: italic;"># O usar algún sitio web como</span><br />
http:<span style="color: #000000; font-weight: bold;">//</span>www.ip-adress.com<span style="color: #000000; font-weight: bold;">/</span></div></td></tr></tbody></table></div>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/02/funcion-php-para-depurar.html' rel='bookmark' title='Permanent Link: Función PHP para depurar.'>Función PHP para depurar.</a></li>
<li><a href='http://nomikos.info/2009/06/17/funcion-php-para-reinvertir-bbcode.html' rel='bookmark' title='Permanent Link: Función PHP para reinvertir BBCode.'>Función PHP para reinvertir BBCode.</a></li>
<li><a href='http://nomikos.info/2009/05/16/funcion-php-para-transformar-fechas-formateadas-a-timeunix.html' rel='bookmark' title='Permanent Link: Función PHP para transformar fechas formateadas a unixtime.'>Función PHP para transformar fechas formateadas a unixtime.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/06/02/funcion-php-para-obtener-ip-del-cliente.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Función PHP para depurar.</title>
		<link>http://nomikos.info/2010/06/02/funcion-php-para-depurar.html</link>
		<comments>http://nomikos.info/2010/06/02/funcion-php-para-depurar.html#comments</comments>
		<pubDate>Wed, 02 Jun 2010 09:09:12 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=1227</guid>
		<description><![CDATA[Tal vez haya una mejor manera, pero este método lo uso hace mucho tiempo. 123456function d&#40;$var, $exit = 0&#41; &#123; &#160; &#160; echo '&#60;pre&#62;' . var_export&#40;$var, 1&#41; . '&#60;/pre&#62;'; &#160; &#160; if &#40;$exit&#41; &#160; &#160; &#160; &#160; exit; &#125; Y dices: 123456789# la puedes aplicar sobre cualquier tipo de variable: # enteros, cadenas, objetos, etc... [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/02/funcion-php-para-obtener-ip-del-cliente.html' rel='bookmark' title='Permanent Link: Función PHP para obtener IP del cliente.'>Función PHP para obtener IP del cliente.</a></li>
<li><a href='http://nomikos.info/2009/05/16/funcion-php-para-transformar-fechas-formateadas-a-timeunix.html' rel='bookmark' title='Permanent Link: Función PHP para transformar fechas formateadas a unixtime.'>Función PHP para transformar fechas formateadas a unixtime.</a></li>
<li><a href='http://nomikos.info/2009/06/17/funcion-php-para-reinvertir-bbcode.html' rel='bookmark' title='Permanent Link: Función PHP para reinvertir BBCode.'>Función PHP para reinvertir BBCode.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Tal vez haya una mejor manera, pero este método lo uso hace mucho tiempo.</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> d<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span> <span style="color: #000088;">$exit</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;pre&gt;'</span> <span style="color: #339933;">.</span> <a href="http://www.php.net/var_export"><span style="color: #990000;">var_export</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/pre&gt;'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$exit</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span style="color: #990000;">exit</span></a><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Y dices:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># la puedes aplicar sobre cualquier tipo de variable:<br />
</span><span style="color: #666666; font-style: italic;"># enteros, cadenas, objetos, etc...<br />
</span>d<span style="color: #009900;">&#40;</span><span style="color: #000088;">$objeto</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># resultado de ejemplo:<br />
</span>stdClass<span style="color: #339933;">::</span>__set_state<span style="color: #009900;">&#40;</span><a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">'user_login'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'admin'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">'user_email'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'direccion@email.com'</span><span style="color: #339933;">,</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span></div></td></tr></tbody></table></div>
<p>Más adelante me gustaría referirme a <a target="_blank"  href="http://www.firephp.org/">firephp</a> que usa la consola de mensajes de <a target="_blank" href="http://getfirebug.com/">firebug</a>. La ventaja que tiene es no interrumpir el flujo del script, especialmente en depuración remota y en sitios online pero yo le veo un par de  desventajas cruciales&#8230; Para depuración de verdad: <a target="_blank" href="http://xdebug.org/">xdebug</a>&#8230;</p>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/02/funcion-php-para-obtener-ip-del-cliente.html' rel='bookmark' title='Permanent Link: Función PHP para obtener IP del cliente.'>Función PHP para obtener IP del cliente.</a></li>
<li><a href='http://nomikos.info/2009/05/16/funcion-php-para-transformar-fechas-formateadas-a-timeunix.html' rel='bookmark' title='Permanent Link: Función PHP para transformar fechas formateadas a unixtime.'>Función PHP para transformar fechas formateadas a unixtime.</a></li>
<li><a href='http://nomikos.info/2009/06/17/funcion-php-para-reinvertir-bbcode.html' rel='bookmark' title='Permanent Link: Función PHP para reinvertir BBCode.'>Función PHP para reinvertir BBCode.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/06/02/funcion-php-para-depurar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MOC – music on console. Edición de playlist.</title>
		<link>http://nomikos.info/2010/05/31/moc-%e2%80%93-music-on-console-edicion-de-playlist.html</link>
		<comments>http://nomikos.info/2010/05/31/moc-%e2%80%93-music-on-console-edicion-de-playlist.html#comments</comments>
		<pubDate>Mon, 31 May 2010 23:21:17 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[Music on console - moc]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=1167</guid>
		<description><![CDATA[PHP tiene una sintaxis basada en C. Así que si sabes PHP no debiera costarte mucho leer código C estructurado (C++es orientado a objetos y es muy diferente) Así que estudiando el playlist_file.c sabemos como moc lee y escribe sus playlists en formato m3u. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879... /* Save plist in m3u format. Strip pathes by strip_path [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/05/29/moc-music-on-console-reproductor-de-audio-en-consola-para-linux.html' rel='bookmark' title='Permanent Link: MOC &#8211; music on console. Reproductor de audio en consola para linux.'>MOC &#8211; music on console. Reproductor de audio en consola para linux.</a></li>
<li><a href='http://nomikos.info/2010/05/31/moc-music-on-console-error-debido-al-volumen-alto.html' rel='bookmark' title='Permanent Link: MOC &#8211; music on console. Error debido al volumen alto.'>MOC &#8211; music on console. Error debido al volumen alto.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>PHP tiene una sintaxis basada en C. Así que si sabes PHP no debiera costarte mucho leer código C estructurado (C++es orientado a objetos y es muy diferente) Así que estudiando el <a target="_blank" href="http://moc.sourcearchive.com/documentation/2.5.0~alpha4plus-psvn20091009/playlist__file_8c-source.html">playlist_file.c</a> sabemos como <em>moc</em> lee y escribe sus playlists en formato m3u.</p>
<div class="codecolorer-container cpp blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">...<br />
<span style="color: #ff0000; font-style: italic;">/* Save plist in m3u format. Strip pathes by strip_path bytes.<br />
&nbsp;* If save_serial is not 0, the playlist serial is saved in a<br />
&nbsp;* comment. */</span><br />
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span> plist_save_m3u <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">struct</span> plist <span style="color: #000040;">*</span>plist,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>fname,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> strip_path,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> save_serial<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">FILE</span> <span style="color: #000040;">*</span>file<span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #0000ff;">int</span> i<span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp;debug <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Saving playlist to '%s'&quot;</span>, fname<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span><span style="color: #008000;">&#40;</span>file <span style="color: #000080;">=</span> <span style="color: #0000dd;">fopen</span><span style="color: #008000;">&#40;</span>fname, <span style="color: #FF0000;">&quot;w&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; error <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Can't save playlist: %s&quot;</span>, <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>flock<span style="color: #008000;">&#40;</span>fileno<span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span>, LOCK_EX<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; logit <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Can't flock() the playlist file: %s&quot;</span>, <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;#EXTM3U<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; error <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Error writing playlist: %s&quot;</span>, <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fclose</span> <span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>save_serial <span style="color: #000040;">&amp;&amp;</span> <span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;#MOCSERIAL: %d<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plist_get_serial<span style="color: #008000;">&#40;</span>plist<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; error <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Error writing playlist: %s&quot;</span>, <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fclose</span> <span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>num<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>plist_deleted<span style="color: #008000;">&#40;</span>plist, i<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">int</span> ret<span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #ff0000; font-style: italic;">/* EXTM3U */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">tags</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ret <span style="color: #000080;">=</span> <span style="color: #0000dd;">fprintf</span> <span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;#EXTINF:%d,%s<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">tags</span><span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span><span style="color: #0000dd;">time</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">title_tags</span> <span style="color: #008080;">?</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">title_tags</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080;">:</span> plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">title_file</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ret <span style="color: #000080;">=</span> <span style="color: #0000dd;">fprintf</span> <span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;#EXTINF:%d,%s<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #0000dd;">0</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">title_file</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>ret <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; error <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Error writing playlist: %s&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fclose</span> <span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #ff0000; font-style: italic;">/* file */</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">fprintf</span><span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, plist<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>items<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">file</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000040;">+</span> strip_path<span style="color: #008000;">&#41;</span> <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; error <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Error writing playlist: %s&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">fclose</span> <span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>flock<span style="color: #008000;">&#40;</span>fileno<span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span>, LOCK_UN<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; logit <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Can't flock() (unlock) the playlist file: %s&quot;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">fclose</span><span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; error <span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Error writing playlist: %s&quot;</span>, <span style="color: #0000dd;">strerror</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">errno</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp;<span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp;<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
...</div></td></tr></tbody></table></div>
<p>Básicamente:</p>
<div class="codecolorer-container cpp blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339900;"># La línea 42 escribe duración (radios online: -1) y título:</span><br />
<span style="color: #0000dd;">fprintf</span> <span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;#EXTINF: %d, %s&quot;</span>, <span style="color: #0000dd;">time</span>, tags <span style="color: #008080;">?</span> tags <span style="color: #008080;">:</span> title<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #339900;"># La línea 59 escribe nombre archivo</span><br />
<span style="color: #0000dd;">fprintf</span> <span style="color: #008000;">&#40;</span>file, <span style="color: #FF0000;">&quot;%s&quot;</span>, file<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></td></tr></tbody></table></div>
<p>Ejemplo:<br />
archivo: ~/.moc/playlist.m3u</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009933; font-style: italic;">/**<br />
<br />
#EXTM3U<br />
#MOCSERIAL: 512<br />
#EXTINF:-1,Groove Salad (Soma FM)<br />
http://streamer-mtc-aa01.somafm.com:80/stream/1018<br />
#EXTINF:258,Groove Armada - groove is on (Love Box)<br />
/home/nomikos/Music/Groove Armada - Love Box/groove_is_on.mp3<br />
<br />
**/</span></div></div>
<p><a href="http://nomikos.info/wp-content/uploads/2010/05/moc-playlist.png"><img src="http://nomikos.info/wp-content/uploads/2010/05/moc-playlist.png" alt="" title="moc playlist" width="584" height="313" class="aligncenter size-full wp-image-1193" /></a></p>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/05/29/moc-music-on-console-reproductor-de-audio-en-consola-para-linux.html' rel='bookmark' title='Permanent Link: MOC &#8211; music on console. Reproductor de audio en consola para linux.'>MOC &#8211; music on console. Reproductor de audio en consola para linux.</a></li>
<li><a href='http://nomikos.info/2010/05/31/moc-music-on-console-error-debido-al-volumen-alto.html' rel='bookmark' title='Permanent Link: MOC &#8211; music on console. Error debido al volumen alto.'>MOC &#8211; music on console. Error debido al volumen alto.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/05/31/moc-%e2%80%93-music-on-console-edicion-de-playlist.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La función explode es sensible a mayúsculas y minúsculas.</title>
		<link>http://nomikos.info/2010/05/31/la-funcion-explode-es-sensible-a-mayusculas-y-minusculas.html</link>
		<comments>http://nomikos.info/2010/05/31/la-funcion-explode-es-sensible-a-mayusculas-y-minusculas.html#comments</comments>
		<pubDate>Mon, 31 May 2010 04:40:58 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=1127</guid>
		<description><![CDATA[explode es sensible a mayúsculas y minúsculas&#8230; Y me acabo de dar cuenta! Después de re-tantos años de usarlo. Cierto es que el uso más común de explode es trozar pizzas, como lo ejemplifica el manual de PHP: 12345# Example 1 $pizza &#160;= &#34;piece1 piece2 piece3 piece4 piece5 piece6&#34;; $pieces = explode&#40;&#34; &#34;, $pizza&#41;; echo [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2009/05/16/funcion-php-para-transformar-fechas-formateadas-a-timeunix.html' rel='bookmark' title='Permanent Link: Función PHP para transformar fechas formateadas a unixtime.'>Función PHP para transformar fechas formateadas a unixtime.</a></li>
<li><a href='http://nomikos.info/2010/06/02/funcion-php-para-depurar.html' rel='bookmark' title='Permanent Link: Función PHP para depurar.'>Función PHP para depurar.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><em>explode</em> es sensible a mayúsculas y minúsculas&#8230; <img src='http://nomikos.info/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' />  Y me acabo de dar cuenta! Después de re-tantos años de usarlo. Cierto es que el uso más común de <em>explode</em> es trozar pizzas, como lo ejemplifica el manual de PHP:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Example 1<br />
</span><span style="color: #000088;">$pizza</span> &nbsp;<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;piece1 piece2 piece3 piece4 piece5 piece6&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pieces</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pizza</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pieces</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// piece1</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$pieces</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// piece2</span></div></td></tr></tbody></table></div>
<p>Pero no siempre se aplica así. Estaba recién cortando cadenas de texto con la desfachatez que dan años de circo:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Audi A4 1.9 TDI 130 Quattro Sport 5dr'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$tok</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'AUDI'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$model</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tok</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$model</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtok"><span style="color: #990000;">strtok</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$model</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Lo anterior debe dar el modelo: &#8220;A4&#8243;. O debiera, si <em>explode</em> no fuera a sensible a mayúsculas y minúsculas. Pero como lo es me quedo sin poder determinar el modelo del autazo. </p>
<p>Tuve que ir al manual de PHP <a target="_blank" href="http://php.net/manual/en/function.explode.php">http://php.net/manual/en/function.explode.php</a> para convencerme. Y sorpresa, no dice nada al respecto! Ya podría echarle la culpa a alguien si se perdía plata <img src='http://nomikos.info/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>Hay una página de manual de PHP alternativa en que un usuario lo comenta y propone una función explodei, que es case-insensitive:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #009933; font-style: italic;">/**<br />
siavash79_99 at yahoo dot com<br />
19-Nov-2003 05:24<br />
here is a tested case-insensitive explode I named it explodei()<br />
works cool :-)<br />
**/</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> explodei<span style="color: #009900;">&#40;</span><span style="color: #000088;">$separator</span><span style="color: #339933;">,</span> <span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$limit</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strlen"><span style="color: #990000;">strlen</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$separator</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pos</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/stripos"><span style="color: #990000;">stripos</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$separator</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #339933;">||</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#40;</span><span style="color: #000088;">$limit</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$limit</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$string</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000088;">$string</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/substr"><span style="color: #990000;">substr</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pos</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$len</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009933; font-style: italic;">/**<br />
If your php version is &lt; 5, you'll need to add stripos() to your script.<br />
See http://php.net/function.stripos<br />
**/</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>Fuente: <a target="_blank" href="http://theserverpages.com/php/manual/en/function.explode.php#37563">http://theserverpages.com/php/manual/en/function.explode.php#37563</a></p>
<p>A simple vista parece correcta, pero hay una manera más simple y rápida:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Audi A4 1.9 TDI 130 Quattro Sport 5dr'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$tok</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'AUDI'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$model</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/strtoupper"><span style="color: #990000;">strtoupper</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tok</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <a href="http://www.php.net/strtoupper"><span style="color: #990000;">strtoupper</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$model</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/strtok"><span style="color: #990000;">strtok</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$model</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Sí, usando <em>explode</em> en cadenas con igual <em>case</em> debiera funcionar. Es un truco que se usa bastante en consultas a bases de datos cuando interesa considerar mayúsculas y minúsculas como iguales.</p>
<div class="codecolorer-container sql blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> tabla <span style="color: #993333; font-weight: bold;">WHERE</span> UPPER<span style="color: #66cc66;">&#40;</span>esto<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">=</span> UPPER<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Esto'</span><span style="color: #66cc66;">&#41;</span>;</div></td></tr></tbody></table></div>
<hr />
<p>Ja! Lo comenté en php.net y ahora forma parte del manual en línea de PHP. <img src='http://nomikos.info/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /><br />
clap, clap, clap, gracias, clap, clap, clap,  gracias, gracias.</p>
<p><a href="http://nomikos.info/wp-content/uploads/2010/05/Explode-is-case-sensitive.png"><img src="http://nomikos.info/wp-content/uploads/2010/05/Explode-is-case-sensitive.png" alt="" title="Explode is case sensitive" width="627" height="507" class="aligncenter size-full wp-image-1199" /></a></p>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2009/05/16/funcion-php-para-transformar-fechas-formateadas-a-timeunix.html' rel='bookmark' title='Permanent Link: Función PHP para transformar fechas formateadas a unixtime.'>Función PHP para transformar fechas formateadas a unixtime.</a></li>
<li><a href='http://nomikos.info/2010/06/02/funcion-php-para-depurar.html' rel='bookmark' title='Permanent Link: Función PHP para depurar.'>Función PHP para depurar.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/05/31/la-funcion-explode-es-sensible-a-mayusculas-y-minusculas.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codificación de caracteres: UTF-8 o ISO-8859-1.</title>
		<link>http://nomikos.info/2010/05/23/codificacion-de-caracteres-utf-8-o-iso-8859-1.html</link>
		<comments>http://nomikos.info/2010/05/23/codificacion-de-caracteres-utf-8-o-iso-8859-1.html#comments</comments>
		<pubDate>Mon, 24 May 2010 01:19:01 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=969</guid>
		<description><![CDATA[photo credit: drewgstephens Usar UTF-8 (Unicode) o ISO-8859-1 (Alfabetos usados en occidente) en la codificación de caracteres no es una decisión que deba hacerse a la ligera. Consideraciones principales: 1.- Bytes requeridos: UTF-8 puede usar hasta 4 bytes para codificar en vez de uno solo (ISO-8859-1). Un byte alcanza para 256 combinaciones con sus ocho [...]]]></description>
			<content:encoded><![CDATA[<div class=""photodropper><a href="http://www.flickr.com/photos/22809317@N04/4498469322/" title="Gmail can't handle unicode names" target="_blank"><img src="http://farm5.static.flickr.com/4053/4498469322_85b0d6ec32.jpg" alt="Gmail can't handle unicode names" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://nomikos.info/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/22809317@N04/4498469322/" title="drewgstephens" target="_blank">drewgstephens</a></small></div>
<p>Usar UTF-8 (Unicode) o ISO-8859-1 (Alfabetos usados en occidente) en la codificación de caracteres no es una decisión que deba hacerse a la ligera.</p>
<p><strong>Consideraciones principales:</strong></p>
<p>1.- Bytes requeridos: UTF-8 puede usar hasta 4 bytes para codificar en vez de uno solo (ISO-8859-1). Un byte alcanza para 256 combinaciones con sus ocho bits que son suficientes para todo el alfabeto latino usado en occidente. Con dos bytes abarca el cirílico (ruso) y griego (también usado en matemáticas). Más bytes pueden ser necesarios para alfabetos extremadamente complicados como el chino, árabe o hindi.<br />
Esto debe ser considerado al definir campos en una base de datos.</p>
<p>2.- Funciones manejadoras: En PHP funciones para tratar cadenas de texto como substr(), strpos(), strlen() no están pensadas para ambientes multibytes. Esto fácilmente puede devenir en variados errores. También la función mail() y las para expresiones regulares pueden verse afectadas. Para estos casos existen funciones dedicadas cuyo sufijo es mb_ (de multibyte).<br />
No es necesario reescribir el código para adaptar scripts a un ambiente multibyte. PHP puede realizar sobrecarga de funciones (<a target="_blank" href="http://www.php.net/manual/en/mbstring.overload.php">Function Overloading Features</a>) si se lo indicas en su archivo de configuración php.ini, con lo que automáticamente usará las funciones más adecuadas.</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># usa 1 para sobrecargar mail()</span><br />
<span style="color: #666666; font-style: italic;"># usa 2 para sobrecargar funciones de cadenas</span><br />
<span style="color: #666666; font-style: italic;"># usa 4 para sobrecargar expresiones regulares</span><br />
<span style="color: #666666; font-style: italic;"># usa la suma para varias opciones</span><br />
mbstring.func_overload = <span style="color: #000000;">7</span></div></td></tr></tbody></table></div>
<p>Averiguar si tienes la extensión <em>mbstring</em> necesaria para tener estas características:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ php -i<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> mbstring<br />
<span style="color: #666666; font-style: italic;"># si la tienes debe responder algo como esto</span><br />
mbstring<br />
mbstring extension makes use of <span style="color: #ff0000;">&quot;streamable kanji code filter and converter&quot;</span>, <span style="color: #c20cb9; font-weight: bold;">which</span> is distributed under the GNU Lesser General Public License version <span style="color: #000000;">2.1</span>.<br />
mbstring.detect_order =<span style="color: #000000; font-weight: bold;">&gt;</span> no value =<span style="color: #000000; font-weight: bold;">&gt;</span> no value<br />
mbstring.encoding_translation =<span style="color: #000000; font-weight: bold;">&gt;</span> Off =<span style="color: #000000; font-weight: bold;">&gt;</span> Off<br />
mbstring.func_overload =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">7</span> =<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000;">7</span><br />
mbstring.http_input =<span style="color: #000000; font-weight: bold;">&gt;</span> pass =<span style="color: #000000; font-weight: bold;">&gt;</span> pass<br />
mbstring.http_output =<span style="color: #000000; font-weight: bold;">&gt;</span> pass =<span style="color: #000000; font-weight: bold;">&gt;</span> pass<br />
mbstring.internal_encoding =<span style="color: #000000; font-weight: bold;">&gt;</span> no value =<span style="color: #000000; font-weight: bold;">&gt;</span> no value<br />
mbstring.language =<span style="color: #000000; font-weight: bold;">&gt;</span> neutral =<span style="color: #000000; font-weight: bold;">&gt;</span> neutral<br />
mbstring.strict_detection =<span style="color: #000000; font-weight: bold;">&gt;</span> Off =<span style="color: #000000; font-weight: bold;">&gt;</span> Off<br />
mbstring.substitute_character =<span style="color: #000000; font-weight: bold;">&gt;</span> no value =<span style="color: #000000; font-weight: bold;">&gt;</span> no value<br />
<br />
<span style="color: #666666; font-style: italic;"># puedes ver todos los módulos (extensiones) cargados con la opción -m</span><br />
$ php <span style="color: #660033;">-m</span><br />
<br />
$ php -m<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> mbstring<br />
mbstring</div></td></tr></tbody></table></div>
<p>Si no está puedes instalar esta extensión PHP fácilmente (phpMyAdmin siempre la pide a gritos):</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Ubuntu</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php5-mbstring<br />
<span style="color: #666666; font-style: italic;"># Red Hat y compañia</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> yum <span style="color: #c20cb9; font-weight: bold;">install</span> php-mbstring</div></td></tr></tbody></table></div>
<p>Si puedes elegir prefiere UTF-8 que es un sobreconjunto de ISO-8859-1. Ambos funcionarán igual de bien para aplicaciones en español o inglés. Pero si se da el caso en que debas considerar idiomas no occidentales, entonces estos consejos te servirán.</p>
<p>Otros comandos útiles pueden ser los siguientes:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># codificación de caracteres interna en PHP</span><br />
mb_internal_encoding<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'UTF-8'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
<br />
<span style="color: #666666; font-style: italic;"># codificación de caracteres en la base de datos</span><br />
<span style="color: #666666; font-style: italic;"># al iniciar una conexión con PHP</span><br />
mysql_query<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;SET NAMES 'utf8';&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
mysql_query<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;SET CHARACTER SET 'utf8';&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
<br />
<span style="color: #666666; font-style: italic;"># codificación de caracteres enviada al cliente o</span><br />
<span style="color: #666666; font-style: italic;"># navegador desde PHP</span><br />
header<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">'Content-type: text/html; charset=UTF-8'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;<br />
<br />
<span style="color: #666666; font-style: italic;"># encabezado en documentos XML</span><br />
<span style="color: #000000; font-weight: bold;">&lt;</span>?xml <span style="color: #007800;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #007800;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> ?<span style="color: #000000; font-weight: bold;">&gt;</span> <br />
<br />
<span style="color: #666666; font-style: italic;"># META en documentos HTML/XHTML</span><br />
<span style="color: #000000; font-weight: bold;">&lt;</span>meta http-equiv=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #007800;">content</span>=<span style="color: #ff0000;">&quot;text/html;charset=utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></div></td></tr></tbody></table></div>
<hr />
<div class=""photodropper><a href="http://www.flickr.com/photos/72645106@N00/4590213645/" title="Unicode poster" target="_blank"><img src="http://farm5.static.flickr.com/4028/4590213645_23524cc74e.jpg" alt="Unicode poster" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-sa/2.0/" title="Attribution-ShareAlike License" target="_blank"><img src="http://nomikos.info/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/72645106@N00/4590213645/" title="Max Braun" target="_blank">Max Braun</a></small></div>
]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2010/05/23/codificacion-de-caracteres-utf-8-o-iso-8859-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SheBang (sharp bang) #!.</title>
		<link>http://nomikos.info/2009/12/01/shebang-sharp-bang.html</link>
		<comments>http://nomikos.info/2009/12/01/shebang-sharp-bang.html#comments</comments>
		<pubDate>Tue, 01 Dec 2009 15:27:20 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=922</guid>
		<description><![CDATA[Los símbolos #! (sharp bang) aparecen en la primera línea de muchos scripts, especialmente los de perl. Tambien podemos usarlos en PHP. SheBang es un alias geek de sharp bang. Nota: El shell es el intérprete de comandos en tu terminal linux. Generalmente bash. Lo que hace es indicarle al shell que cargue el programa [...]]]></description>
			<content:encoded><![CDATA[<p>Los símbolos #! (sharp bang) aparecen en la primera línea de muchos scripts, especialmente los de perl. Tambien podemos usarlos en PHP. SheBang es un alias geek de sharp bang.</p>
<p>Nota: El shell es el intérprete de comandos en tu terminal linux. Generalmente bash.</p>
<p>Lo que hace es indicarle al shell que cargue el programa descrito a continuación de ! (bang) y que le pase el nombre del archivo (del script en que está) como primer parámetro.</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># en archivo hello-world.php:</span><br />
<span style="color: #666666; font-style: italic;">#! /usr/bin/php</span><br />
<span style="color: #000000; font-weight: bold;">&lt;</span>?php<br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Hello World!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;<br />
?<span style="color: #000000; font-weight: bold;">&gt;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># hacer archivo ejecutable</span><br />
<span style="color: #c20cb9; font-weight: bold;">chmod</span> a+x hello-world.php<br />
<br />
<span style="color: #666666; font-style: italic;"># ahora si ejecutamos</span><br />
.<span style="color: #000000; font-weight: bold;">/</span>hello-world.php<br />
<br />
<span style="color: #666666; font-style: italic;"># producirá</span><br />
Hello World<span style="color: #000000; font-weight: bold;">!</span></div></td></tr></tbody></table></div>
<p>Como # inicia comentarios en PHP no será tomado en cuenta por el propio interprete PHP, sólo por el shell. Incluso no es necesaria la extensión .php.</p>
<p>Fuente: <a href="http://c2.com/cgi/wiki?SheBang">http://c2.com/cgi/wiki?SheBang</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2009/12/01/shebang-sharp-bang.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress escapa automáticamente las comillas simples!.</title>
		<link>http://nomikos.info/2009/10/23/wordpress-escapa-automaticamente-las-comillas-simples.html</link>
		<comments>http://nomikos.info/2009/10/23/wordpress-escapa-automaticamente-las-comillas-simples.html#comments</comments>
		<pubDate>Fri, 23 Oct 2009 05:17:06 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress/Buddypres]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=887</guid>
		<description><![CDATA[En wp-settings.php alrededor de la línea 581 de wordpress 2.8 encontramos: 123456789101112// If already slashed, strip. if &#40; get_magic_quotes_gpc&#40;&#41; &#41; &#123; &#160; &#160; $_GET &#160; &#160;= stripslashes_deep&#40;$_GET &#160; &#41;; &#160; &#160; $_POST &#160; = stripslashes_deep&#40;$_POST &#160;&#41;; &#160; &#160; $_COOKIE = stripslashes_deep&#40;$_COOKIE&#41;; &#125; // Escape with wpdb. $_GET &#160; &#160;= add_magic_quotes&#40;$_GET &#160; &#41;; $_POST &#160; = [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/09/uso-de-urls-personalizados-para-plugins-de-wordpress.html' rel='bookmark' title='Permanent Link: Uso de URLs personalizados para plugins de wordpress.'>Uso de URLs personalizados para plugins de wordpress.</a></li>
<li><a href='http://nomikos.info/2009/07/14/creacion-de-urls-personalizados-para-plugins-de-wordpress-wp_rewrite.html' rel='bookmark' title='Permanent Link: Creación de URLs personalizados para plugins de wordpress.'>Creación de URLs personalizados para plugins de wordpress.</a></li>
<li><a href='http://nomikos.info/2009/08/18/realizar-una-actualizacion-automatica-de-wordpress-sin-dar-datos-de-ftp.html' rel='bookmark' title='Permanent Link: Realizar una actualización automática de WordPress sin dar datos de FTP.'>Realizar una actualización automática de WordPress sin dar datos de FTP.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>En wp-settings.php alrededor de la línea 581 de wordpress 2.8 encontramos:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// If already slashed, strip.</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <a href="http://www.php.net/get_magic_quotes_gpc"><span style="color: #990000;">get_magic_quotes_gpc</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$_GET</span> &nbsp; &nbsp;<span style="color: #339933;">=</span> stripslashes_deep<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span> &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$_POST</span> &nbsp; <span style="color: #339933;">=</span> stripslashes_deep<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span> &nbsp;<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$_COOKIE</span> <span style="color: #339933;">=</span> stripslashes_deep<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">// Escape with wpdb.</span><br />
<span style="color: #000088;">$_GET</span> &nbsp; &nbsp;<span style="color: #339933;">=</span> add_magic_quotes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span> &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$_POST</span> &nbsp; <span style="color: #339933;">=</span> add_magic_quotes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span> &nbsp;<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$_COOKIE</span> <span style="color: #339933;">=</span> add_magic_quotes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_COOKIE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$_SERVER</span> <span style="color: #339933;">=</span> add_magic_quotes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>O sea que independientemente de tu configuración en php.ini:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">;</span> Magic quotes <span style="color: #b1b100;">for</span> incoming GET<span style="color: #339933;">/</span>POST<span style="color: #339933;">/</span>Cookie data<span style="color: #339933;">.</span><br />
magic_quotes_gpc <span style="color: #339933;">=</span> Off</div></td></tr></tbody></table></div>
<p>WP siempre escapará las comillas.</p>
<p>Luego en teoría no sería necesario usar addslashes o addslashes_gpc:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$keyword</span> <span style="color: #339933;">=</span> addslashes_gpc<span style="color: #009900;">&#40;</span><a href="http://www.php.net/trim"><span style="color: #990000;">trim</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keyword'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>Y siempre deberíamos usar stripslashes al reescribir datos pasados por $_POST:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;input type=&quot;text&quot; name=&quot;keyword&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <a href="http://www.php.net/htmlspecialchars"><span style="color: #990000;">htmlspecialchars</span></a><span style="color: #009900;">&#40;</span><a href="http://www.php.net/stripslashes"><span style="color: #990000;">stripslashes</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keyword'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;</div></td></tr></tbody></table></div>
<p>La verdad es que no me gusta nada. Pero no queda más que aceptarlo como una medida de seguridad adecuada para permitir la creación de tantos plugins para WP a la mayor cantidad de codificadores.</p>
<p>Como sea, es mejor no olvidar esta característica de WP.</p>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/06/09/uso-de-urls-personalizados-para-plugins-de-wordpress.html' rel='bookmark' title='Permanent Link: Uso de URLs personalizados para plugins de wordpress.'>Uso de URLs personalizados para plugins de wordpress.</a></li>
<li><a href='http://nomikos.info/2009/07/14/creacion-de-urls-personalizados-para-plugins-de-wordpress-wp_rewrite.html' rel='bookmark' title='Permanent Link: Creación de URLs personalizados para plugins de wordpress.'>Creación de URLs personalizados para plugins de wordpress.</a></li>
<li><a href='http://nomikos.info/2009/08/18/realizar-una-actualizacion-automatica-de-wordpress-sin-dar-datos-de-ftp.html' rel='bookmark' title='Permanent Link: Realizar una actualización automática de WordPress sin dar datos de FTP.'>Realizar una actualización automática de WordPress sin dar datos de FTP.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2009/10/23/wordpress-escapa-automaticamente-las-comillas-simples.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualizando php 5.2 en Centos 5.</title>
		<link>http://nomikos.info/2009/10/01/upgrade-php-5-2-en-centos.html</link>
		<comments>http://nomikos.info/2009/10/01/upgrade-php-5-2-en-centos.html#comments</comments>
		<pubDate>Thu, 01 Oct 2009 17:33:39 +0000</pubDate>
		<dc:creator>NomikOS</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nomikos.info/?p=879</guid>
		<description><![CDATA[Centos 5 viene con php 5.1.6. Hay importantes paquetes que necesitan php 5.2+ como por ejemplo phpmyadmin 3.2.2. Encontré un repositorio dedicado a esto. Haz un nuevo archivo: 1vi /etc/yum.repos.d/centos-test.repo Agrega estas líneas: 123456&#91;c5-testing&#93; name=CentOS-5 Testing baseurl=http://dev.centos.org/centos/5/testing/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing Ejecuta la actualización con yum 1yum --enablerepo=c5-testing update php Ahora lo tienes&#8230; 1234php -v PHP [...]


Posts relacionados:<ol><li><a href='http://nomikos.info/2010/05/31/repositorios-centosplus-y-rpmforgedag-en-centos.html' rel='bookmark' title='Permanent Link: Yum y repositorios centosplus y RPMforge/DAG en Centos.'>Yum y repositorios centosplus y RPMforge/DAG en Centos.</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Centos 5 viene con php 5.1.6.<br />
Hay importantes paquetes que necesitan php 5.2+ como por ejemplo phpmyadmin 3.2.2. Encontré un repositorio dedicado a esto.</p>
<p>Haz un nuevo archivo:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>yum.repos.d<span style="color: #000000; font-weight: bold;">/</span>centos-test.repo</div></td></tr></tbody></table></div>
<p>Agrega estas líneas:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">&#91;</span>c5-testing<span style="color: #7a0874; font-weight: bold;">&#93;</span><br />
<span style="color: #007800;">name</span>=CentOS-<span style="color: #000000;">5</span> Testing<br />
<span style="color: #007800;">baseurl</span>=http:<span style="color: #000000; font-weight: bold;">//</span>dev.centos.org<span style="color: #000000; font-weight: bold;">/</span>centos<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">5</span><span style="color: #000000; font-weight: bold;">/</span>testing<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$basearch</span><span style="color: #000000; font-weight: bold;">/</span><br />
<span style="color: #007800;">enabled</span>=<span style="color: #000000;">0</span><br />
<span style="color: #007800;">gpgcheck</span>=<span style="color: #000000;">1</span><br />
<span style="color: #007800;">gpgkey</span>=http:<span style="color: #000000; font-weight: bold;">//</span>dev.centos.org<span style="color: #000000; font-weight: bold;">/</span>centos<span style="color: #000000; font-weight: bold;">/</span>RPM-GPG-KEY-CentOS-testing</div></td></tr></tbody></table></div>
<p>Ejecuta la actualización con yum</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">yum <span style="color: #660033;">--enablerepo</span>=c5-testing update php</div></td></tr></tbody></table></div>
<p>Ahora lo tienes&#8230;</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">php <span style="color: #660033;">-v</span><br />
PHP 5.2.9 <span style="color: #7a0874; font-weight: bold;">&#40;</span>cli<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>built: Jul &nbsp;<span style="color: #000000;">8</span> <span style="color: #000000;">2009</span> 06:03:<span style="color: #000000;">36</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>c<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1997</span>-<span style="color: #000000;">2009</span> The PHP Group<br />
Zend Engine v2.2.0, Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>c<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">1998</span>-<span style="color: #000000;">2009</span> Zend Technologies</div></td></tr></tbody></table></div>
<p>Aprovecha de actualizar php-mcrypt para tranquilizar a phpmyadmin.</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">yum <span style="color: #660033;">--enablerepo</span>=c5-testing update php-mcrypt</div></td></tr></tbody></table></div>
<p>Chequea que php-mcrypt sea de la misma version que php (5.2.9 en este caso).</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rpm <span style="color: #660033;">-qa</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> php-mcrypt<br />
php-mcrypt-5.2.9-<span style="color: #000000;">2</span>.el5.centos.3</div></td></tr></tbody></table></div>
<p>Ahora las extensiones para php son cargadas desde sus propios archivos .ini ubicados en /etc/php.d</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>php.d<span style="color: #000000; font-weight: bold;">/</span>mcrypt.ini</div></td></tr></tbody></table></div>
<p>Para habilitar mcrypt asegúrate de remover ; en la segunda línea.</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">; Enable mcrypt extension module<br />
<span style="color: #007800;">extension</span>=mcrypt.so</div></td></tr></tbody></table></div>
<p>Reinicia apache</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">service httpd restart</div></td></tr></tbody></table></div>


<p>Posts relacionados:<ol><li><a href='http://nomikos.info/2010/05/31/repositorios-centosplus-y-rpmforgedag-en-centos.html' rel='bookmark' title='Permanent Link: Yum y repositorios centosplus y RPMforge/DAG en Centos.'>Yum y repositorios centosplus y RPMforge/DAG en Centos.</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://nomikos.info/2009/10/01/upgrade-php-5-2-en-centos.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
