<?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 Hispano &#187; php</title> <atom:link href="http://www.linuxhispano.net/etiqueta/php/feed/" rel="self" type="application/rss+xml" /><link>http://www.linuxhispano.net</link> <description>Noticias, tira, podcast, juegos, Linux y software libre</description> <lastBuildDate>Fri, 10 Feb 2012 14:00:58 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Enviar correo usando un servidor SMTP con PHP</title><link>http://www.linuxhispano.net/2012/02/02/enviar-correo-usando-un-servidor-smtp-con-php/</link> <comments>http://www.linuxhispano.net/2012/02/02/enviar-correo-usando-un-servidor-smtp-con-php/#comments</comments> <pubDate>Thu, 02 Feb 2012 11:09:48 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[correo]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[servidor]]></category> <category><![CDATA[smtp]]></category> <category><![CDATA[spam]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8829</guid> <description><![CDATA[Dentro de las funcionalidades básicas de cualquier aplicación web se encuentra la comunicación con el usuario a través de correo electrónico. Tenemos la opción fácil y directa de usar la función mail() de PHP que usa un demonio de SMTP propio &#8230; <a
href="http://www.linuxhispano.net/2012/02/02/enviar-correo-usando-un-servidor-smtp-con-php/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Dentro de las funcionalidades básicas de cualquier aplicación web se encuentra la comunicación con el usuario a través de correo electrónico. Tenemos la opción fácil y directa de usar la función <a
target="_blank" href="http://php.net/manual/es/function.mail.php" target="_blank">mail()</a> de <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/php/" target="_blank">PHP</a> que usa un demonio de <a
href="http://www.linuxhispano.net/?s=smtp" target="_blank">SMTP</a> propio (suele ser <a
href="http://www.sendmail.com/sm/open_source/" target="_blank">sendmail</a>), sin embargo, los filtros de spam harán su labor y aunque seamos confiables, tenemos todas las papeletas para que nos tachen de los contrario y el correo no llegará a su destino.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/02/Mail.png"><img
class="aligncenter size-full wp-image-8987" title="Mail" src="http://www.linuxhispano.net/wp-content/uploads/2012/02/Mail.png" alt="Enviar correo usando servidor SMTP con PHP" width="256" height="256" /></a></p><p>La solución es usar un servidor SMTP externo, aquí mismo explicamos <a
href="http://www.linuxhispano.net/2011/03/02/suscribir-comentarios-en-wordpress-usando-gmail/" target="_blank">cómo hacer uso del servidor SMTP de Gmail para usarlo dentro de WordPress</a>, pero vamos a explicaros un método válido para cualquier aplicación que desarrolléis con PHP.</p><p>Lo primero que tenemos que hacer es descargar la clase que se encargará del trabajo, es software libre bajo licencia GPL, hablamos del proyecto <a
target="_blank" href="http://sourceforge.net/projects/phpmailer/" target="_blank">PHPMailer</a>. Descargamos la última versión disponible para nuestra versión de PHP (aquí hablaremos de la versión más actual, la que corresponde con PHP 5) y descomprimimos.</p><p><span
id="more-8829"></span></p><p>La clase tiene otras funcionalidades, pero nosotros como sólo vamos a enviar correo, usaremos el código de los ficheros:</p><ul><li>class.phpmailer.php</li><li>class.smtp.php</li></ul><p>El procedimiento es el siguiente: incluimos los ficheros en cuestión, instanciamos un objeto, asignamos sus atributos (asunto, remitente, destinatario, cuerpo del mensaje) y finalmente ejecutamos un método que lo envía.</p><p>Veamos un ejemplo completo:</p><pre>require(‘class.phpmailer.php’);
require(‘class.smtp.php’);
$mail = new PHPMailer();
$body = “Cuerpo del mensaje”;
$mail-&gt;IsSMTP();
// la dirección del servidor, p. ej.: smtp.servidor.com
$mail-&gt;Host = “direccion_servidor”;
// dirección remitente, p. ej.: no-responder@miempresa.com
$mail-&gt;From = “Dirección_remitente”;
// nombre remitente, p. ej.: "Servicio de envío automático"
$mail-&gt;FromName = “Nombre_remitente”;
// asunto y cuerpo alternativo del mensaje
$mail-&gt;Subject = “Asunto”;
$mail-&gt;AltBody = “Cuerpo alternativo
    para cuando el visor no puede leer HTML en el cuerpo”;
