<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.7" -->
<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/"
	>

<channel>
	<title>Ebarbeito</title>
	<link>http://enrique.barbeito.org</link>
	<description>Página personal de Enrique Barbeito García</description>
	<pubDate>Sat, 26 Jan 2008 18:55:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.7</generator>
	<language>es-es</language>
			<item>
		<title>Chuleta PHP y más</title>
		<link>http://enrique.barbeito.org/blog/chuleta-php-y-mas/</link>
		<comments>http://enrique.barbeito.org/blog/chuleta-php-y-mas/#comments</comments>
		<pubDate>Wed, 04 May 2005 17:31:29 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>WebWebWeb</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=517</guid>
		<description><![CDATA[ 


Si hace cosa de un par de días conocía la ya famosa chuleta CSS (ha sido referenciada en multitud de bitácoras, que haya visto) ayer noche me topaba, vía Urbiweb, con el recurso homólogo al anteriormente citado pero destinado a programadores de PHP.
PHP Cheat Sheet es otra hoja de referencia rápida, a modo de chuleta, [...] ]]></description>
			<content:encoded><![CDATA[<p>
<div class="cajitaDcha"><a href="http://www.ilovejackdaniels.com/php_cheat_sheet.png" title="php_cheat_sheet.png"><img src="http://enrique.barbeito.org/img/php_sheet.png" alt="php_sheet.png" border="0" /></a></div>
</p>
<p>Si hace cosa de un par de días conocía la ya famosa <a href="http://blog.enrique.barbeito.org/archivos/2005/05/02/chuleta-css/" title="Chuleta CSS">chuleta <acronym title="Cascading Style Sheets">CSS</acronym></a> (ha sido referenciada en multitud de bitácoras, que haya visto) ayer noche me topaba, vía <a href="http://www.urbiweb.com/2005/28/04/php-cheat-sheet/" title="PHP Cheat Sheet">Urbiweb</a>, con el recurso homólogo al anteriormente citado pero destinado a programadores de <acronym title="PHP Hypertext Preprocessor"><acronym title="Pre-Hypertext Processing">PHP</acronym></acronym>.</p>
<p><a href="http://www.ilovejackdaniels.com/php/php-cheat-sheet/" title="PHP Cheat Sheet"><acronym title="Pre-Hypertext Processing">PHP</acronym> Cheat Sheet</a> es otra hoja de referencia rápida, a modo de <em>chuleta</em>, creada por <em>Dave Child</em> (<a href="http://www.ilovejackdaniels.com/" title="ILoveJackDaniels.com"><em>ILoveJackDaniels.com</em></a>) e igualmente categorizada y organizada que la ya comentada <em>chuleta <acronym title="Cascading Style Sheets">CSS</acronym></em> (<em><acronym title="Cascading Style Sheets">CSS</acronym> Cheat Sheet</em>). Echando un vistazo rápido, se pueden ver alrededor de toda la hoja multitud de nombres de funciones de <acronym title="Pre-Hypertext Processing">PHP</acronym> predefinidas clasificadas por <em>tema</em> (funciones para manejo de arrays, fechas, ficheros, envío de correo, &#8230;, para tratamiento de números, cadenas y expresiones regulares, sesiones, variables, etc. Además de citar los arrays predefinidos de <acronym title="Pre-Hypertext Processing">PHP</acronym> <em>SuperGlobals</em>). También nos podemos topar con secciones destacadas para elementos como la sintaxis a utilizar a la hora de formar expresiones regulares, especificaciones para el formateo de fechas (comentadas y ejemplificadas), modificadores <acronym title="Perl Compatible Regular Expressions">PRCE</acronym>, el orden de los parámetros para algunas funciones (¿y esto?) y los modos posibles para la apertura de ficheros.</p>
<p>Sería demasiado difícil plasmar todos los aspectos más importantes de <acronym title="Pre-Hypertext Processing">PHP</acronym> en una sola cara de una hoja DIN-A4, sin embargo el nivel de información concentrada de esta hoja de referencia, pensada para ser impresa, no deja de tener su utilidad. Digo yo que todas las herramientas que nos puedan facilitar el ahorro de tiempo a la hora de buscar referencias, por pequeñas que sean, deberían ser siempre bienvenidas.</p>
<p>Y ya puestos, parece que Dave mantiene una categoría en su bitácora dedicada a la publicación de estas <em>chuletas</em> que haya o vaya a crear. La ha nombrado <a href="http://www.ilovejackdaniels.com/cheat-sheets/" title="Cheat Sheets - ILoveJackDaniels.com">Cheat Sheets</a> y puede ser buena idea utilizar su feed <acronym title="Really Simple Syndication">RSS</acronym> para no perder de vista las posibles jugadas que realice dentro de ésta. Además del par de hojas que ya hemos comentado, existe una tercera dedicada a los <a href="http://www.ilovejackdaniels.com/resources/colour-chart/" title="RGB Hex Colour Chart">códigos RGB</a> para obtención de colores útiles en el diseño de páginas web. Esta hoja se encuentra [ <a href="http://www.ilovejackdaniels.com/colourchart.png" title="colourchart.png">aquí</a> ] por si a alguien le pudiera interesar.</p>
<p>Recurso: <a href="http://www.ilovejackdaniels.com/php/php-cheat-sheet/" title="PHP Cheat Sheet"><acronym title="Pre-Hypertext Processing">PHP</acronym> Cheat Sheet</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/chuleta-php-y-mas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP 5 Power Programming</title>
		<link>http://enrique.barbeito.org/blog/php-5-power-programming/</link>
		<comments>http://enrique.barbeito.org/blog/php-5-power-programming/#comments</comments>
		<pubDate>Sat, 30 Apr 2005 09:04:13 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Libros</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=514</guid>
		<description><![CDATA[ 


Hace unos días leía en VivaPHP y en Php y otras yerbas la posibildad de descarga del libro PHP 5 Power Programming, escrito por Andi Gutmans, co-creador de PHP5 y Zend Engine, junto con los desarrolladores Stig Bakken y Derick Rethans. Una obra de más de setecientas páginas enfocadas a destripar las entrañas de esta [...] ]]></description>
			<content:encoded><![CDATA[<p>
<div class="cajitaDcha"><a href="http://phptr.com/bookstore/product.asp?isbn=013147149X&#038;rl=1" title="PHP 5 Power Programming"><img src="http://enrique.barbeito.org/img/php5_power.jpg" alt="php5_power.jpg" border="0" /></a></div>
</p>
<p>Hace unos días leía en <a href="http://www.vivaphp.com.ar/article-php5-power-programming.html" title="PHP 5 Power Programming, el libro, gratis">VivaPHP</a> y en <a href="http://php.apsique.com/node/430" title="Libro a leer: PHP 5 Power Programming">Php y otras yerbas</a> la posibildad de descarga del libro <em><acronym title="Pre-Hypertext Processing">PHP</acronym> 5 Power Programming</em>, escrito por <a href="http://www.zend.com/person.php?handle=andi" title="Who's Who in PHP Development - Andi Gutmans">Andi Gutmans</a>, co-creador de PHP5 y Zend Engine, junto con los desarrolladores <a href="http://www.zend.com/person.php?handle=ssb" title="Who's Who in PHP Development - Stig Bakken">Stig Bakken</a> y <a href="http://www.derickrethans.nl" title="No Need for a Map - Derick Rethans">Derick Rethans</a>. Una obra de más de setecientas páginas enfocadas a destripar las entrañas de esta quinta versión del lenguaje, cubriendo todas las características de las que dispone.</p>
<p>Editado por <a href="http://www.prenhall.com/" title="Prentice Hall">Prentice Hall</a>, el libro se encuentra disponible a la venta con un precio de alrededor 39.99$ (en <a href="http://www.cocodrilolibros.com/osc/catalog/product_info.php?products_id=23834" title="Cocodrilo - Libros de Inform&aacute;tica">Cocodrilo</a> lo tenemos por unos 37.95 €). Se ha publicado para libre descarga bajo licencia <acronym title="OpenContent License">OPL</acronym>. A groso modo, los contenidos son los siguientes:</p>
<ul>
<li>Chapter 1: What Is New in <acronym title="Pre-Hypertext Processing">PHP</acronym> 5?</li>
<li>Chapter 2: <acronym title="Pre-Hypertext Processing">PHP</acronym> 5 Basic Language</li>
<li>Chapter 3: <acronym title="Pre-Hypertext Processing">PHP</acronym> 5 OO Language</li>
<li>Chapter 4: <acronym title="Pre-Hypertext Processing">PHP</acronym> 5 Advanced OOP and Design Patterns</li>
<li>Chapter 5: How to Write a Web Application with <acronym title="Pre-Hypertext Processing">PHP</acronym></li>
<li>Chapter 6: Databases with <acronym title="Pre-Hypertext Processing">PHP</acronym> 5</li>
<li>Chapter 7: Error Handling</li>
<li>Chapter 8: <acronym title="eXtensible Markup Language">XML</acronym> with <acronym title="Pre-Hypertext Processing">PHP</acronym> 5</li>
<li>Chapter 9: Mainstream Extensions</li>
<li>Chapter 10: Using PEAR</li>
<li>Chapter 11: Important PEAR Packages</li>
<li>Chapter 12: Building PEAR Components</li>
<li>Chapter 13: Making the Move</li>
<li>Chapter 14: Performance</li>
<li>Chapter 15: An Introduction to Writing <acronym title="Pre-Hypertext Processing">PHP</acronym> Extensions</li>
<li>Chapter 16: <acronym title="Pre-Hypertext Processing">PHP</acronym> Shell Scripting</li>
<li>A. PEAR and PECL Package Index</li>
<li>B. phpDocumentor Format Reference</li>
<li>C. Zend Studio Quick Start</li>
</ul>
<p>Descarga: <a href="http://www.phptr.com/content/images/013147149X/downloads/013147149X_book.pdf" title="013147149X_book.pdf"><acronym title="Pre-Hypertext Processing">PHP</acronym> 5 Power Programming</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/php-5-power-programming/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programación segura en PHP</title>
		<link>http://enrique.barbeito.org/blog/programacion-segura-en-php/</link>
		<comments>http://enrique.barbeito.org/blog/programacion-segura-en-php/#comments</comments>
		<pubDate>Fri, 11 Feb 2005 23:18:50 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Seguridad</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=486</guid>
		<description><![CDATA[  Ayer conocía, vía diariolinuxÂ·com (?), un completo documento sobre prácticas seguras a la hora de programar en PHP. El texto se titula PHP Security Guide y pretende ser una guía para desarrolladores de PHP que cubra los aspectos más comunes sobre la seguridad en este entorno. Está basada en el trabajo de Chris Shiflett, [...] ]]></description>
			<content:encoded><![CDATA[<p> Ayer conocía, vía <del><a href="http://www.diariolinux.com/noticias.php?ID=736&#038;PHPSESSID=6adc004f4addd45b169bb598fda6dccc" title="PHP seguro: aprende a programar de forma robusta ">diariolinuxÂ·com</a></del> (<abbr title="Enlace roto">?</abbr>), un completo documento sobre prácticas seguras a la hora de programar en <acronym title="Pre-Hypertext Processing">PHP</acronym>. El texto se titula <em><a href="http://phpsec.org/projects/guide/" title="PHP Security Guide"><acronym title="Pre-Hypertext Processing">PHP</acronym> Security Guide</a></em> y pretende ser una guía para desarrolladores de <acronym title="Pre-Hypertext Processing">PHP</acronym> que cubra los aspectos más comunes sobre la seguridad en este entorno. Está basada en el trabajo de <em><a href="http://shiflett.org/" title="Chris Shiflett">Chris Shiflett</a></em>, <a href="http://shiflett.org/php-security.pdf" title="PHP Security"><acronym title="Pre-Hypertext Processing">PHP</acronym> Security</a>, y se encuentra en la versión 1.0, disponible tanto en formato <a href="http://phpsec.org/projects/guide/" title="PHP Security Guide - HTML"><acronym title="HyperText Markup Language">HTML</acronym></a> como en <a href="http://phpsec.org/php-security-guide.xml" title="PHP Security Guide - XML">DocBook</a> (y se espera que también se encuentre disponible en <acronym title="Portable Document Format">PDF</acronym>)</p>
<p>Esta guía es uno de los proyectos del grupo, <a href="http://phpsec.org/about/news/31jan2005.html" title="Leading PHP Experts Join Forces to Establish the PHP Security Consortium">recientemente creado</a>, <a href="http://phpsec.org/" title="PHP Security Consortium"><acronym title="Pre-Hypertext Processing">PHP</acronym> Security Consortium</a> (<abbr title="PHP Security Consortium">PHPSC</abbr>, abreviado). Éste fue fundado el pasado mes de enero y está formado por expertos en <acronym title="Pre-Hypertext Processing">PHP</acronym> de diversos países. El objetivo del <em>PHPSC</em> es fomentar el uso de prácticas seguras de programación; para ello se intenta educar a la comunidad de desarrolladores de <acronym title="Pre-Hypertext Processing">PHP</acronym> acerca de la seguridad e importancia que tiene dentro este entorno.</p>
<p>Para los interesados en desarrollo de aplicaciones con <acronym title="Pre-Hypertext Processing">PHP</acronym> este recurso debería ser visita obligada o, cuando menos, muy recomendable. Además de que la guía puede resultar extremadamente útil al disponer de multitud de ejemplos prácticos que refuerzan las explicaciones. El índice de contenidos es el que sigue:</p>
<dt>1. Overview </dt>
<dd>
<dl>
<dt>1.1 What Is Security? </dt>
<dt>1.2 Basic Steps </dt>
<dt>1.3 Register Globals </dt>
<dt>1.4 Data Filtering </dt>
<dd>
<dl>
<dt>1.4.1 The Dispatch Method </dt>
<dt>1.4.2 The Include Method </dt>
<dt>1.4.3 Filtering Examples </dt>
<dt>1.4.4 Naming Conventions </dt>
<dt>1.4.5 Timing </dt>
</dl>
</dd>
<dt>1.5 Error Reporting </dt>
</dl>
</dd>
<dt>2. Form Processing </dt>
<dd>
<dl>
<dt>2.1 Spoofed Form Submissions </dt>
<dt>2.2 Spoofed <acronym title="HyperText Transfer Protocol">HTTP</acronym> Requests </dt>
<dt>2.3 Cross-Site Scripting </dt>
<dt>2.4 Cross-Site Request Forgeries </dt>
</dl>
</dd>
<dt>3. Databases and <acronym title="Structured Query Language">SQL</acronym> </dt>
<dd>
<dl>
<dt>3.1 Exposed Access Credentials </dt>
<dt>3.2 <acronym title="Structured Query Language">SQL</acronym> Injection </dt>
</dl>
</dd>
<dt>4. Sessions </dt>
<dd>
<dl>
<dt>4.1 Session Fixation </dt>
<dt>4.2 Session Hijacking </dt>
</dl>
</dd>
<dt>5. Shared Hosts </dt>
<dd>
<dl>
<dt>5.1 Exposed Session Data </dt>
<dt>5.2 Browsing the Filesystem </dt>
</dl>
</dd>
<dt>6. About </dt>
<dd>
<dl>
<dt>6.1 About This Guide </dt>
<dt>6.2 About the <acronym title="Pre-Hypertext Processing">PHP</acronym> Security Consortium </dt>
<dt>6.3 More Information </dt>
</dl>
</dd>
<p><del>Lo comentan también en <a href="http://sigt.debianitas.net/archivos/categorias/php/programacion_segura_en_php.xhtml" title="Programación segura en PHP">SigT</a></del> (<abbr title="Enlace roto">?</abbr>). Más información acerca de <acronym title="Pre-Hypertext Processing">PHP</acronym> Security Consortium:</p>
<ul>
<li><a href="http://phpsec.org/articles/" title="PHP Security Consortium: Articles">Artículos</a></li>
<li><a href="http://phpsec.org/library/" title="PHP Security Consortium: Library">Biblioteca</a></li>
<li><a href="http://phpsec.org/projects/" title="PHP Security Consortium: Projects">Proyectos</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/programacion-segura-en-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mi primera clase con PHP</title>
		<link>http://enrique.barbeito.org/blog/mi-primera-clase-con-php/</link>
		<comments>http://enrique.barbeito.org/blog/mi-primera-clase-con-php/#comments</comments>
		<pubDate>Sun, 18 Jul 2004 19:36:22 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Programación</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=411</guid>
		<description><![CDATA[  &#60;?php
         class MiClase
         &#123;
                var $variable;
                function MiMetodo [...] ]]></description>
			<content:encoded><![CDATA[<p> <pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
         <span style="color: #000000; font-weight: bold;">class</span> MiClase
         <span style="color: #66cc66;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0000ff;">$variable</span>;
                <span style="color: #000000; font-weight: bold;">function</span> MiMetodo <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
                <span style="color: #66cc66;">&#123;</span>
                      <span style="color: #0000ff;">$feature</span> = <span style="color: #ff0000;">&quot;orientado a objetos!&quot;</span>;
                      <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">&quot;¡Hola $this-&gt;variable $feature &lt;br /&gt;&quot;</span>;
                <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span>
        <span style="color: #0000ff;">$objeto</span> = <span style="color: #000000; font-weight: bold;">new</span> MiClase;
        <span style="color: #0000ff;">$objeto</span> -&gt; <span style="color: #006600;">variable</span> = <span style="color: #ff0000;">&quot;mundo&quot;</span>;
        <span style="color: #0000ff;">$objeto</span> -&gt; <span style="color: #006600;">MiMetodo</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/mi-primera-clase-con-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>show_source() - :syntax on (y 2)</title>
		<link>http://enrique.barbeito.org/blog/showsource-syntax-on-y-2/</link>
		<comments>http://enrique.barbeito.org/blog/showsource-syntax-on-y-2/#comments</comments>
		<pubDate>Sat, 15 May 2004 01:10:14 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Programación</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=388</guid>
		<description><![CDATA[  Sí, son las tres de la mañana y tengo sueño. Pero antes de meterme en la cama me ha dado por hacer una tontería. Una de esas que espero que podáis mejorar vosotros que sabéis mucho más de estas cosas. Se trata de un chapuScript (un script chapuza, cómo no jeje) relacionado con la [...] ]]></description>
			<content:encoded><![CDATA[<p> Sí, son las tres de la mañana y tengo sueño. Pero antes de meterme en la cama me ha dado por hacer una tontería. Una de esas que espero que podáis mejorar vosotros que sabéis mucho más de estas cosas. Se trata de un <i>chapuScript</i> (un script chapuza, cómo no jeje) relacionado con la <a href="http://blog.enrique.barbeito.org/archives/2004/05/15/showsource-syntax-on/" title="show_source() - :syntax on">anterior anotación a ésta</a>. Consiste en <i>ir contra corriente</i> y tener la poca vergüenza de decidir emplear parámetros en la <acronym title="Uniform Resource Locator">URL</acronym> para pasar variables al script que finalmente lanza la función show_source().</p>
<p>Si, ya nos hemos puesto de acuerdo hace un post de que esta forma de emplear <i>show_source</i> no es la adecuada. Pero el sueño es que es así&#8230; he intentado que el script sea lo más <i>tiquismiquis</i> posible y que no deje más que visualizar el contenido de aquellos ficheros alojados en el mismo directorio que donde se encuentre. También comprueba cosas como si el parámetro pasado es un fichero que existe, o tiene permisos adecuados (644) y cosas así.</p>
<p>En fin, ahí va (más vale no utilizarlo jeje)</p>
<p><pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?</span>
        <span style="color: #808080; font-style: italic;">/*
         * Muestra el contenido del fichero de texto especificado.
         * Utilícese para mostrar ficheros PHP. Colorea su sintaxis.
         * Por motivos de seguridad no funciona con ficheros fuera de ./
         * El fichero a mostrar debe tener permisos 644
         */</span>
&nbsp;
        <a href="http://www.php.net/define"><span style="color: #000066;">define</span></a> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;kRET_2&quot;</span>,<span style="color: #ff0000;">&quot;Fichero no especificado. Añada: ?file=nombreFichero&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <a href="http://www.php.net/define"><span style="color: #000066;">define</span></a> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;kRET_3&quot;</span>,<span style="color: #ff0000;">&quot;El fichero especificado no existe.&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <a href="http://www.php.net/define"><span style="color: #000066;">define</span></a> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;kRET_4&quot;</span>,<span style="color: #ff0000;">&quot;No tiene los permisos adecuados.&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <a href="http://www.php.net/define"><span style="color: #000066;">define</span></a> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;kRET_5&quot;</span>,<span style="color: #ff0000;">&quot;La lectura solo se permite en el directorio actual.&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/empty"><span style="color: #000066;">empty</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'file'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                <span style="color: #0000ff;">$retorna</span> = <span style="color: #cc66cc;">2</span>;
        <span style="color: #b1b100;">elseif</span> <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/file_exists"><span style="color: #000066;">file_exists</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'file'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                <span style="color: #0000ff;">$retorna</span> = <span style="color: #cc66cc;">3</span>;
        <span style="color: #b1b100;">else</span>
        <span style="color: #66cc66;">&#123;</span>
                <span style="color: #0000ff;">$permisos</span> = <a href="http://www.php.net/base_convert"><span style="color: #000066;">base_convert</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/fileperms"><span style="color: #000066;">fileperms</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'file'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #cc66cc;">10</span>, <span style="color: #cc66cc;">8</span><span style="color: #66cc66;">&#41;</span>;
                <span style="color: #0000ff;">$permisos</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$permisos</span>, <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$permisos</span><span style="color: #66cc66;">&#41;</span> - <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
                <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$permisos</span> != <span style="color: #cc66cc;">644</span><span style="color: #66cc66;">&#41;</span>
                        <span style="color: #0000ff;">$retorna</span> = <span style="color: #cc66cc;">4</span>;
                <span style="color: #b1b100;">else</span>
                <span style="color: #66cc66;">&#123;</span>
                        <span style="color: #0000ff;">$fic</span> = <span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'file'</span><span style="color: #66cc66;">&#93;</span>;
                        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$fic</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>==<span style="color: #ff0000;">'/'</span><span style="color: #66cc66;">&#41;</span> xor <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$fic</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>==<span style="color: #ff0000;">'.'</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; <span style="color: #0000ff;">$fic</span><span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>==<span style="color: #ff0000;">'.'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                                <span style="color: #0000ff;">$retorna</span> = <span style="color: #cc66cc;">5</span>;
                        <span style="color: #b1b100;">else</span>
                                <span style="color: #0000ff;">$retorna</span> = <span style="color: #cc66cc;">1</span>;
                <span style="color: #66cc66;">&#125;</span>
        <span style="color: #66cc66;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">switch</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$retorna</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#123;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">1</span>: <a href="http://www.php.net/show_source"><span style="color: #000066;">show_source</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'file'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #b1b100;">break</span>;
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">2</span>: <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> kRET_2; <span style="color: #b1b100;">break</span>;
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">3</span>: <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> kRET_3; <span style="color: #b1b100;">break</span>;
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">4</span>: <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> kRET_4; <span style="color: #b1b100;">break</span>;
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">5</span>: <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> kRET_5; <span style="color: #b1b100;">break</span>;
        <span style="color: #66cc66;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></p>
<p>Lo he probado un poco (en un servidor local) y parece que funcione bien. Si se le indica un ?file=/etc/passwd devuelve un &#8220;<i>kRET_5</i>&#8220;, si se le pasa un ?file=/etc/shadow te devuelve un&#8221;<i>kRET_4</i>&#8221; (y en caso de tener permisos de lectura daría un &#8220;<i>kRET_5</i>&#8220;), etc.</p>
<p>¿Qué os parece semejante chapuza? ¿Os atreveríais a utilizar algo así en vuestras páginas si quisiérais colorear el código <acronym title="Pre-Hypertext Processing">PHP</acronym>? Adelante, explotarme el código este <i>chapuceitor</i> y darme de collejas. Me lo merezco jaja</p>
<p>Buenas noches.
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/showsource-syntax-on-y-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>show_source() - :syntax on</title>
		<link>http://enrique.barbeito.org/blog/showsource-syntax-on/</link>
		<comments>http://enrique.barbeito.org/blog/showsource-syntax-on/#comments</comments>
		<pubDate>Sat, 15 May 2004 00:43:05 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Programación</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=387</guid>
		<description><![CDATA[  He escogido un titulo algo raro para esta anotación con el fin de mostrar una de esas tantas funciones que nos proporciona PHP. Bueno, en realidad show_source() es un alias a otra función que verdaderamente realiza el trabajo sucio :)
show_source
Descripción: Esta función es un alias de highlight_file().
PHP: show_sorce

Sugiero mirarse la página de highlight_file() :) [...] ]]></description>
			<content:encoded><![CDATA[<p> He escogido un titulo algo raro para esta anotación con el fin de mostrar una de esas tantas funciones que nos proporciona <a href="http://es.php.net" title="PHP Hypertext Preprocessor"><acronym title="Pre-Hypertext Processing">PHP</acronym></a>. Bueno, en realidad <a href="http://es.php.net/manual/es/function.show-source.php" title="PHP: show_source">show_source()</a> es un alias a otra función que verdaderamente realiza el <i>trabajo sucio</i> :)</p>
<blockquote><p><strong>show_source</strong><br />
Descripción: Esta función es un alias de <a href="http://es.php.net/manual/es/function.highlight-file.php" title="PHP: highlight_file">highlight_file()</a>.
<p class="referencia">PHP: show_sorce</p>
</blockquote>
<p>Sugiero mirarse la página de <a href="http://es.php.net/manual/es/function.highlight-file.php" title="PHP: highlight_file">highlight_file()</a> :) Aunque ya adelanto que sirve para imprimir, con colores, el posible código <acronym title="Pre-Hypertext Processing">PHP</acronym> contenido en el fichero que especifiquemos. Resalta de este modo la sintaxis de dicho código y para ello se vale de la serie de colores que <acronym title="Pre-Hypertext Processing">PHP</acronym> tiene definidos en su <i>resaltador de sintaxis</i>.</p>
<p>Pero cuidado, esta función es tan útil como peligrosa. Por ejemplo a la hora de utilizarla pasando información a través de la <acronym title="Uniform Resource Locator">URL</acronym>. Cosas como hacerse un script de este modo:<br />
<pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?</span> <a href="http://www.php.net/show_source"><span style="color: #000066;">show_source</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'file'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #000000; font-weight: bold;">?&gt;</span></pre><br />
Y utilizándolo del modo: show_source.php?file=/etc/passwd obtendríamos el contenido de ese fichero. Es decir, que podríamos tener acceso al contenido de cualquier fichero del sistema en donde tengamos permisos de lectura.</p>
<p>Más vale leerse la página relativa a la función <a href="http://es.php.net/manual/es/function.highlight-file.php" title="PHP: highlight_file">highlight_file()</a> que cuentan cosas interesantes para utilizarla adecuadamente :-)
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/showsource-syntax-on/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Segundo Maratón de Programación PHP de DotGeek</title>
		<link>http://enrique.barbeito.org/blog/segundo-maratn-de-programacin-php-de-dotgeek/</link>
		<comments>http://enrique.barbeito.org/blog/segundo-maratn-de-programacin-php-de-dotgeek/#comments</comments>
		<pubDate>Mon, 12 Apr 2004 13:36:57 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Noticias</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=365</guid>
		<description><![CDATA[  Vía las noticias de Programación en castellano me entero de una competición de programación en PHP que tendrá lugar el día 24 de este mes. Está organizado por DotGeek.org y como ellos mismos dicen, se trata de una competición especial para separar a los frikis (i) de los geeks (i).
En el The DotGeek PHP [...] ]]></description>
			<content:encoded><![CDATA[<p> Vía las <a href="http://www.programacion.com/noticia/815/" title="Segundo maratón de programación PHP de DotGeek">noticias de Programación en castellano</a> me entero de una competición de programación en <acronym title="Pre-Hypertext Processing">PHP</acronym> que tendrá lugar el día 24 de este mes. Está organizado por <a href="http://dotgeek.org/" title="More than Programmers">DotGeek.org</a> y como ellos mismos dicen, se trata de una competición especial para separar a los <em>frikis</em> (<a href="http://es.wikipedia.org/wiki/Friki" title="definición de friki">i</a>) de los <em>geeks</em> (<a href="http://es.wikipedia.org/wiki/Geek" title="definición de geek">i</a>).</p>
<p>En el <em>The DotGeek <acronym title="Pre-Hypertext Processing">PHP</acronym> Programming Marathon</em> se participa a través de Internet, de manera libre y gratuita donde cualquiera pueda participar. Consiste en resolver un determinado problema que se planteará en el canal de chat <em>#dotgeek</em> de la red de <acronym title="Internet Relay Chat">IRC</acronym> <a href="http://www.freenode.net" title="a service of Peer-Directed Projects Center">Freenode</a> (irc.freenode.net). Dicho problema deberá ser resuelto empleando <a href="http://es.php.net" title="PHP Hypertext Preprocessor"><acronym title="Pre-Hypertext Processing">PHP</acronym></a> y alguna base de datos (<a href="http://www.mysql.com/" title="The world's most popular open source database">MySQL</a> o <a href="http://www.postgresql.org" title="PostgreSQL">PostgreSQL</a> por ejemplo). Será anunciado en la fecha ya mencionada: <em>24 de Abril de 2004 @ 7:00 PM Swiss Time (GMT+1)</em>.</p>
<p>A los ganadores les esperan suculentos premios, dependiendo en que posición queden. Para más información sobre estos premios, restricciones en cuanto a la hora de escribir el código y alguna que otra cosilla más:</p>
<ul>
<li><a href="http://marathon.dotgeek.org/" title="The DotGeek PHP Programming Marathon">The DotGeek <acronym title="Pre-Hypertext Processing">PHP</acronym> Programming Marathon</a></li>
</ul>
<p>Suerte para quien decida participar.
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/segundo-maratn-de-programacin-php-de-dotgeek/feed/</wfw:commentRss>
		</item>
		<item>
		<title>gPHPEdit</title>
		<link>http://enrique.barbeito.org/blog/gphpedit/</link>
		<comments>http://enrique.barbeito.org/blog/gphpedit/#comments</comments>
		<pubDate>Tue, 16 Mar 2004 13:29:13 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Software Libre</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=351</guid>
		<description><![CDATA[ 
Viendo que a la hora de trabajar con código PHP bajo sistemas Windows existen diversas aplicaciones concretas para tal fin (además de ser, algunas, increíblemente potentes. Auténticos IDE para programar incluso de modo visual. Un ejemplo es CodeCharge Studio) me puse a buscar alguna herramienta que, más o menos, fuera análoga en sistemas GNU/Linux. Personalmente [...] ]]></description>
			<content:encoded><![CDATA[<div class="cajitaDcha"><a href="http://www.gphpedit.org/" title="PHP/HTML/CSS Development Environment for GNOME"><img src="http://enrique.barbeito.org/img/gphpedit.png" border="0" /></a></div>
<p>Viendo que a la hora de trabajar con código <acronym title="Pre-Hypertext Processing">PHP</acronym> bajo sistemas Windows existen diversas aplicaciones concretas para tal fin (además de ser, algunas, increíblemente potentes. Auténticos IDE para programar incluso de modo visual. Un ejemplo es <a href="http://www.codecharge.com/index2.php" title="Generate database-enabled websites in minutes">CodeCharge Studio</a>) me puse a buscar alguna herramienta que, más o menos, fuera análoga en sistemas <acronym title="GNU\'s Not Unix!">GNU</acronym>/Linux. Personalmente siempre utilizo el editor de textos <a href="http://www.vim.org/" title="vim online">VIM</a> y mi fichero personal de configuración, <a href="http://enrique.barbeito.org/dotfiles/.vimrc" title=".vimrc">.vimrc</a>, para <strike>programar</strike> <a href="http://rivendel.blogalia.com/historias/7563" title="¿Programas o guarreas? (versión Termita)">guarrear</a> en <acronym title="Pre-Hypertext Processing">PHP</acronym> y lo que haga falta :) Y lo cierto es que, sinceramente, ¡no necesito nada más! Una terminal ejecutando VIM en un escritorio virtual y <a href="http://www.mozilla.org/products/firefox/" title="The Browser, Reloaded">Mozilla Firefox</a> en otro.</p>
<p>Pero bueno, volviendo al tema en sí, logré encontrar una <em>joven</em> aplicación que me venía como anillo al dedo; además de ser extremadamente sencilla y configurable. Se trata de <a href="http://www.gphpedit.org/" title="PHP/HTML/CSS Development Environment for GNOME">gPHPEdit</a>, una simple interfaz gráfica GTK2 para la edición de código <acronym title="Pre-Hypertext Processing">PHP</acronym> y, también, <acronym title="HyperText Markup Language">HTML</acronym> y <acronym title="Cascading Style Sheets">CSS</acronym>. Aunque en la propia web de la aplicación se anuncia ésta como un entorno de desarrollo para los lenguajes citados, no es tan complejo; simplemente es un editor de código/texto que incorpora varias características para hacernos más fácil la vida. Las <a href="http://gphpedit.org/features.phtml" title="features/screenshots">características</a> que incluye son:</p>
<ul>
<li><strong>Colorea la sintaxis</strong>. Reconoce elementos propios de lenguajes tales como <acronym title="Pre-Hypertext Processing">PHP</acronym>, <acronym title="HyperText Markup Language">HTML</acronym>, <acronym title="Cascading Style Sheets">CSS</acronym> e incluso <acronym title="Structured Query Language">SQL</acronym>. Reconoce funciones predefinidas de <acronym title="Pre-Hypertext Processing">PHP</acronym> que existen a partir de la versión 4.3.0 de éste. Respecto al coloreado de la sintaxis <acronym title="Structured Query Language">SQL</acronym> está, por el momento, en versión BETA.</li>
<li><strong>Ayuda con el código</strong>. Te echa una mano a la hora de escribir el propio código. Cosas como mostrar un listado de posibles funciones a la hora de escribir las primeras letras de alguna de ellas. Te da explicaciones &#8220;al vuelo&#8221; a la hora de teclear funciones predefinidas del lenguaje y abrir paréntesis (ejemplo: func_get_arg() sobre para qué sirve dicha función y qué posibles parámetros necesita. También tiene incorporado un navegador de funciones y clases visible a través de una columna a la izquierda. Éstas las saca examinando el posible contenido del directorio del cual tengas abierto un script en <acronym title="Pre-Hypertext Processing">PHP</acronym>.</li>
<li><strong>Comprueba el código escrito (y navegación del mismo)</strong>. Es posible comprobar si has metido la pata a la hora de escribir la sintaxis en <acronym title="Pre-Hypertext Processing">PHP</acronym>, indicando con una línea roja (como la que aparece en el corrector ortográfico de <em>Microsoft Word</em> jeje) aquella/s línea/s cercana/s al/los posible/s error/es que detecte (para esto es necesario tener instalado el intérprete php (/usr/bin/php) ya que se vale del mismo para hacer estos chequeos. En cuanto a la navegación del código, tienes disponible una caja para realizar búsquedas y otra para ir a una línea en concreto. Puedes incluso esconder y mostrar el contenido de las funciones que escribas o fragmentos <acronym title="Pre-Hypertext Processing">PHP</acronym> que se encuentren incrustados en un documento <acronym title="HyperText Markup Language">HTML</acronym>.</li>
<li><strong>Ayuda integrada</strong>. Si cuentas con la documentación de <acronym title="Pre-Hypertext Processing">PHP</acronym> debidamente instalada en el disco y además tienes instalado el componente <a href="http://cia.navi.cx/stats/project/gnome/gtkhtml2" title="gtkhtml2">gtkhtml2</a>, podrás acceder de manera <u>instantánea</u> a la documentación con tan solo seleccionar con el ratón la función de la que quieras ayuda y pulsar la tecla F1. La pestaña de ayuda que es generada al pulsar F1 muestra una página que encima tiene hipervínculos, con lo que se puede consultar la ayuda como si de una página web se tratase.</li>
</ul>
<p>Esas son todas las características que se muestran en la página de gPHPEdit. Además cuenta con pestañas para cuando estemos editando más de un fichero a la vez. Tiene unos menús sencillos y sin demasiados cachivaches con los que complicarnos: a destacar el menú de preferencias de la propia aplicación donde incluso puedes seleccionar tipo de fuente, colores, tamaños para cada parte de los distintos lenguajes con los que trabaja (<acronym title="Pre-Hypertext Processing">PHP</acronym>/HTML/CSS). Y como nota final, decir que también cuenta con varias teclas de función preparadas para ejecutar determinadas operaciones más rápidamente, como por ejemplo lanzar el comprobador de sintaxis (F9) o mostrar el navegador de funciones y clases (F8) &#8212;o esconderlo (Shift+F8)&#8212;</p>
<p>El tiempo en el que se consigue acostumbrarse uno a esta aplicación es realmente poco. Utilizándolo varias veces durante un par de días, podremos decir que contamos con una <u>genial</u> aplicación para facilitarnos la vida a la hora de programar/guarrear en <acronym title="Pre-Hypertext Processing">PHP</acronym>. No es una herramienta comparable a la anteriormente citada <em>CodeCharge</em> (ésta es, más bien, un entorno de programación visual para múltiples lenguajes) pero por otro lado es una aplicación sencilla y perfecta para diseñar aplicaciones/páginas web.</p>
<p>El creador y líder del proyecto es <a href="http://www.andyjeffries.co.uk/" title="Andy Jeffries">Andy Jeffries</a> y actualmente la versión más reciente es la <a href="http://gphpedit.org/download/" title="download">0.9.10</a>, publicada el pasado miércoles día 10.
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/gphpedit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Revista: PHP Solutions</title>
		<link>http://enrique.barbeito.org/blog/revista-php-solutions/</link>
		<comments>http://enrique.barbeito.org/blog/revista-php-solutions/#comments</comments>
		<pubDate>Mon, 08 Mar 2004 21:19:32 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>Programación</category>

		<category>PHP</category>

		<guid isPermaLink="false">/?p=347</guid>
		<description><![CDATA[  Lo cierto es que llevaba años sin comprar asiduamente ninguna revista sobre GNU/Linux o temas afines. Hace unos añetes si solía adquirir una o dos al mes: Linux Actual, Solo Programadores Linux o Solo Linux. También me dio una época por comprar @rroba pero al final me pareció tan repetitiva y me decepcionó tanto [...] ]]></description>
			<content:encoded><![CDATA[<p> Lo cierto es que llevaba años sin comprar asiduamente ninguna revista sobre <acronym title="GNU\'s Not Unix!">GNU</acronym>/Linux o temas afines. Hace unos añetes si solía adquirir una o dos al mes: <em>Linux Actual</em>, <em>Solo Programadores Linux</em> o <em>Solo Linux</em>. También me dio una época por comprar <em>@rroba</em> pero al final me pareció tan repetitiva y me decepcionó tanto que creo que fue el detonante de que dejara de comprar más revistas :\</p>
<p>En fin, que desde el mes pasado estoy comprando una revista de reciente aparición. Se llama <a href="http://www.phpsolmag.org/es/index.php" title="PHP Solutions Official Web Site"><acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions</a> y como perfectamente indica su mismo nombre, es una publicación dedicada casi casi exclusivamente al lenguaje de programación <acronym title="Pre-Hypertext Processing">PHP</acronym> (digo casi casi porque, me parece, en el primer número se tocaron otras materias como Java o JavaScript y además prometían seguir aportando temas no tan relacionados con <acronym title="Pre-Hypertext Processing">PHP</acronym>).</p>
<p>Por ahora se han publicado nada más que tres números :) Yo tengo dos de ellos (me falta el primero que veré a ver si puedo conseguirlo a través de algún conocido o por otros medios más costosos). Hoy me he comprado el tercer número que todavía ni siquiera he tenido tiempo ni de abrir. Es una revista proveniente, nada más y nada menos, de Polonia :) y, por ahora, me parece que todos los autores de los artículos son polacos. Se publica en cinco idiomas: español, polaco, francés, alemán y checo alrededor de catorce países: Polonia, Eslovaquia, la República Checa, Alemania, Austria, Bélgica, Suiza, Luxemburgo, Francia, España y México. Respecto a las traducciones a nuestra lengua castellana decir que son muy aceptables. Aunque hay errores bastante visibles y alguna que otra frase un tanto burra. Un ejemplo:</p>
<blockquote><p><cite>Varias horas serán suficientes para preparar un script que reciba y conteste los mensajes improtantes. Podemos aprovechar la tarde antes del viaje: <strong>mientras la esposa hace las maletas</strong> para programarlo.</cite>
<div class="referencia">&#8220;<em>Sistema de notificación de correos recientes</em>&#8221; Piotr Listosz. <acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions nÂº2, pág.28</div>
</blockquote>
<p>La burrada la he puesto en negrita. Uhhhmmm, no es por ser un quisquilloso pero&#8230; joder, ¿no es un pelín bastante machista meter semejante frase? así, sin cortarse un pelo. Luego que lo lea cualquier fémina programadora (que por supuesto existen; aunque estoy por dudar si en Polonia también :\) y vamos, si no manda a cagar al autor&#8230; poco le faltaría jeje.<br />
<a id="more-347"></a><br />
En fin, que <em>se me va la pinza</em>, a lo que íbamos. Creo que es la única revista dedicada a tratar de manera tan exclusiva la programación en <acronym title="Pre-Hypertext Processing">PHP</acronym>. Y lo cierto que para muchos que empezamos nos viene de lujo ;-) El segundo número llevaba artículos para todos los públicos: desde cómo manejar <a href="http://www.phpmyadmin.net/" title="Mysql DB administration tool">phpMyAdmin</a> o tratar a groso modo el tema de las plantillas en <acronym title="Pre-Hypertext Processing">PHP</acronym> hasta explicar muy detalladamente cómo programarse aplicaciones de cierta complejidad, como un sistema de suscripciones seguro. El contenido de la revista se divide en tres partes diferenciadas:
<ul>
<li><em>Principios</em> , donde se tratan temas no demasiado complejos. Ideales para quienes comenzamos a dar nuestros <em>primeros pasitos.</em></li>
<li><em>Proyectos</em> , donde se explica de un modo detallado (paso-a-paso) la programación de completas aplicaciones de varios cientos de líneas. Es de dificultar intermedia, digamos, ya que para los novicios en la programación con <acronym title="Pre-Hypertext Processing">PHP</acronym> mucho del código expuesto aquí todavía les quede algo grande. Pero no deja de ser una excelente fuente de ejemplos y, espero, buenos comentarios y sugerencias para aprender a programar lo más correctamente posible.</li>
<li><em>Técnicas</em> , y ésta es ya la sección que, a mi gusto, es la más compleja y seguramente más útil de toda la revista. Ya que se exponen conceptos y teoría sobre cualquier punto que ataña al lenguaje. En el mes pasado trataban &#8220;<em>DB_DataObject y HTML_QuickForm</em>&#8221; y en el número de este mes tratan &#8220;<em>el uso de <acronym title="eXtensible Markup Language">XML</acronym> en PHP4 y PHP5</em> y &#8220;<em>Construcciones estáticas y finales en PHP5</em>&#8220;. Aunque más de contener mucho peso teórico sigue siendo una sección con elevada carga práctica: una especie de taller donde analizar métodos y técnicas para hacer cosas.</li>
</ul>
<p>Y ahora, una vez presentado un poco el <em>chiringuito</em>, hablemos de su precio. ¡Buf!&#8230; cuesta <strong>7,50€</strong> cada ejemplar. Cada revista tiene unas 75-80 páginas siendo alguna que otra pura publicidad. Yo la verdad que la veo un poco cara. Si nos fijamos son ¡más de mil pesetas de revista! Joder, yo estaba acostumbrado a que me costaran la mitad e incluso menos. Quizás influya el hecho de ser una revista muy especializada, que trata temas muy muy concretos y además no existen revistas de la misma línea. Teniendo en cuenta la cantidad de código que enseñan (que no es poco. Ya digo que casi todos sus artículos tienen una elevada carga práctica y no se cortan ni un pelo en mostrar código :-)), no hay prácticamente casi nada de publicidad entre sus páginas (exceptuando un par de ellas), tienen la amabilidad de tocar temas de casi todos los colores sobre la materia y tocan temas de evidente actualidad (PHP5, por ejemplo)&#8230; yo no la veo -Cara-. Eso sí, -un poco cara- sí. Si la pusieran a 5€ entonces si que no me quejaba jeje ¿Pido mucho? :-)</p>
<p>[ <strong>actualización</strong> ] Empiezo a abrir la revista y leyendo la editorial de este mes me encuentro con un párrafo que viene que ni pintado para completar un poco más esta anotación:</p>
<blockquote><p><cite>Ya que estamos aquí, merece la pena explicar qué es <acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions. El proyecto se creó hace tiempo: mientras leíamos otras revistas de programación echábamos en falta demostraciones prácticas de los scripts descritos, o era necesario cambiar variables globales, o cambiar la versión de MySQL, o resultaba que el script tenía fallos notorios y así una interminable lista de inconvenientes. Primero surgió la idea de incluir un paquete en el <acronym title="Compact Disc">CD</acronym> (por ejemplo FoxServ), en el cual el programa fuese verificando junto con las descripciones precisas de nuestra configuración. Una propuesta interesante fue la de un compañero de Aurox Core Team, que con gusto desarrollaría una versión Live exclusivamente para <acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions. He aquí el primer nombre del proyecto: Aurox Live <acronym title="Pre-Hypertext Processing">PHP</acronym>. (&#8230;)</cite>
<div class="referencia">¡<acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions live! Lukasz Bigo , <acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions nÂº3 pág. 2</div>
</blockquote>
<p>Y ahora que recuerdo, decir también que a esta publicación le acompaña en cada número un <acronym title="Compact Disc">CD</acronym> con una distribución LiveCD preparada para trabajar con PHP4, <acronym title="Pre-Hypertext Processing">PHP</acronym> 5b3 y MySQL. El mes pasado traía una llamada <em>Aurox <acronym title="Pre-Hypertext Processing">PHP</acronym> Live</em> y este mes es una llamada &#8220;<acronym title="Pre-Hypertext Processing">PHP</acronym> Solutions Live&#8221; que no es más que la anterior distribución con un cambio de nombre y alguna otra cosa más. En el <acronym title="Compact Disc">CD</acronym> también se incluye el código que se muestra en los artículos así como una serie de utilidades entre la que podemos destacar a <a href="http://www.ankord.com/phpxedit.html" title="PHP Expert Editor"><acronym title="Pre-Hypertext Processing">PHP</acronym> Expert Editor</a>, un <acronym title="Integrated Development Environment">IDE</acronym> bastante popular para desarrollos en <acronym title="Pre-Hypertext Processing">PHP</acronym>.</p>
<p>En definitiva, una revista <strong>altamente recomendable</strong> en mi opinión para todo aquel interesado en el lenguaje de programación <acronym title="Pre-Hypertext Processing">PHP</acronym>.
</p>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/revista-php-solutions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Primeros pasos con PHP</title>
		<link>http://enrique.barbeito.org/blog/primeros-pasos-con-php/</link>
		<comments>http://enrique.barbeito.org/blog/primeros-pasos-con-php/#comments</comments>
		<pubDate>Sun, 29 Feb 2004 08:08:59 +0000</pubDate>
		<dc:creator>Enrique Barbeito García</dc:creator>
		
		<category>PHP</category>

		<guid isPermaLink="false">/?p=333</guid>
		<description><![CDATA[ 
PHP son las siglas de PHP: Hypertext Preprocessor (y, hace un tiempo, de Personal Home Page), un lenguaje de programación de alto nivel con una sintaxis semejante a otros lenguajes como C o Perl y, además, que hereda ciertos comportamientos de la programación de scripts (guiones) para la Shell (como por ejemplo el uso de [...] ]]></description>
			<content:encoded><![CDATA[<div class="cajitaDcha"><img src="http://enrique.barbeito.org/img/php.gif" alt="PHP" /></div>
<p><a href="http://www.php.net" title="PHP: Hypertext Preprocessor"><acronym title="Pre-Hypertext Processing">PHP</acronym></a> son las siglas de <em>PHP: Hypertext Preprocessor</em> (y, hace un tiempo, de <em>Personal Home Page</em>), un lenguaje de programación de alto nivel con una sintaxis semejante a otros lenguajes como C o <acronym title="Practical Extraction and Report Language">Perl</acronym> y, además, que hereda ciertos comportamientos de la programación de scripts (guiones) para la Shell (como por ejemplo el uso de comillas dobles o simples o la posibilidad de utilizar el operador ` de ejecución). Es un lenguaje interpretado por un servidor web, <a href="http://httpd.apache.org" title="The Apache HTTP Server Project">Apache</a> generalmente, que debe estar previamente preparado para interpretar el código y generar <acronym title="HyperText Markup Language">HTML</acronym> dinámicamente.</p>
<p>Pues bien, hace unas semanas que me interesé por aprender un poco sobre este lenguaje. Básicamente para poder hacerme algunos scripts facilones para la web y, también, porque me han contado que puedes hacer muchas otras cosas con él y no necesariamente en un entorno web; por ejemplo, se puede utilizar el intérprete php en la propia línea de comandos de modo que nos permite escribir scripts para este entorno. También se pueden hacer cosas más complicadas, aplicaciones con interfaz gráfica utilizando librerías preparadas para ello (aunque de esto, no tengo ni idea de cómo están las cosas. De primeras, suena interesante :-))</p>
<p>De los primeros scripts en <acronym title="Pre-Hypertext Processing">PHP</acronym> que hice fue un contador de hits. De estos que se valen de un fichero de texto y van mostrando e incrementando el número que contienen cada vez que un navegante carga tu página en el navegador. Iba a colocarlo por aquí pero al final prefiero no hacerlo, menos mal jajaja, y además no sé ni dónde se encuentra ese script así que&#8230; Luego he ido haciendo algunos otros <em>sin sentido</em> para jugar un poco con la infinidad de funciones predefinidas de las que consta este lenguaje. Y hace algo más de una semana escribí un script para reemplazar al JavaScript que utilizaba en el anterior diseño de esta página y que lo que hacía era mostrar aleatoriamente una imagen (la que se situaba en la esquina superior izquierda). Es bastante sencillo. Simplemente crea, a partir de un directorio que nosotros le indiquemos donde se encuentren las imágenes que queramos rotar, un vector de tamaño igual al número de imágenes con el que trabajemos y que contiene en cada posición el nombre del fichero de cada imagen. Después, con ese vector, mediante la función predefinida rand() va obteniendo índices del vector aleatoriamente para visualizar la imagen a la que se haga referencia en esa determinada posición el vector. Aquí esta la guarrada en cuestión (sobre cargada de comentarios)</p>
<p><pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
    <span style="color: #808080; font-style: italic;">/*
     * script  : randImg.php
     * version : 0.2
     * author  : enrique@barbeito.org
     * date    : vie feb 20 13:10:57 CET 2004
     *
     * Requirements:
     *  - PHP &gt;= 4.x
     *
     * Description:
     *  Un simple script en PHP para cargar imagenes
     *  aleatoriamente. Requiere que las imagenes a
     *  rotar se encuentren en un directorio separado
     *
     * */</span>
&nbsp;
    <a href="http://www.php.net/define"><span style="color: #000066;">define</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;kRUTA&quot;</span>,<span style="color: #ff0000;">&quot;./img/random&quot;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">/* directorio donde  se  encuentran
                                     * las imagenes que rotaran. Si vas
                                     * a utilizar este script cambia la
                                     * ruta    por   la   tuya   propia */</span>
    <span style="color: #808080; font-style: italic;">/*           *
     * funciones *
     * --------- */</span>
    <span style="color: #000000; font-weight: bold;">function</span> fLeeImg <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
            <span style="color: #808080; font-style: italic;">// abrimos el directorio</span>
            <span style="color: #0000ff;">$workDir</span> = <a href="http://www.php.net/opendir"><span style="color: #000066;">opendir</span></a><span style="color: #66cc66;">&#40;</span>kRUTA<span style="color: #66cc66;">&#41;</span>;
&nbsp;
            <span style="color: #808080; font-style: italic;">// recogemos las imagenes y armamos un vector</span>
            <span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$fichero</span> = <a href="http://www.php.net/readdir"><span style="color: #000066;">readdir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$workDir</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#123;</span>
                    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$fichero</span> != <span style="color: #ff0000;">&quot;.&quot;</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$fichero</span> != <span style="color: #ff0000;">&quot;..&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                            <span style="color: #0000ff;">$imagenes</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #0000ff;">$fichero</span>;
            <span style="color: #66cc66;">&#125;</span>
&nbsp;
            <span style="color: #808080; font-style: italic;">// cerramos el directorio</span>
            <a href="http://www.php.net/closedir"><span style="color: #000066;">closedir</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$workDir</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
            <span style="color: #b1b100;">return</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$imagenes</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> fAlazar <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$numImg</span> = <a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// numero total de imagenes</span>
            <span style="color: #0000ff;">$i</span> = <a href="http://www.php.net/rand"><span style="color: #000066;">rand</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #0000ff;">$numImg</span><span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">&#41;</span>;  <span style="color: #808080; font-style: italic;">// intervalo [1..$numImg]</span>
            <span style="color: #0000ff;">$imagen</span> = <span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$i</span><span style="color: #66cc66;">&#93;</span>;    <span style="color: #808080; font-style: italic;">// imagen aleatoria</span>
            <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">&quot;&lt;img src=&quot;</span><span style="color: #ff0000;">&quot;.kRUTA.'/'.&quot;</span><span style="color: #0000ff;">$imagen</span><span style="color: #ff0000;">&quot; border=&quot;</span><span style="color: #cc66cc;">0</span><span style="color: #ff0000;">&quot; /&gt;&quot;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">/*                    *
     * programa principal *
     * ------------------ */</span>
    <span style="color: #0000ff;">$imgs</span> = fLeeImg<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// definimos un vector de imagenes</span>
    fAlazar<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$imgs</span><span style="color: #66cc66;">&#41;</span>;    <span style="color: #808080; font-style: italic;">// devolvemos una imagen aleatoria</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></p>
<p>Tuve un problema bastante tonto a la hora de utilizar gracias a la ayuda que ofrecen en la lista de correo <a href="http://www.phpes.com/" title="PHP en español"><acronym title="Pre-Hypertext Processing">PHP</acronym>-ES</a> me pude dar cuenta rápidamente de mi error (muchas gracias a quien se molesta en llevar a tan buen puertos estas listas de correo jeje ;-))</p>
<p>Algunas páginas por donde empezar:</p>
<ul>
<li><a href="http://es.php.net/manual/es/" title="El Manual de PHP">El Manual de <acronym title="Pre-Hypertext Processing">PHP</acronym></a></li>
<li><a href="http://www.rinconastur.com/php/" title="Memorias de un Aprendiz de PHP">Memorias de un Aprendiz de <acronym title="Pre-Hypertext Processing">PHP</acronym></a></li>
<li><a href="http://www.ignside.net/man/php/index.php" title="Apuntes de php">Apuntes de <acronym title="Pre-Hypertext Processing">PHP</acronym></a></li>
<li><a href="http://es.tldp.org/Manuales-LuCAS/manual_PHP/manual_PHP/" title="Tutorial de PHP y MySQL">Tutorial de <acronym title="Pre-Hypertext Processing">PHP</acronym> y MySQL</a> (y su <a href="http://es.tldp.org/Manuales-LuCAS/manual_PHP/manual_php.tar.gz" title="manual_php.tar.gz">tgz</a> listo para descargar)</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://enrique.barbeito.org/blog/primeros-pasos-con-php/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
