Leer un fichero de texto línea por línea con PHP

Un pequeño código para leer un fichero de texto línea por línea:

$handle = fopen("mifichero.txt", "r");
if ($contenido) {
    while (($linea = fgets($contenido)) !== false) {
        // hacemos algo con la línea
    }
} else {
    // no se ha podido leer el fichero
}

Me han pasado un fichero de texto con un listado de unos 3500 códigos para cargar en una base de datos, y cada uno tenía que estar vinculado con distintos valores de distintas tablas, así que para cada línea necesitaba una consulta diferente. En menos de cinco minutos, hecho.

El favicon en las SERP y enlaces patrocinados

Favicon SEO Yandex

Anuncia hoy Google en su Inside Adsense Blog que introduce la opción de añadir favicones a los anuncios de tipo texto. Parece un pequeño cambio, pero seguramente mucha gente tendrá que preparar muchos favicones de aquí a que termine el mes.

De momento, Google se queda en los enlaces patrocinados, pero Yandex ya lleva mucho tiempo dejando que el favicon de un sitio web tenga presencia en las SERP —además de tenerla en los enlaces patrocinados de Yandex.Direct—, y aunque parezca una tontería, es un elemento muy simple que puede llamar la atención del usuario y hacer que nuestro sitio obtenga el siempre deseado clic. Hay servicios como una farmacia, hotel, automóvil, billetes de avión o tren… para los que puede resultar muy sencillo tener un favicon que destaque.

En la imagen de arriba, la imagen que Google ha publicado en su blog de Adsense, superpuesta a una captura de pantalla de los resultados de Yandex para una búsqueda de hotel, donde se puede observar que Yandex muestra los favicones tanto en los enlaces patrocinados como en los orgánicos.

Si, el favicon siempre ha tenido su uso, pero ¿crees que ahora Google animará a que la gente tenga un favicon en su sitio web o esperará a que Google lo empiece a mostrar en sus SERP?

Personalizar las reglas de escritura de URL en WordPress

En uno de los proyectos en los que estoy trabajando actualmente he tenido que crear una serie de páginas con contenido personalizado para integrar en un tema de WordPress. El problema con el que me encontré es que los enlaces permanentes de WordPress llevan su propia dinámica —más allá de editar el fichero .htaccess— y si preparas páginas o entradas con contenido propio, quizás quieras o debas seguir usando las URLs semánticas por aquello del SEO y otras historias.

Así pues, además de tener preparadas las páginas de plantilla que puedas necesitar, lo primero será registrar esas nuevas reglas de escritura para las URL. Puedes incluir este código en el fichero functions.php de tu tema, por ejemplo:

add_action( 'init', 'mis_reglas_rewrites_init' );
function mis_reglas_rewrites_init(){
    add_rewrite_rule('mipagina/([0-9]+)-(.*).html?$','index.php?pagename=mipagina&mivariable_id=$matches[1]','top' );
}

add_filter( 'query_vars', 'misreglas_query_vars' );
function misreglas_query_vars( $query_vars ){
    $query_vars[] = 'mivariable_id';
    return $query_vars;
}

Luego puedes ir a los ajustes de enlaces permanentes desde la administración de WordPress y guarda los ajustes de enlaces permanentes para que refresque estas reglas, no es necesario que cambies nada, simplemente guarda cambios tal cual lo tengas configurado. También puedes llamar a la función flush_rewrite_rules(); para forzar este refresco.

Para recuperar la variable en las páginas que añadas a tu tema de WordPress, puedes hacerlo con la siguiente función:

get_query_var('mivariable_id');

Mientras estés con el desarrollo, si quieres consultar y mostrar en pantalla todas las reglas de escritura de URLs que tienes, puedes usar esta función. Así puedes echar un vistazo a lo que realmente está usando WordPress, por si alguna URL no funciona como esperabas.