// si el cuerpo del mensaje es HTML
$mail-&gt;MsgHTML($body);
// podemos hacer varios AddAdress
$mail-&gt;AddAddress(“dirección_destino”, “Nombre_destino”);
// si el SMTP necesita autenticación
$mail-&gt;SMTPAuth = true;
// credenciales usuario
$mail-&gt;Username = “Usuario”;
$mail-&gt;Password = “Contraseña”;
if(!$mail-&gt;Send()) {
echo “Error enviando: ” . $mail-&gt;ErrorInfo;
} else {
echo “¡¡Enviado!!”;
}</pre>]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/02/02/enviar-correo-usando-un-servidor-smtp-con-php/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>¿Cómo conocer desde un plugin el directorio del fichero wp-config.php en WordPress?</title><link>http://www.linuxhispano.net/2012/01/11/como-conocer-desde-un-plugin-el-directorio-del-fichero-wp-config-php-en-wordpress/</link> <comments>http://www.linuxhispano.net/2012/01/11/como-conocer-desde-un-plugin-el-directorio-del-fichero-wp-config-php-en-wordpress/#comments</comments> <pubDate>Wed, 11 Jan 2012 12:44:03 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[cms]]></category> <category><![CDATA[php]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wp-config]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8827</guid> <description><![CDATA[Si estamos desarrollando un plugin para WordPress, en ocasiones, necesitaremos llegar al fichero wp-config.php para hacer una serie de comprobaciones o para leer unos datos de configuración. Sin embargo, no siempre será la misma ruta ya que nuestro plugin o &#8230; <a
href="http://www.linuxhispano.net/2012/01/11/como-conocer-desde-un-plugin-el-directorio-del-fichero-wp-config-php-en-wordpress/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Si estamos desarrollando un plugin para <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/wordpress/">WordPress</a>, en ocasiones, necesitaremos llegar al fichero <a
href="http://ayudawordpress.com/introduccon-al-wp-configphp-de-wordpress/" target="_blank">wp-config.php</a> para hacer una serie de comprobaciones o para leer unos datos de configuración.</p><p>Sin embargo, no siempre será la misma ruta ya que nuestro plugin o tema puede que esté instalado en un directorio no estándar o que la llamada se haga estando en un directorio a un nivel distinto. Para ahorrarnos problemas de rutas os presento el método siguiente:</p><pre>while(!is_file('wp-config.php')){
  if(is_dir('../'))
      chdir('../');
  else
      die('Could not find WordPress.');
}</pre><p><span
id="more-8827"></span></p><p>Una vez lo habéis encontrado, podéis incluirlo:</p><pre>include( 'wp-config.php' );</pre><p>O mostrar el directorio en cuestión con la función oportuna:</p><pre>getcwd()</pre>]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/01/11/como-conocer-desde-un-plugin-el-directorio-del-fichero-wp-config-php-en-wordpress/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Cómo obtener geodatos de una dirección IP en PHP</title><link>http://www.linuxhispano.net/2012/01/07/como-obtener-geodatos-de-una-direccion-ip-en-php/</link> <comments>http://www.linuxhispano.net/2012/01/07/como-obtener-geodatos-de-una-direccion-ip-en-php/#comments</comments> <pubDate>Sat, 07 Jan 2012 02:36:55 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[ciudad]]></category> <category><![CDATA[geodatos]]></category> <category><![CDATA[ip]]></category> <category><![CDATA[latitud]]></category> <category><![CDATA[longitud]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programación]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8801</guid> <description><![CDATA[Cuando desarrollamos servicios web, puede resultarnos de interés conocer geodatos de nuestro visitante: ciudad, región, código de área, etc. ¿Cómo averiguar estos datos usando PHP? Muy simple, haciendo una llamada a geoplugin.net. Si hacemos una llamada del siguiente tipo (la dirección &#8230; <a
href="http://www.linuxhispano.net/2012/01/07/como-obtener-geodatos-de-una-direccion-ip-en-php/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando desarrollamos servicios web, puede resultarnos de interés conocer geodatos de nuestro visitante: ciudad, región, código de área, etc. ¿Cómo averiguar estos datos usando <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/php" target="_blank">PHP</a>? Muy simple, haciendo una llamada a <a
href="http://www.geoplugin.net/" target="_blank">geoplugin.net</a>.</p><p>Si hacemos una llamada del siguiente tipo (la dirección IP es la del servidor DNS de la UCO): <a
target="_blank" href="http://www.geoplugin.net/php.gp?ip=150.214.110.3">http://www.geoplugin.net/php.gp?ip=150.214.110.3</a>, obtenemos una salida en forma de cadena con <a
target="_blank" href="http://www.php.net/manual/es/function.serialize.php" target="_blank">un objeto de PHP serializado</a>.</p><p>Por lo tanto nos limitaremos a:</p><ol><li>Hacer una llamada a dicho servicio web</li><li>Descargar el resultado de la petición en forma de cadena con la función <a
target="_blank" href="http://php.net/manual/es/function.file-get-contents.php" target="_blank">file_get_contents()</a></li><li>Usar el proceso inverso a serializar para recuperar los diferentes valores</li></ol><p><span
id="more-8801"></span></p><p>Podemos usar $_SERVER['REMOTE_ADDR'] para obtener la dirección IP de nuestro visitante. Aquí tenéis un ejemplo completo:</p><pre>$meta = unserialize(file_get_contents('
http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));
$latitud = $meta['geoplugin_latitude'];
$longitud = $meta['geoplugin_longitude'];
$ciudad = $meta['geoplugin_city'];</pre>]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/01/07/como-obtener-geodatos-de-una-direccion-ip-en-php/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Diferencias entre un servicio de alojamiento con Linux y otro con Windows</title><link>http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/</link> <comments>http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/#comments</comments> <pubDate>Mon, 02 Jan 2012 18:28:45 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[.net]]></category> <category><![CDATA[asp]]></category> <category><![CDATA[hosting]]></category> <category><![CDATA[iis]]></category> <category><![CDATA[linux+]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[servidor]]></category> <category><![CDATA[windows]]></category> <category><![CDATA[windows server]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8758</guid> <description><![CDATA[En muchas ocasiones cuando contratamos un plan de hosting, no nos fijamos en uno de los detalles más importantes, el sistema operativo sobre el que va a estar ejecutando el servidor que nos provea de alojamiento web y otras muchas &#8230; <a
href="http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>En muchas ocasiones cuando contratamos un plan de hosting, no nos fijamos en uno de los detalles más importantes, el sistema operativo sobre el que va a estar ejecutando el servidor que nos provea de alojamiento web y otras muchas funciones. Aparte de otras alternativas que existen derivadas de sistemas como la familia BSD, las empresas que proporcionan hosting suelen decantarse mayoritariamente por dos sistemas operativos, GNU/Linux y Windows. Sin tener estadísticas fiables, no puedo decir a ciencia cierta que la mayoría usan GNU/Linux, aunque dando una paseo por la red, podemos hacernos una idea de que sí puede ser cierta dicha afirmación. También podremos ver bastantes empresas de hosting que ofrecen planes basados en servidores de Microsoft, por lo que en este artículo veremos en qué influye como clientes de un servicio de alojamiento web, que elijamos uno u otro sistema.</p><h2>Introducción</h2><p>Como en otros tantos aspectos de las nuevas tecnologías, en el mercado del hosting, tenemos varias posibilidades en cuanto a sistema operativo se refiere. Las dos mayoritarias a día de hoy, GNU/Linux y <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Microsoft Windows</a>, se reparten una gran cuota de mercado lo que no quiere decir que no existan otras alternativas, como por ejemplo servidores basados en NetBSD o FreeBSD. En este artículo veremos desde el punto de vista de cliente de una empresa de hosting, qué puede hacer que nos decantemos entre una u otra opción.</p><p><span
id="more-8758"></span></p><p>A priori, cualquier linuxero (entre los que me incluyo) no pensaría en ningún momento en usar un servidor basado en Internet Information Services (el servidor web de Microsoft) sobre un Microsoft Windows Server 2008. Sin embargo, os puedo asegurar que hay circunstancias en las que no sólo es recomendable usar esta opción, sino necesario. De todas maneras si nosotros somos los que elegimos la tecnología a usar y no nos imponen ciertas restricciones (si estamos trabajando para alguien) un poco “especiales”, en líneas generales podríamos decir que la mejor opción es usar GNU/Linux.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_windows_server.jpg" class="broken_link"><img
class="aligncenter" title="logo_windows_server" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_windows_server.jpg" alt="Logo Windows Sever 2008" width="440" height="330" /></a></p><p>Veamos a continuación, desglosados un poco más los detalles que pueden hacer que nos decantemos por una alternativa o por otra.</p><h2>Precio</h2><p>Puesto que a la hora de la verdad en todo lo referente a negocios privados, el aspecto más determinante de todos es el presupuesto, comencemos por el precio medio de los hosting. Dado que para poder tener un servidor corriendo bajo Microsoft Windows Server 2003 o 2008, hace falta pagar una licencia comercial y a un precio que no es bajo ni mucho menos, los hosting que ofrecen sistemas <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> suelen ser más caros que los basados en GNU/Linux. Antes de seguir me gustaría aclarar que hay muchas empresas que venden hosting con las dos posibildiades y uno a la hora de contratarlo, elige cuál le interesa.</p><p>Siguiendo con el tema económico, hay que contar que en un servicio de hosting, el precio que se paga por un sistema o por otro, no es sólo la licencia del sistema operativo en sí. Hay muchos factores aparte como por ejemplo, el coste del soporte, el gasto energético o la necesidad de comprar licencias de terceros programas, entre otras.</p><p>El coste del soporte era una de las excusas esgrimidas por Microsoft sobre el coste real de mantener un servidor en GNU/Linux, porque afirmaban que el soporte era bastante más caro que en GNU/Linux. Sin embargo, debido a la mayor automatización de muchos procesos en GNU/Linux y lo que es más importante, a su mayor difusión, cada vez el soporte es más barato y fácil para este sistema.</p><p>En cuanto a los otros factores que hemos también mencionado, el gasto de energía y la necesidad de comprar licencias a terceros, decir de la primera que para ver un consumo de energía real habría que hacer una serie de test y benchamarks con mucha exactitud para poder emitir un juicio objetivo. En el segundo caso, en el de comprar software de terceros, en <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> suele ser más frecuente esta necesidad, aunque en GNU/Linux también puede darse este caso y por supuesto, en ambos se puede utilizar software libre para satisfacer muchas necesidades.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/fundacion_apache.gif" class="broken_link"><img
class="aligncenter size-full wp-image-8775" title="fundacion_apache" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/fundacion_apache.gif" alt="Logo Apache" width="356" height="107" /></a></p><h2>Seguridad</h2><p>Se ha hablado tantísimo de este aspecto, comparando además a <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> y a Linux, que creo que no es necesario dar mucha información. La seguridad de los sistemas GNU/Linux está más que contrastada, más aún en ambientes de hosting; y además la facilidad de actualización que tiene el software instalado en este sistema hace que ante cualquier versión nueva que tape algún agujero, la actualización sea rápida y no haya de por medio problemas como obligar a reiniciar el servidor.</p><p>Este y otros muchos detalles, provenientes de un sistema que nació en un ambiente profesional, hacen de GNU/Linux el ganador por diferencia de este apartado.</p><h2>Eficiencia</h2><p>Este aspecto depende mucho del hardware que se use en la máquina en la que resida el servidor así como de la línea que tenga contratado con su ISP (proveedor de servicios de Internet) nuestro servicio de hosting. A priori puede que GNU/Linux distribuya mejor la carga de trabajo que <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Microsoft Windows</a>, pero es un aspecto que más que preocuparnos a nosotros que somos los que contratamos el host debe preocuparle al que ofrece el servicio.</p><p>También es verdad que cada vez son más las aplicaciones web basadas en tecnologías no tan eficientes como PHP, por ejemplo Ruby On Rails o Python (bastante más eficiente que Ruby pero aún así más lento que PHP) con Django o Turbo Gears; que requieren una mayor cantidad de recursos.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_internet_information_services.png"><img
class="aligncenter size-full wp-image-8777" title="logo_internet_information_services" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_internet_information_services.png" alt="Logo Intenet Information Services" width="160" height="76" /></a></p><h2>Posibilidades y necesidades específicas</h2><p>En este punto es donde quizás nos tengamos que decantar por una solución Microsoft Windows por obligaciones de los requisitos. Imaginemos que necesitamos usar por obligación una base de datos SQL Server, de Microsoft. Ante este caso, dado que este sistema gestor de base de datos sólo ejecuta en el sistema operativo de Microsoft, estaremos obligados a usar un host con Windows Server que ofrezca esta posibilidad. También es verdad que éste no suele ser el caso más común, por fortuna, y que para muchísimas otras circunstancias, la solución correcta es Linux, por razones casi idénticas. Por ejemplo, a día de hoy, es difícil encontrar un sistema basado en <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> que ofrezca soporte para ejecutar aplicaciones web implementadas con Ruby o Python, dos tecnologías en alza.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/tux-servidor.jpg" class="broken_link"><img
class="aligncenter size-full wp-image-8778" title="tux-servidor" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/tux-servidor.jpg" alt="Tux Servidor" width="200" height="230" /></a></p><p>Por lo tanto en este apartado, dependiendo de nuestro caso deberemos elegir una plataforma u otra, aunque como repito en la mayor parte de los casos el resultado es favorable para GNU/Linux. De hecho, en mi caso personal, por ejemplo, nunca elegiría trabajar con ASP.NET y SQL Server, por ejemplo, pudiendo trabajar con tecnologías libres que cubren las mismas necesidades ya que además de resultarme más barato, dispongo de una cantidad de documentación y soporte mucho mayor (aparte de que las tecnologías de Microsoft no son código abierto). Sin embargo, si tenemos un encargo profesional y por razones ajenas a nosotros hay que utilizar dichas tecnologías, tendremos que dencantarnos por un host con Windows Server.</p><h2>Adaptabilidad</h2><p>Normalmente, las tecnologías libres suelen estar mejor estandarizadas que sus equivalentes propietarias, por lo que de cara a migrar datos de un sistema gestor de base de datos a otro distinto, o a la hora de cambiar el servidor, si estamos operando con un host que trabaje con GNU/Linux, posiblemente se nos presenten menos problemas.</p><h2>Futuro</h2><p>Tanto el soporte como las nuevas versiones de software, están prácticamente aseguradas en los dos sistemas. Los costes de actualización de una versión a otra en el caso de software privado, no os repercutirán demasiado, dado que al igual que el coste de la licencia, estos son gastos que paga la empresa a la que contratamos. Por esta razón suelen ser más caros los servicios de host basados en sistemas <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a>. Aparte de eso, aunque este es un tema importante a la hora de elegir un servicio de host, el asegurarnos que el software está siempre actualizado y alejado de posibles vulnerabilidades, no existen diferencias de un sistema a otro.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_mysql.jpg" class="broken_link"><img
class="aligncenter size-full wp-image-8779" title="logo_mysql" src="http://www.linuxhispano.net/wp-content/uploads/2012/01/logo_mysql.jpg" alt="Logo MySQL" width="399" height="291" /></a></p><h2>Conclusiones</h2><p>A lo largo del artículo, habréis observado que para la mayor parte de las necesidades, excepto para las que necesitan expresamente ciertas tecnologías como .NET, podemos usar GNU/Linux por multitud de razones. Comenzando por el precio, terminando en la seguridad y pasando por variedad de otros aspectos como por ejemplo la capacidad de adaptación, GNU/Linux suele ser el más idóneo o en casos extraños, estar al nivel de su rival. También es cierto que como digo haya aplicaciones que por cuestiones de los requisitos necesiten sistemas <a
href="http://www.linuxhispano.net/etiqueta/windows/" target="_blank">Windows</a> o en todo caso ejecuten con Mono (no os lo recomiendo si vais a usarlo como un sistema en producción y no en pruebas o de uso personal). En un futuro, también habrá que tener en cuenta aspectos como la virtualización en servidores, tecnología bastante avanzada ya pero que no se ofrece en muchos servicios de host.</p><p>Elegido el sistema, tenéis que elegir la empresa de hosting que contratar. En otros artículos os contarán mejor cómo seleccionar a dicha empresa de entre todas las que se ofertan en la red, pero como primer paso os recomiendo no comprobar sólo la cantidad de servicios que ofrecen, sino la calidad de los mismos.</p><p>Por último, os dejo unos cuantos enlaces en la sección “En la red”, de servidores web disponibles para GNU/Linux y un poco más de información para que leáis en la red sobre las versiones de servidor de Microsoft Windows y el servidor web que usan, Internet Information Services.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2012/01/02/diferencias-entre-un-servicio-de-alojamiento-con-linux-y-otro-con-windows/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>¿Cómo crear tu propio shortcode en WordPress?</title><link>http://www.linuxhispano.net/2011/12/22/como-crear-tu-propio-shortcode-en-wordpress/</link> <comments>http://www.linuxhispano.net/2011/12/22/como-crear-tu-propio-shortcode-en-wordpress/#comments</comments> <pubDate>Thu, 22 Dec 2011 14:45:10 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[api]]></category> <category><![CDATA[php]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[shortcode]]></category> <category><![CDATA[tema]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8662</guid> <description><![CDATA[Si manejáis WordPress sabréis que existen o al menos os suenan los shortcode (códigos cortos en español). ¿Qué hacen? Cuando estamos redactando una entrada, podemos hacer una llamada a uno de ellos para conseguir una funcionalidad extra. Por ejemplo, el típico &#8230; <a
href="http://www.linuxhispano.net/2011/12/22/como-crear-tu-propio-shortcode-en-wordpress/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Si manejáis <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/wordpress" target="_blank">WordPress</a> sabréis que existen o al menos os suenan los <a
href="http://codex.wordpress.org/Shortcode_API" target="_blank">shortcode</a> (códigos cortos en español). ¿Qué hacen? Cuando estamos redactando una entrada, podemos hacer una llamada a uno de ellos para conseguir una funcionalidad extra. Por ejemplo, el típico caso de la galería de imágenes: [ gallery ] (pongo espacios entre ellos para que no salte la galería.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/12/wordpress_codex.png"><img
class="aligncenter size-full wp-image-8673" title="wordpress_codex" src="http://www.linuxhispano.net/wp-content/uploads/2011/12/wordpress_codex.png" alt="WordPress codex" width="275" height="251" /></a></p><p>Algunos plugins y temas nos proporcionan más códigos cortos de este tipo. Sin embargo, si manejáis <a
target="_blank" href="http://codex.wordpress.org/" target="_blank">la API de WordPress</a>, a lo mejor vosotros mismos queréis crear vuestros propios <em>shortcode</em>. ¿Cómo?</p><p><span
id="more-8662"></span></p><p>Uniendo un <em>shortcode</em> a una función. Si no tenemos atributos es directo:</p><pre>//[mishortcode]
function mishortcode_func( $atts ){
 return "Este es mi shortcode";
}
add_shortcode( 'mishortcode', 'mishortcode_func' );</pre><p>En caso de que tengamos atributos, habrá que descomponer el array de atributos que recibe la función.</p><pre>// [mishortcode miatributo0="mivalor0" miatributo1="mivalor1"]
function mishortocde_func( $atts ) {
	extract( shortcode_atts( array(
		'miatributo0' =&gt; 'mivalor_por_defecto_0',
		'miatributo1' =&gt; 'mivalor_por_defecto_1',
	), $atts ) );
	return "He recibido = {$miatributo0} y {miatributo1}";
}
add_shortcode( 'mishortcode', 'mishortocde_func' );</pre><p>En este caso, soportará hasta dos atributos. Si no se le pasa ningún atributo, cogerá los dos por defecto y en caso de que se le pase uno o los dos, estos serán sus valores y el que no reciba valor, recibirá el valor por defecto que le hemos asignado. Igual que en PHP (en <a
href="http://www.linuxhispano.net/2011/06/16/curso-php-orientado-a-objetos-sobrecarga/" target="_blank">esta entrega del curso de PHP</a> se explica cómo se puede simular la sobrecarga usando atributos por defecto).</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/12/22/como-crear-tu-propio-shortcode-en-wordpress/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Configurar AdSense (anuncios) y Analytics (estadísticas) en WPTouch</title><link>http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/</link> <comments>http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/#comments</comments> <pubDate>Thu, 17 Nov 2011 14:30:28 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[adsense]]></category> <category><![CDATA[analytics]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[móvil]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wptouch]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7870</guid> <description><![CDATA[Una vez hemos instalado y configurado correctamente WPtouch, tal como vimos ayer, vamos a proceder configuraciones adicionales para que el portal se quede completamente funcional, también en su versión móvil. Integrar estadísticas con Google Analytics Las estadísticas son algo básico &#8230; <a
href="http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Una vez hemos <a
href="http://www.linuxhispano.net/2011/11/16/crea-automaticamente-una-version-movil-para-tu-blog-con-wptouch/" target="_blank">instalado y configurado correctamente WPtouch</a>, tal como vimos ayer, vamos a proceder configuraciones adicionales para que el portal se quede completamente funcional, también en su versión móvil.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/configuracion_wptouch2.png"><img
class="aligncenter size-full wp-image-8387" title="configuracion_wptouch" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/configuracion_wptouch2.png" alt="Configuración WPtouch con Google AdSense y Google Analytics" width="650" height="181" /></a></p><p><strong>Integrar estadísticas con Google Analytics</strong></p><p>Las estadísticas son algo básico para un blogger, así que si usáis <a
href="http://www.linuxhispano.net/2011/01/18/incluir-google-analytics-en-wordpress/" target="_blank">Google Analytics</a> os interesará esta parte. Dentro de la configuración hay una parte que lo especifica: &#8220;AdSense, estadísticas y código a medida&#8221;, sin embargo, no es trivial la configuración.</p><p>Dentro de esa parte tenemos un <em>textarea</em> para rellenar con título: &#8220;Estadísticas y código a medida&#8221;. Deberemos introducir el siguiente código JavaScript, modificando sólo nuestro identificador de cliente de <a
href="http://www.linuxhispano.net/2011/01/18/incluir-google-analytics-en-wordpress/" target="_blank">Google Analytics</a> (es una cadena de la siguiente forma: &#8220;UA-XXXXXX-X). Veamos:</p><p><span
id="more-7870"></span></p><blockquote><p>&lt;script type=&#8221;text/javascript&#8221;&gt;</p><p>var _gaq = _gaq || [];<br
/> _gaq.push(['_setAccount', 'UA-EL_TUYO-X']);<br
/> _gaq.push(['_trackPageview']);</p><p>(function() {<br
/> var ga = document.createElement(&#8216;script&#8217;); ga.type = &#8216;text/javascript&#8217;; ga.async = true;<br
/> ga.src = (&#8216;https:&#8217; == document.location.protocol ? &#8216;https://ssl&#8217; : &#8216;http://www&#8217;) + &#8216;.google-analytics.com/ga.js&#8217;;<br
/> var s = document.getElementsByTagName(&#8216;script&#8217;)[0]; s.parentNode.insertBefore(ga, s);<br
/> })();</p><p>&lt;/script&gt;</p></blockquote><p>Una vez hecho esto guardamos y nuestro blog móvil también contará en la visitas de Analytics.</p><p><strong>Integrar publicidad con Google AdSense</strong></p><p>Los canales convencionales de publicidad para <a
href="http://www.linuxhispano.net/etiqueta/adsense/" target="_blank">AdSense</a> no tienen el formato apropiado para la web móvil. Por lo tanto, deberemos comenzar creando un canal para móviles en nuestra cuenta de <a
href="http://www.linuxhispano.net/etiqueta/adsense/" target="_blank">AdSense</a>.</p><p>Para ello inicias sesión en la plataforma de anuncios de Google y dentro de ella te diriges a:</p><ol><li>Mis anuncios</li><li>Contenido para móviles</li><li>Criterios de seguimiento personalizados</li></ol><p>Una vez creado el criterio de seguimiento, dentro de &#8220;Contenido para móviles&#8221;, elegimos &#8220;Bloques de anuncios&#8221; y creamos un anuncio a nuestro gusto. Guardamos y obtenemos el código.</p><p>Con este código, el criterio que acabamos de crear y nuestra identidad de AdSense, tenemos ya todo listo. Rellenamos nuestra identidad y nuestro canal dentro de los campos preparados para ello en la configuración de WPtouch:</p><ul><li>Identidad de Google AdSense</li><li>Canal de Google AdSense</li></ul><p>Y el código lo incluimos en el mismo <em>textarea</em> en el que hemos introducido el código de Analytics, incluyendo algún salto de línea entre ellos.</p><p>Con ésto estará todo listo.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/17/configurar-adsense-anuncios-y-analytics-estadisticas-en-wptouch/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Crea automáticamente una versión móvil para tu blog con WPTouch</title><link>http://www.linuxhispano.net/2011/11/16/crea-automaticamente-una-version-movil-para-tu-blog-con-wptouch/</link> <comments>http://www.linuxhispano.net/2011/11/16/crea-automaticamente-una-version-movil-para-tu-blog-con-wptouch/#comments</comments> <pubDate>Wed, 16 Nov 2011 14:30:26 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[android]]></category> <category><![CDATA[caché]]></category> <category><![CDATA[iphone]]></category> <category><![CDATA[móvil]]></category> <category><![CDATA[php]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wp supercache]]></category> <category><![CDATA[wptouch]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7868</guid> <description><![CDATA[Los dispositivos móviles son cada días más importantes en la red. Si antes era raro navegar con ellos, hoy lo extraño es justo lo contrario. Cada días más y más usuarios los manejan para navegar por la red. Antes esta &#8230; <a
href="http://www.linuxhispano.net/2011/11/16/crea-automaticamente-una-version-movil-para-tu-blog-con-wptouch/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Los dispositivos móviles son cada días más importantes en la red. Si antes era raro navegar con ellos, hoy lo extraño es justo lo contrario. Cada días más y más usuarios los manejan para navegar por la red. Antes esta situación, los que nos dedicamos a este mundo de la web, tenemos que reaccionar a tiempo para ofrecer nuestros sitios accesibles y cómodos de visitas desde ellos.</p><p>Si usamos <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> estamos de suerte, porque como otras tantas veces gracias al <em>WordPress style</em> tenemos un <a
href="http://wordpress.org/extend/plugins/" target="_blank">plugin</a> listo para instalar y ofrecer una visión de nuestra web adaptada para dichos dispositivos cuando haga falta.</p><p>Antes de empezar, veamos el final de todo, el resultado de todo este proceso aplicado a este portal:</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/linux_hispano_version_movil.png"><img
class="aligncenter size-full wp-image-8376" title="linux_hispano_version_movil" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/linux_hispano_version_movil.png" alt="Linux Hispano versión móvil con WPtouch" width="427" height="676" /><span
id="more-7868"></span></a></p><p><strong>Instalación</strong></p><p>Como con todos los <a
target="_blank" href="http://wordpress.org/extend/plugins/wptouch/" target="_blank">plugins</a> en <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> que están en el repositorio oficial, nos limitamos a: <em>Escritorio -&gt; Plugins -&gt; Añadir nuevo</em>, lo buscamos y procedemos a instalarlo.</p><p><strong>Configuración</strong></p><p>El plugin tiene un interfaz de configuración básico muy simple e intuitivo. Para aspectos de configuración algo más avanzados, como integrar Analytics o de cómo incorporar <a
href="http://www.linuxhispano.net/etiqueta/adsense/" target="_blank">AdSense</a>, hablaremos en otras entradas, pero en esta nos pararemos en un aspecto básico: la <strong>compatibilidad con diferentes sistemas de caché</strong>.</p><p>Si usamos un sistema de caché en nuestro blog <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a>, algo básico para tener un rendimiento decente y no sobrecargar nuestro servidor, deberemos realizar las configuraciones pertinentes, para que no haya problemas y se sirva la web normal a los demás dispositivos y la web móvil a los dispositivos móviles.</p><p>El <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/plugin/" target="_blank">plugin</a> que uso para manejar y crear la caché es <a
href="http://wordpress.org/extend/plugins/wp-super-cache/" target="_blank">WP SuperCache</a>, he usado otros antes, pero a día de hoy éste es el que más me gusta por su rendimiento y por sus capacidades de configuración. ¿Qué debemos hacer?</p><p>Nos dirigimos a las opciones de WPtouch y allí buscamos a qué &#8220;user-agent&#8221; el plugin responde, en la versión actual son los siguientes (podéis buscarlos con el diálogo buscar de vuestro navegador):</p><blockquote><p>Android, CUPCAKE, Googlebot-Mobile, bada, blackberry 9800, blackberry9500, blackberry9520, blackberry9530, blackberry9550, dream, iPhone, iPod, incognito, s8000, webOS, webmate</p></blockquote><p>Copiamos esta lista tal cuál y nos dirigimos a la configuración de la caché y en la pestaña: &#8220;Avanzado&#8221; buscamos los &#8220;Agentes de usuario rechazados&#8221;. Dentro de ese cuadro, un <em>textarea</em>, aparecen los agentes de usuario que la caché no atiende, por defecto está relleno por los robotos y <em>crawlers</em> de los buscadores pero nosotros añadiremos nuestra lista. ¿Cómo? Separando por un salto de línea cada uno, es decir, quedaría algo así como:</p><pre>bot
ia_archive
slurp
crawl
spider
Yandex
Android
CUPCAKE
Googlebot-Mobile
bada
blackberry 9800
blackberry9500
blackberry9520
blackberry9530
blackberry9550
dream
iPhone
iPod
incognito
s8000
webOS
webmate</pre><p>Guardamos los cambios y ya tendremos todo listo y preparado para tener nuestra versión móvil del blog sin ningún problema.</p><p>Para terminar, os dejo otro pantallazo más con el menú que genera sólo el plugin:</p><p
style="text-align: center;"><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/linux_hispano_menu_movil.png"><img
class="aligncenter size-full wp-image-8380" title="linux_hispano_menu_movil" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/linux_hispano_menu_movil.png" alt="Linux Hispano versión móvil WPtouch, detalle menú" width="427" height="263" /></a></p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/16/crea-automaticamente-una-version-movil-para-tu-blog-con-wptouch/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>WP Questions: pregunta o responde preguntas sobre WordPress con recompensa económica</title><link>http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/</link> <comments>http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/#comments</comments> <pubDate>Mon, 14 Nov 2011 18:17:17 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[asesoría]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wpquestion]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8085</guid> <description><![CDATA[La asesoría y consultoría es algo básico dentro de los modelos de negocio del software libre. WordPress es a día de hoy uno de los proyectos más dinámicos dentro de todo el panorama libre: es el CMS más popular y &#8230; <a
href="http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>La asesoría y consultoría es algo básico dentro de los modelos de negocio del software libre. <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> es a día de hoy uno de los proyectos más dinámicos dentro de todo el panorama libre: es el CMS más popular y su crecimiento sigue siendo constante.</p><p
style="text-align: center;"><a
target="_blank" href="http://wpquestions.com/affiliates/register/name/carazo"><img
class="aligncenter size-full wp-image-8353" title="wpquestions" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/wpquestions.jpg" alt="WP Questions logo" width="150" height="150" /></a></p><p>Dentro de los modelos de negocio del software libre, la consultaría es un pilar básico. Existe el asesoramiento clásico, donde particulares o empresas ofrecen mediante comunicaciones a otros particulares o empresas; soluciones para problemas puntuales.</p><p>Sin embargo, gracias a los sistemas en la nube, es posible extrapolar este servicio para hacerlo llegar al gran público. <a
target="_blank" href="http://wpquestions.com/affiliates/register/name/carazo" target="_blank">WordPress Questions</a> es un proyecto creado por <a
target="_blank" href="http://www.krubner.com/" target="_blank">Lawrence Krubner</a> y <a
target="_blank" href="http://www.darrenhoyt.com/" target="_blank">Darren Hoyt</a>. Nos ofrece una plataforma en la que todos podemos ser:</p><ul><li>Asesores de WordPress, recibiendo una recompensa económica por cada asesoramiento prestado</li><li>Usuarios, podemos preguntar cualquier cosa sobre WordPress y obtener una respuesta rápida y fiable a cambio de un precio que nosotros fijaremos entre 1 y 100 dólares.</li></ul><div><span
style="font-size: small;"><span
class="Apple-style-span" style="line-height: 24px;"><span
id="more-8085"></span></span></span></div><p>Os dejo un vídeo presentándolo (está en inglés):</p><p><object
width="560" height="315" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/SvTLK9r8biI?version=3&amp;hl=es_ES" /><param
name="allowfullscreen" value="true" /><embed
width="560" height="315" type="application/x-shockwave-flash" src="http://www.youtube.com/v/SvTLK9r8biI?version=3&amp;hl=es_ES" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/14/wp-questions-pregunta-o-responde-preguntas-sobre-wordpress-con-recompensa-economica/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Eliminar warning y errores típicos en PHP</title><link>http://www.linuxhispano.net/2011/11/12/eliminar-warning-y-errores-tipicos-en-php/</link> <comments>http://www.linuxhispano.net/2011/11/12/eliminar-warning-y-errores-tipicos-en-php/#comments</comments> <pubDate>Sat, 12 Nov 2011 19:30:02 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[aviso]]></category> <category><![CDATA[error]]></category> <category><![CDATA[notice]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[warning]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8259</guid> <description><![CDATA[Cuando programamos en PHP existe una serie de errores y warnings que son muy típicos y que para el programador más novel pueden suponer un problema. Aquí recopilamos algunos de los más típicos, pero ya que estamos, me gustaría que &#8230; <a
href="http://www.linuxhispano.net/2011/11/12/eliminar-warning-y-errores-tipicos-en-php/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando programamos en <a
href="http://www.linuxhispano.net/etiqueta/php/" target="_blank">PHP</a> existe una serie de errores y warnings que son muy típicos y que para el programador más novel pueden suponer un problema. Aquí recopilamos algunos de los más típicos, pero ya que estamos, me gustaría que todos nos contarais errores y soluciones a los mismos que encontráis a menudo.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/php_logo.gif" class="broken_link"><img
class="aligncenter size-full wp-image-8338" title="Logo PHP" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/php_logo.gif" alt="Logo PHP" width="350" height="184" /></a></p><p><strong>Warning: Cannot modify header information &#8211; headers already sent by</strong></p><p>Que también podemos encontrar como &#8220;<em>Warning: session_start(): Cannot send session cache limiter &#8211; headers already sent</em>&#8221; o &#8220;<em>Warning: session_start() [function.session-start]: Cannot send session cookie &#8211; headers already sent by</em>&#8220;. Se produce cuando intentamos modificar las cabeceras del paquete HTTP, cuando ya hemos dejado de emitirlas y estamos emitiendo el cuerpo del paquete.</p><p>¿Por qué ocurre esto? Podéis verlo <a
target="_blank" href="http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol" target="_blank">dentro del protocolo</a>. Para solucionarlo deberemos ser muy cuidadosos en dos aspectos:</p><ul><li>Nunca comenzar a emitir el cuerpo antes de tiempo, con un sólo espacio en blanco delante de <em>&lt;?php</em>  ya habríamos provocado el problema (se empieza a emitir un espacio en blanco como parte del cuerpo).</li><li>No emitir la cabecera en mitad del cuerpo. Es decir, no usar funciones que la puedan modificar como <a
target="_blank" href="http://php.net/manual/es/function.session-start.php" target="_blank">session_start</a>, cuando estamos ya en el cuerpo de nuestro contenido HTTP.</li></ul><div><span
style="font-size: small;"><span
class="Apple-style-span" style="line-height: 24px;"><span
id="more-8259"></span></span></span></div><p><strong>Fatal error: Cannot redeclare nombre_función</strong></p><p>En <a
target="_blank" href="http://www.linuxhispano.net/etiqueta/php/" target="_blank">PHP</a> no existe la sobrecarga (<a
href="http://www.linuxhispano.net/2011/06/16/curso-php-orientado-a-objetos-sobrecarga/" target="_blank">aunque podéis imitarlas</a>), por lo tanto las declaraciones de las funciones serán únicas en todo el código. Si estamos trabajando en un proyecto grande y queremos asegurarnos que la función se declara cuando no exista y no se declare cuando sí exista hacemos lo siguiente, usar <a
href="http://php.net/manual/en/function.function-exists.php" target="_blank">function_exists de PHP</a>, veamos un ejemplo.</p><pre>if(!function_exists('mi_funcion'))
{
    function mi_funcion()
    {
        /* */
    }
}</pre><p><strong>Notice: A session had already been started &#8211; ignoring session_start()</strong></p><p>La situación es la siguiente, tenemos la sesión iniciada, con <em>session_start() </em>y debido a que cargamos otro componente de la página que no sabe si la sesión está iniciada, volvemos a hacer la llamada. No se trata de un error sino de una <a
target="_blank" href="http://php.net/manual/en/function.error-reporting.php" target="_blank">notice</a>, pero aún así podemos evitarla:</p><pre>if (!isset ($_COOKIE[ini_get('session.name')])){
    session_start();
}</pre><p><strong>Notice: Constant MI_CONSTANTE already defined in</strong></p><p>Cuando usamos constantes en PHP (para guardar por ejemplo los datos de conexión a la base de datos), es posible que redeclaremos en dos script diferentes la misma variable y salte un aviso. Para evitarlo haremos lo siguiente:</p><pre>if (defined('PRUEBA')){
    echo PRUEBA;
}</pre><p><strong>Notice: Use of undefined constant MI_CONSTANTE &#8211; assumed &#8216;MI_CONSTANTE&#8217;</strong></p><p>Si a la hora de definir constantes cometemos el error de no usar comillas (me da la sensación de que alguna vez ha estado permitido), PHP no devuelve un error, pero sí un aviso. Os enseño el error y cómo solucionarlo:</p><pre>define(DB_HOST, "localhost"); // notice
define("DB_HOST", "localhost"); // bien</pre><p><strong>Faltan muchos, ¿cuál quieres comentar?</strong></p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/12/eliminar-warning-y-errores-tipicos-en-php/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Habilitar o deshabilitar rápidamente todos los plugins de WordPress desde la base de datos</title><link>http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/</link> <comments>http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/#comments</comments> <pubDate>Wed, 02 Nov 2011 14:15:33 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[base de datos]]></category> <category><![CDATA[complementos]]></category> <category><![CDATA[deshabilitar]]></category> <category><![CDATA[habilitar]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[php]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[sql]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8068</guid> <description><![CDATA[Cuando sufrimos el temido &#8220;pantallazo blanco de la muerte&#8221; de WordPress, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. No podemos acceder al panel de administración y necesitamos tratar de resolverlo cuanto &#8230; <a
href="http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando sufrimos el temido &#8220;pantallazo blanco de la muerte&#8221; de <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a>, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. <strong>No podemos acceder al panel de administración</strong> y necesitamos tratar de resolverlo cuanto antes. ¿Qué hacemos? Deshabilitar todos los plugins desde la base de datos. Veamos cómo hacerlo.</p><p><a
href="http://www.linuxhispano.net/wp-content/uploads/2011/11/wordpress-plugin1.jpg"><img
class="aligncenter size-full wp-image-8088" title="wordpress-plugin1" src="http://www.linuxhispano.net/wp-content/uploads/2011/11/wordpress-plugin1.jpg" alt="WordPress Plugins" width="275" height="259" /></a></p><p>Ésto puede ser también útil no sólo para problemas de pantallazos, sino para ahorrar tiempo en la habilitación o deshabilitación de plugins.</p><p>Veamos, lo primero que tenemos que hacer es acceder a nuestra base de datos. Con los datos de inicio de sesión que tiene WordPress almacenados internamente en &#8220;wp-config.php&#8221; podemos acceder usando un cliente como:</p><p><span
id="more-8068"></span></p><ul><li><a
href="http://www.linuxhispano.net/?s=phpmyadmin" target="_blank">phpMyAdmin</a></li><li><a
target="_blank" href="http://www.heidisql.com/" target="_blank">HeidiSQL</a></li><li><a
target="_blank" href="http://code.google.com/p/sqlyog/" target="_blank">SQLyog</a> (la versión Community es de código libre y funciona bien con <a
href="http://www.linuxhispano.net/etiqueta/wine/" target="_blank">Wine</a>)</li><li>O directamente con la línea de comandos</li></ul><p>Una vez dentro de la base de datos de <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a>, nos dirigimos a la tabla de opciones, normalmente &#8220;wp_options&#8221; (puede cambiar el prefijo). Dentro de dicha tabla, hacemos una consulta para ver los plugins activos:</p><pre>SELECT * FROM wp_options WHERE option_name = 'active_plugins';</pre><p>El resultado será algo similar a esto:</p><blockquote><p>a:20:{i:0;s:19:&#8221;akismet/<wbr>akismet.php&#8221;;i:1;s:43:&#8221;all-in-<wbr>one-seo-pack/all_in_one_seo_<wbr>pack.php&#8221;;i:2;s:19:&#8221;anti-<wbr>email-spam.php&#8221;;i:3;s:36:&#8221;<wbr>contact-form-7/wp-contact-<wbr>form-7.php&#8221;;i:4;s:28:&#8221;embed-<wbr>iframe/embediframe.php&#8221;;i:5;s:<wbr>32:&#8221;facepress-ii/FT-Facepress-<wbr>II.php&#8221;;i:6;s:50:&#8221;google-<wbr>analytics-for-wordpress/<wbr>googleanalytics.php&#8221;;i:7;s:36:<wbr>&#8220;google-sitemap-generator/<wbr>sitemap.php&#8221;;i:8;s:21:&#8221;hgk-<wbr>smtp/hgk-smtp.php&#8221;;i:9;s:24:&#8221;<wbr>ic-besocial/besocial.php&#8221;;i:<wbr>10;s:45:&#8221;limit-login-attempts/<wbr>limit-login-attempts.php&#8221;;i:<wbr>11;s:37:&#8221;shutter-reloaded/<wbr>shutter-reloaded.php&#8221;;i:12;s:<wbr>65:&#8221;subscribe-to-comments-<wbr>reloaded/subscribe-to-<wbr>comments-reloaded.php&#8221;;i:13;s:<wbr>23:&#8221;wp-minify/wp-minify.php&#8221;;<wbr>i:14;s:27:&#8221;wp-pagenavi/wp-<wbr>pagenavi.php&#8221;;i:15;s:39:&#8221;wp-<wbr>recentcomments/wp-<wbr>recentcomments.php&#8221;;i:16;s:25:<wbr>&#8220;wp-smushit/wp-smushit.php&#8221;;i:<wbr>17;s:27:&#8221;wp-super-cache/wp-<wbr>cache.php&#8221;;i:18;s:31:&#8221;wp-to-<wbr>twitter/wp-to-twitter.php&#8221;;i:<wbr>19;s:19:&#8221;wptouch/wptouch.php&#8221;;<wbr>} </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></p></blockquote><p><strong>Guardamos este resultado en un fichero de texto y lo conservamos</strong> (nos lo mandamos por correo o algo por si lo necesitamos restaurar). Ahora nos toca actualizar esta opción para <strong>deshabilitarlos todos</strong> en una sola instrucción, depende de la versión de <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> que manejemos:</p><ul><li>Si usamos <a
href="http://www.linuxhispano.net/etiqueta/wordpress/" target="_blank">WordPress</a> 2.9 o superior (lo recomendable):</li></ul><pre>UPDATE wp_options
SET option_value = 'a:0:{}'
WHERE option_name = 'active_plugins';</pre><ul><li>Si usamos una versión anterior:</li></ul><pre>UPDATE wp_options
SET option_value = ''
WHERE option_name = 'active_plugins';</pre><p>Para volver a habilitar los plugins deshabilitados, haríamos lo mismo pero dentro de <em>SET  option_value = &#8216;aquí el contenido antiguo&#8217;</em> y todo volverá a estar como antes (esto es útil por ejemplo si estamos seguros de que el problema no es de los plugins).</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/11/02/habilitar-o-deshabilitar-rapidamente-todos-los-plugins-de-wordpress-desde-la-base-de-datos/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Paso por valor y paso por referencia con PHP</title><link>http://www.linuxhispano.net/2011/10/24/paso-por-valor-y-paso-por-referencia-con-php/</link> <comments>http://www.linuxhispano.net/2011/10/24/paso-por-valor-y-paso-por-referencia-con-php/#comments</comments> <pubDate>Mon, 24 Oct 2011 11:20:03 +0000</pubDate> <dc:creator>Alberto Hornero Luque</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[lenguaje C]]></category> <category><![CDATA[paso por referencia]]></category> <category><![CDATA[paso por valor]]></category> <category><![CDATA[php]]></category> <category><![CDATA[referencia]]></category> <category><![CDATA[script]]></category> <category><![CDATA[valor]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8013</guid> <description><![CDATA[Si el otro día hablábamos de la facilidad de usar índices negativos en arrays a través PHP, hoy traemos otra receta para cocinar el paso por valor y el paso por referencia, algo que en algunos lenguajes, como C, es &#8230; <a
href="http://www.linuxhispano.net/2011/10/24/paso-por-valor-y-paso-por-referencia-con-php/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Si el otro día hablábamos de la facilidad de <a
href="http://www.linuxhispano.net/2011/10/21/indices-negativos-en-un-vector-con-php/">usar índices negativos en arrays a través PHP</a>, hoy traemos otra receta para cocinar el paso por valor y el paso por referencia, algo que en algunos lenguajes, como <a
href="http://www.linuxhispano.net/?s=lenguaje+C">C</a>, es de vital importancia, y que en el caso de PHP nos puede servir de gran ayuda.</p><p>Para ilustrar claramente la diferencia entre paso por valor y paso por referencia en una función en PHP, vamos a usar un pequeño script. Prestemos especial atención a las llamadas <em>sumarPorValor()</em> y <em>sumarPorReferencia()</em>, que de entrada vemos como la definición de ambas es similar.</p><pre>&lt;?php
// Declaramos las funciones
function sumarPorValor($suma, $a, $b) {
  $suma = $a + $b
}</pre><p><span
id="more-8013"></span></p><pre>
function sumarPorReferencia(&amp;$suma, $a, $b) {
  $suma = $a + $b
}
// Realizamos las llamadas
$a = 3;
$b = 2;
$suma = 0;
echo $suma . "\n";
sumarPorValor($suma, $a, $b); 
echo $suma . "\n";
sumarPorReferencia($suma, $a, $b);
echo $suma . "\n";</pre><p>Y la salida que obtenemos:</p><pre>0
0
5</pre><p>Está claro, ¿no? Lo único que debemos de hacer es usar <a
target="_blank" href="http://es.wikipedia.org/wiki/%26" target="_blank">et (Ampersand)</a> en la declaración de la función sobre la variable que deseamos que trabaje por referencia. En C, por ejemplo, hemos de modificar también la llamada, ya que lo trabajamos con direcciones de memoria y apuntadores sobre la función.</p><p>Espero que os haya sido de ayuda.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/10/24/paso-por-valor-y-paso-por-referencia-con-php/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Indices negativos en un vector con PHP</title><link>http://www.linuxhispano.net/2011/10/21/indices-negativos-en-un-vector-con-php/</link> <comments>http://www.linuxhispano.net/2011/10/21/indices-negativos-en-un-vector-con-php/#comments</comments> <pubDate>Fri, 21 Oct 2011 11:24:27 +0000</pubDate> <dc:creator>Alberto Hornero Luque</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[array]]></category> <category><![CDATA[índice]]></category> <category><![CDATA[lenguaje C]]></category> <category><![CDATA[lenguajes de programación]]></category> <category><![CDATA[php]]></category> <category><![CDATA[puntero]]></category> <category><![CDATA[script]]></category> <category><![CDATA[scripting]]></category> <category><![CDATA[vector]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=8007</guid> <description><![CDATA[En la mayoría de los lenguajes de programación de alto y bajo nivel, acceder a un elemento de un vector a través de un índice menor que cero implica acceder a una dirección de memoria que no hemos reservado, y &#8230; <a
href="http://www.linuxhispano.net/2011/10/21/indices-negativos-en-un-vector-con-php/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>En la mayoría de los <a
href="http://www.linuxhispano.net/?s=lenguajes+de+programaci%C3%B3n">lenguajes de programación</a> de alto y bajo nivel, acceder a un elemento de un vector a través de un<strong> índice menor que cero</strong> implica acceder a una dirección de memoria que no hemos reservado, y en consecuencia almacenar en un lugar dónde no protegemos el contenido desde el mismo programa.</p><p>Para poder usar un <strong>índice negativo en el <a
href="http://www.linuxhispano.net/?s=lenguaje+C">lenguaje C</a></strong> tendremos que declarar otro puntero auxiliar que acceda al espacio de memoria reservado por el anterior para que los menores que cero en ese rango sean equivalentes a sus análogos positivos. El código que ejemplifica este caso:</p><blockquote><p>int a[10] = { /* lo inicializamos a lo que queramos */ };<br
/> int *b;<br
/> int i;<br
/> b = a + 10; /* aquí entra en juego el puntero auxiliar */<br
/> for (i = -10; i &lt; 0; i++) {<br
/> int x = b[i];<br
/> }</p></blockquote><p>Sencillo de entender, pero <strong>en <a
href="http://www.linuxhispano.net/?s=PHP">PHP</a> la cosa se simplifica</strong> con poder usarlo como si de un elemento ubicado en la zona positiva se tratase<span
id="more-8007"></span>. Un código de ejemplo para mostrar el funcionamiento en PHP puede ser el siguiente:</p><blockquote><p>$mes[-1] = &#8220;Este mes no existe&#8221;;<br
/> echo &#8220;Mes -1: &#8220;, $mes[-1], &#8220;\n&#8221;;<br
/> $mes[-100] = &#8220;Este mes tampoco existe&#8221;;<br
/> echo &#8220;Mes -100: &#8220;, $mes[-100], &#8220;\n&#8221;;<br
/> var_dump($mes);</p></blockquote><p>Y lanzando el script obtenemos lo siguiente:</p><blockquote><p>Mes -1: Este mes no existe<br
/> Mes -100: Este mes tampoco existe<br
/> array(2) {<br
/> [-1]=&gt;<br
/> string(18) &#8220;Este mes no existe&#8221;<br
/> [-100]=&gt;<br
/> string(23) &#8220;Este mes tampoco existe&#8221;<br
/> }</p></blockquote><p>Sencillo ahora, ¿no? Creo que sobra decir la infinidad de aplicaciones que puede tener este uso. <strong>¿Lo has probado en otros lenguajes?</strong></p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/10/21/indices-negativos-en-un-vector-con-php/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Web famosas hechas con WordPress</title><link>http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/</link> <comments>http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/#comments</comments> <pubDate>Sat, 15 Oct 2011 11:49:19 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[administración]]></category> <category><![CDATA[automattic]]></category> <category><![CDATA[cms]]></category> <category><![CDATA[empresa]]></category> <category><![CDATA[famosa]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[organización]]></category> <category><![CDATA[php]]></category> <category><![CDATA[web]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=7949</guid> <description><![CDATA[A raíz de una discusión en el grupo de WordPress en español de LinkedIn, he descubierto esta lista tan interesante que una usuaria del grupo ha publicado: Página oficial del Primer Ministro Británico: http://www.number10.gov.uk Mozilla Labs: http://mozillalabs.com Spotify: http://www.spotify.com Mashable: http://mashable.com Stallone: http://sylvesterstallone.com Jane Fonda: http://janefonda.com &#8230; <a
href="http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>A raíz de una discusión en <a
target="_blank" href="http://www.linkedin.com/groups/Cual-es-web-m%C3%A1s-famosa-1242577.S.69265533?view=&amp;srchtype=discussedNews&amp;gid=1242577&amp;item=69265533&amp;type=member&amp;trk=eml-anet_dig-b_pd-ttl-cn&amp;ut=3mBRiZlSFTmQY1" target="_blank">el grupo de WordPress en español</a> de <a
target="_blank" href="http://es.wikipedia.org/wiki/LinkedIn" target="_blank">LinkedIn</a>, he descubierto esta lista tan interesante que <a
target="_blank" href="http://www.linkedin.com/groups?viewMemberFeed=&amp;gid=1242577&amp;memberID=110879257" target="_blank">una usuaria del grupo</a> ha publicado:</p><ul><li>Página oficial del Primer Ministro Británico: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Enumber10%2Egov%2Euk&amp;urlhash=yKeM&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.number10.gov.uk</a></li><li>Mozilla Labs: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fmozillalabs%2Ecom&amp;urlhash=Mwt4&amp;_t=tracking_disc" rel="nofollow" target="blank">http://mozillalabs.com</a></li><li>Spotify: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Espotify%2Ecom&amp;urlhash=Fy2v&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.spotify.com</a></li><li>Mashable: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fmashable%2Ecom&amp;urlhash=dSux&amp;_t=tracking_disc" rel="nofollow" target="blank">http://mashable.com</a></li><li>Stallone: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fsylvesterstallone%2Ecom&amp;urlhash=IYVr&amp;_t=tracking_disc" rel="nofollow" target="blank">http://sylvesterstallone.com</a></li><li>Jane Fonda: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fjanefonda%2Ecom&amp;urlhash=w0qC&amp;_t=tracking_disc" rel="nofollow" target="blank">http://janefonda.com</a></li><li>Tom Jones: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Etomjones%2Ecom&amp;urlhash=Xhdl&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.tomjones.com</a></li><li>Fresh Apps: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fwww%2Efreshapps%2Ecom&amp;urlhash=NyGW&amp;_t=tracking_disc" rel="nofollow" target="blank">http://www.freshapps.com</a></li><li>ZDNet: <a
target="_blank" href="http://www.linkedin.com/redirect?url=http%3A%2F%2Fnews%2Ezdnet%2Ecom&amp;urlhash=flyd&amp;_t=tracking_disc" rel="nofollow" target="blank">http://news.zdnet.com</a></li></ul><p><strong>¿Qué otra web famosa o de empresa u organismo de relevancia conoces que esté hecha con WordPress? </strong>A ver si entre todos, vía comentarios, conseguimos hacer una lista de más de 100 webs de este tipo que usen webs. Porque no sé si lo sabéis pero <a
target="_blank" href="http://xombit.com/2011/08/wordpress-esta-detras-del-15-de-las-paginas-web-mas-visitadas" target="_blank">WordPress está detrás del 15% de las páginas web más visitadas</a>.</p><p><strong></strong>Por supuesto, <strong>Linux Hispano</strong> funciona bajo <a
target="_blank" href="http://es.wikipedia.org/wiki/WordPress" target="_blank">WordPress</a> y otro proyecto personal que llevo adelante con Alberto y otro amigo, <a
target="_blank" href="http://www.reddeautores.com/" target="_blank">Red de Autores</a>, también.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/10/15/web-famosas-hechas-con-wordpress/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Instalar phpmyadmin en Ubuntu</title><link>http://www.linuxhispano.net/2011/07/15/instalar-phpmyadmin-en-ubuntu/</link> <comments>http://www.linuxhispano.net/2011/07/15/instalar-phpmyadmin-en-ubuntu/#comments</comments> <pubDate>Thu, 14 Jul 2011 22:15:48 +0000</pubDate> <dc:creator>Alberto Hornero Luque</dc:creator> <category><![CDATA[Tutoriales]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[base de datos]]></category> <category><![CDATA[bbdd]]></category> <category><![CDATA[debian]]></category> <category><![CDATA[linux+]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[navegador]]></category> <category><![CDATA[php]]></category> <category><![CDATA[phpmyadmin]]></category> <category><![CDATA[ubuntu]]></category> <category><![CDATA[web]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=6894</guid> <description><![CDATA[Con el sistema recién formateado instalé Apache, PHP y MySQL, como de costumbre, pero ya iba echando algo de menos, y es que soy un enamorado de phpmyadmin. Bien, con un sencillo paso tendremos este cliente de base de datos &#8230; <a
href="http://www.linuxhispano.net/2011/07/15/instalar-phpmyadmin-en-ubuntu/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Con el sistema recién formateado instalé Apache, PHP y MySQL, como de costumbre, pero ya iba echando algo de menos, y es que soy un enamorado de <a
target="_blank" href="http://www.phpmyadmin.net" target="_blank">phpmyadmin</a>.</p><p><img
class="aligncenter size-full wp-image-6895" title="phpMyAdmin_linux_hispano" src="http://www.linuxhispano.net/wp-content/uploads/2011/07/phpMyAdmin_linux_hispano.jpg" alt="" width="452" height="266" /></p><p>Bien, con un sencillo paso tendremos este cliente de base de datos instalado en nuestra máquina:</p><blockquote><p>ahornero@6581-D:~$ sudo apt-get install phpmyadmin</p></blockquote><p>Después reiniciamos el servidor:</p><blockquote><p>ahornero@6581-D:~$ sudo service apache2 restart</p></blockquote><p>Y listo. Si tenemos algún problema accediendo a: <strong>http://elnombredetuhost/phpmyadmin</strong> crearemos la siguiente <a
href="http://www.linuxhispano.net/2011/06/09/eliminar-un-enlace-simbolico/">ruta simbólica</a>:</p><blockquote><p>ahornero@6581-D:~$ sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin</p></blockquote> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/07/15/instalar-phpmyadmin-en-ubuntu/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Diferencia entre require e include en PHP</title><link>http://www.linuxhispano.net/2011/07/04/diferencia-entre-require-e-include-en-php/</link> <comments>http://www.linuxhispano.net/2011/07/04/diferencia-entre-require-e-include-en-php/#comments</comments> <pubDate>Mon, 04 Jul 2011 14:40:46 +0000</pubDate> <dc:creator>F. Javier Carazo Gil</dc:creator> <category><![CDATA[Noticias]]></category> <category><![CDATA[diferencia]]></category> <category><![CDATA[include]]></category> <category><![CDATA[php]]></category> <category><![CDATA[programación]]></category> <category><![CDATA[require]]></category> <guid
isPermaLink="false">http://www.linuxhispano.net/?p=6552</guid> <description><![CDATA[Cuando aprendes a programar en PHP, dos de las primeras funciones que usas son include y require. Prácticamente sirven para lo mismo, insertar código de un tercer fichero en el fichero actual (en otros lenguajes de programación hay funciones o &#8230; <a
href="http://www.linuxhispano.net/2011/07/04/diferencia-entre-require-e-include-en-php/">Continuar leyendo <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Cuando aprendes a programar en <a
target="_blank" href="http://php.net/" target="_blank">PHP</a>, dos de las primeras funciones que usas son <em><a
target="_blank" href="http://php.net/manual/es/function.include.php" target="_blank">include</a></em> y <em><a
target="_blank" href="http://php.net/manual/en/function.require.php" target="_blank">require</a></em>. Prácticamente sirven para lo mismo, insertar código de un tercer fichero en el fichero actual (en otros lenguajes de programación hay funciones o construcciones similares). Pero, <strong>¿cuál es la diferencia entre ellas?</strong></p><p>Antes de la versión 4.0.2 de PHP (que prácticamente ninguno usaréis, o al menos deberéis usar), la diferencia radicaba en que <em>require</em> siempre leía el archivo al que hacía referencia, incluso si la línea de código en que se encontraba no se ejecutaba nunca (por ejemplo dentro de un condicional). <em>include</em> en cambio sí que se veía afectado por los condicionales y sí que podíamos hacer que no se ejecutara (por lo que tampoco se ejecutaba el código del archivo diferenciado).</p><p>Sin embargo, por razones del equipo de desarrollo de PHP, a partir de dicha versión<strong> la diferencia es la siguiente</strong>: si el archivo llamado no existe, <em>include</em> sólo da un <em>warning</em>, y sigue ejecutando, mientras que <em>require</em> produce un error e interrumpe el flujo de ejecución.</p> ]]></content:encoded> <wfw:commentRss>http://www.linuxhispano.net/2011/07/04/diferencia-entre-require-e-include-en-php/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