function mostrar_rewrite_rules() {
	global $wp_rewrite;
	if (!empty($wp_rewrite->rules)) {
		echo 'Reglas para enlaces permanentes';
		echo '
'; foreach ($wp_rewrite->rules as $nombre => $valor) { echo $nombre.'
'.$valor.'
'; } echo '-fin-'; } else { echo 'Nada que mostrar'; } }

En el Codex de WordPress puedes encontrar muchísima más información si has de desarrollar o personalizar un tema para este gestor de contenidos. Las posibilidades de este CMS llegan hasta donde llegue tu imaginación 🙂

Optimizar WordPress para el SEO con Yandex

Sin duda, WordPress es una excelente herramienta para poner en marcha un sitio web de manera rápida. Con un poco de tacto, uno lo puede dejar bastante bien optimizado para indexación y posicionamiento en buscadores. Si sabes lo que te haces, no hay grandes diferencias entre ir generando y optimizando contenidos para Google o Yandex con las funciones de las que uno dispone por defecto en WordPress, pero existen algunos plugins que pueden resultar de mucha utilidad si has de trabajar con WordPress en ruso y uno de tus principales objetivos es el buscador ruso Yandex.

WP Native Dashboard

Si el público del sitio web va a ser exclusivamente ruso, siempre recomiendo instalar la versión en ruso de WordPress, con la que tanto la parte pública como la administración quedarán en este idioma. Si quieres tener la administración en español, una de las opciones que tienes es este plugin, que te permitiría cambiar el idioma de la administración en función de tus necesidades. Tu podrías trabajar en español y tu cliente podría entrar igualmente y ver la administración en ruso. Eso si, al haber definido un idioma por defecto en el fichero wp-config.php, algunos plugins pueden ignorar esta preferencia y seguirías teniendo algunas opciones en ruso.

Cyr-And-Lat

Al escribir el título de un post o entrada, si estás usando URL semánticas, el slug del post o entrada quedará en cirílico. Esto no supone mayor problema, salvo que Internet Explorer se puede volver un poco lelo mostrando las URLs de forma legible, aunque esto no impide que el sitio funcione con toda la normalidad. Otro asunto es la decisión que se haya tomado sobre las URLs semánticas del sitio web (sobre este tema ya escribí hace tiempo un artículo —URLs semánticas en sitios web en idioma ruso—).

Si hemos decidido usar URLs semánticas con ruso transliterado, este plugin se encarga de convertir automáticamente los caracteres cirílicos a su equivalente latino transliterado. Si uno quiere afinar con precisión, podéis editar el fichero PHP del plugin para modificar el array con el que se realiza la conversión entre alfabetos, por si queréis personalizar —por ejemplo— la transliteración de caracteres como Й, Ц, Щ, Ж, Х, etc…

La decisión de cómo tratar las URLs es bastante importante. La transliteración del cirílico es quizás una de las mejores opciones y este plugin simplifica tremendamente la labor, aunque quien se encargue de añadir los contenidos no tenga ni idea de ruso y se limite a copiar-pegar lo que le vayan entregando.

WP Paste Analytics

Este plugin permite insertar el código de Google Analytics y también el de Yandex.Metrika, así como las meta etiquetas para vincular tu sitio web con las herramientas para webmaster de Google y Yandex.

No todo son plugins, que los hay casi para todo lo que podamos necesitar. Igualmente suelo utilizar y recomendar algún plugin para añadir funciones avanzadas de SEO (como WordPress SEO by Yoast) y gestionar los ficheros robots.txt y sitemap.xml.

También nos puede ir bien —la verdad, bastante bien— revisar la plantilla del tema que estemos usando (muchos se anuncian como seo optimized y realmente no lo son) y cuidar hasta el más mínimo detalle los factores onpage de todo el contenido que generemos. Sobre todo esto último, Yandex nos lo agradecerá.

Redirección de productos descatalogados con Prestashop

Si gestionas una tienda online con Prestashop, puede resultar más o menos frecuente tener que desactivar productos o descatalogarlos, si son productos que ya no vas a vender más, bien por ser productos estacionales o porque se han dejado de producir por los siglos de los siglos.

Una opción que tenemos disponible es desactivar el producto, con lo que dejará de estar visible en la tienda y devolverá un error 404 mostrando un mensaje de “producto no disponible”. Si quieres evitar esto, la alternativa es dejar visible el producto, pero sin stock, con lo que puedes tener a un usuario pendiente de si repones o no repones existencias.

Así que, cuando está claro que no vas a reponer existencias, y te preocupa —por motivos de SEO y posicionamiento, por ejemplo— que tengas muchos productos inactivos o descatalogados generando errores 404, puedes optar por añadir redirecciones 301 hacia productos o categorías similares.

Para mi, la solución fue añadir esta línea antes del </IfModule> del fichero .htaccess que puedes generar desde la administración de Prestashop. La verdad, nunca había tenido mayores problemas para añadir redirecciones, pero supongo que algo hacía mal o algo ponía mal para lograr que el .htaccess de Prestashop siguiera funcionando y mis redirecciones funcionasen también.

Redirect 301 /categoria/1234-nombre-del-producto-inactivo.html http://mi-tienda.com/categoria/4321-nombre-del-producto-activo.html?

El motivo de añadir el símbolo ? al final de la URL a la que redirecciono es para evitar que pase el parámetro id_product=1234 que viene como variable en la URL. Como así me funcionó, no le he dedicado más tiempo. Si has tenido el mismo problema y te ha servido otra solución, la puedes compartir.

Procesar código PHP en documentos HTML

Con frecuencia he tenido que añadir algo de PHP a sitios web ya realizados en los que el diseñador había construido todo el sitio con ficheros .html, de manera que los enlaces apuntan a documentos .html y no .php, y uno se encuentra con que los documentos con extensión .html no procesan el código PHP y viene tal cual en el código fuente de la página una vez que llega al navegador.

Como resultaría un poco incordio tener que modificar todos los enlaces —sobre todo si no se han usado plantillas o includes y cada página es independiente— una de las soluciones más rápidas es añadir un fichero .htaccess con las siguientes líneas

AddType application/x-httpd-php .html
AddHandler application/x-httpd-php .html

De esta forma, los documentos .html se procesan de la misma forma que los .php en el servidor y nos ahorramos tener que modificar extensiones de ficheros o enlaces.

WordPress en ruso y español

Usar WordPress en ruso y español para publicar una web es realmente sencillo. Probablemente, si necesitas habilitar una versión en ruso de un sitio web, es que ya tienes una versión en español, y el ruso —así como otros idiomas— son versiones localizadas del sitio original.

Si has partido de una instalación típica de WordPress, seguramente estás trabajando con la versión que se puede descargar en http://es.wordpress.org, que ya incorpora la traducción en español.

Esta es una de las varias opciones que hay para habilitar la versión en ruso.

  1. Partimos del supuesto que ya tienes instalado y funcionando un WordPress en español
  2. Descarga la versión de WordPress en ruso en la dirección http://ru.wordpress.org
  3. Descomprime el fichero que has descargado
  4. Copia el contenido del directorio /wp-content/languages de la versión en ruso al mismo directorio de tu instalación de WordPress en español
  5. Opcionalmente, puedes hacer lo mismo con los ficheros que encontrarás en el directorio /languages de los temas que vienen por defecto con la última versión de WordPress (en estos momentos la 3.2.1), que son Twenty Ten y Twenty Eleven para que los textos de estos temas también estén traducidos

En este punto tendrás tu WordPress listo para mostrar la interfaz en español o en ruso. Esto lo haces cambiando esta línea del fichero wp-config.php que hay en el directorio raiz de tu instalación de WordPress:

define('WPLANG', 'es_ES');

Donde usamos es_ES para español, ru_RU para ruso. Leer Más

Black Hat SEO, White Hat SEO… quita, que yo controlo

SEO - robots.txt

Me pidieron consejo para acompañar el diseño un sitio web de unas cuantas instrucciones que el desarrollador tuviera en cuenta a la hora de hacer el sitio lo más amigable posible para los buscadores. Un poco de SEO y tal. Todo muy básico. Y sobre todo teórico. Teoría es lo máximo a lo que puedes aspirar cuando el desarrollador no te deja acceder vía FTP para modificar ficheros, y además padece de sordera crónica. Lo que nunca imaginé es que el desarrollador contribuyera con un fichero robots.txt tan espectacular. Luego, claro, que el cliente desparece de los buscadores.

Es comunicación, lo demás solo son herramientas

Desde que empecé a impartir clases en la Universidad San Jorge, les he repetido a mis alumnos de periodismo algo de lo que hace años estoy convencido: en Internet hay una increíble cantidad de oportunidades profesionales para alguien con formación de periodista, si sabe completar esa formación con otras habilidades, lo cual es algo que no me parece nada complicado.

Este es mi punto de vista y opinión sobre las posibilidades que tiene un estudiante de periodismo que se enfrente a la incorporación al mercado de trabajo. No todo son periódicos, televisiones y radios. En lo digital hay muchas oportunidades.

Y parto del supuesto que un estudiante de periodismo escribe y redacta de forma impecable, es capaz de encontrar información y documentación de todo tipo, y sabe estructurar y organizar contenidos para distintos soportes de publicación. Yo terminé la carrera hace unos 15 años y ya nos enseñaban esas cosas, aunque lo más digital que había era el Photoshop 2.0. Leer Más

Yandex Webmaster, disponible en inglés

Desde hace unas semanas están disponibles en inglés las herramientas de Yandex para webmasterЯндекс.Вебмастер—. En el pasado Congreso Web de Zaragoza las citaron como una alternativa a las de Google, si alguien era friki para usarlas, pero lo cierto es que son indispensables para quien tenga que gestionar sitios web con contenido en ruso o quiera posicionar un sitio web en Rusia. Es lo que hay. Afortunadamente para frikis y gurús, ahora no hay que depender tanto del idioma.

Si tienes algún proyecto que dependa o necesite de idioma y contenidos en ruso o posicionamiento en Rusia, puedes preguntar, seguramente podré ayudarte.