Obtener una página con autenticación en PHP

Algo que normalmente es interesante hacer y que nos da muchos problemas es leer una página web desde un script PHP y que la página tenga autenticación.

La solución es sencilla, pero es necesario el uso de CURL:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'usuario:password'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // timeout 10 segs
$data = curl_exec($ch);

Vía / [no recuerdo de dónde lo copié]

|

Wapache: ejecuta tus aplicaciones web Windows

Si antes hablábamos sobre cómo ver aplicaciones web en el escritorio, ahora vamos a hablar sobre cómo ejecutar las aplicaciones web en el escritorio. ¿Qué diferencia hay entre una cosa y otra?, pues que en este caso el servidor se ejecuta en nuestra máquina. Se trata de Wapache, una aplicación que transforma nuestras aplicaciones web en un ejecutable de Windows, para lo cual hace uso de Apache e integra un navegador Internet Explorer en la ventana, el cual no tendrá menu, barra de herramientas o barra de direcciones.
wapache.png
Además permite tres tipos de ventanas, personalizar el drop-down, y el menú contextual. Integración con el System tray y es compatible con los módulos de Apache 2.
Wapache
Vía / Jaslabs: High performance Software

| |

Laboratorio: reconocimiento de un motor de búsqueda para navegadores

Una de las características más útiles que poseen actualmente los navegadores es la posibilidad de personalizar y añadir motores de búsqueda. Firefox lo dispone desde hace tiempo e Internet Explorer lo ha añadido en su última versión. Para poder tener un poco de orden en la creación de estos motores existe OpenSearch, que tal como dice la Wikipedia es:

es un conjunto de tecnologías que permiten publicar los resultados de una búsqueda en un formato adecuado para la sindicación y agregación. Es una forma para que las páginas web y los motores de búsqueda publiquen sus resultados de forma accesible

El proceso es sencillo, añades un XML en tu web y un acceso desde tus páginas para que el navegador lo reconozca y te avise de que existe para instalarlo directamente.

El XML sería el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Sentido Web</ShortName>
<LongName>Sentido Web - Actualidad, productividad y desarrollo web...</LongName>
<Description>Encuentra todo lo que necesitas en tu día a día del desarrollo web.</Description>
<Tags>sentidoweb web internet blogs bitácoras weblogs web2.0 estándares css xhtml web-semántica php javascript</Tags>
<Contact>info@blogsmedia.com</Contact>
<Url type="text/html"     template="http://sentidoweb.com/bm/mt-search.cgi?IncludeBlogs=1&amp;search={searchTerms}&amp;submit.x=0&amp;submit.y=0&amp;submit=Buscar"/>
<Image height="16" width="16" type="image/vnd.microsoft.icon">http://sentidoweb.com/i/favicon.ico</Image>
<Query role="example" searchTerms="php" />
<Developer>Luis Sacristán Pascual</Developer>
<Attribution>BlogsMedia 2007, Creative Commons (Reconocimiento-NoComercial-SinObraDerivada 2.5)</Attribution>
<SyndicationRight>open</SyndicationRight>
<AdultContent>false</AdultContent>
<Language>es-es</Language>
<OutputEncoding>UTF-8</OutputEncoding>
<InputEncoding>UTF-8</InputEncoding>
</OpenSearchDescription>

Y la línea que hay que añadir a nuestras páginas en el header es la siguiente:

<link rel="search" type="application/opensearchdescription+xml"
href="http://dominio/path/opensearch.xml" title="Nuestro buscador" />

El XML de arriba es el que usamos para Sentido Web y aunque su lectura es clara, explicaremos cada una de las etiquetas del XML:

  • OpenSearchDescription: es la cabecera del XML de OpenSearch.
  • ShortName: contiene el nombre corto que identifica al motor de búsqueda. Debe tener como máximo 16 caracteres.
  • LongName: contiene el nombre largo que identifica al motor de búsqueda. Debe tener como máximo 48 caracteres.
  • Description: descripción del motor de búsqueda. Debe tener un máximo de 1024 caracteres.
  • Tags: conjunto de palabras separadas por espacios que describen el tipo de contenido que nos encontraremos en las búsquedas. Debe tener un máximo de 256 caracteres.
  • Contact: e-mail de contacto.
  • Url: indica el interfaz que el cliente (navegador) podrá utilizar para realizar la búsqueda. Dispone de varios parámetros que nos permiten personalizar la búsqueda:
    • type: tipo MIME del resultado de la búsqueda. Puede ser por ejemplo application/rss+xml para RSS o application/xhtml+xml para XHTML.
    • template: la plantilla de la URL para indicar al cliente cómo realizar la búsqueda, usando esta sintaxis.
    • indexOffset: contiene el índice del primer resultado de búsqueda.
    • pageOffset: contiene el número de la primera página de resultados.
  • Image: URL de la imagen que se asocia al buscador.
  • Query: define una búsqueda pueden realizar los clientes, más información aquí.
  • Developer: creador del xml.
  • AttributionEntidades a las que se les asocia el motor de búsqueda.
  • SyndicationRight: el grado de resultados que provee el buscador que se pueden buscar, mostrar y redistribuir.
  • AdultContent: indica si hay contenido para adultos.
  • Language: idioma del resultado de la búsqueda.
  • OutputEncoding: codificación de los datos de salida.
  • InputEncoding: codificación de los datos de entrada.

Existen otras etiquetas y se le pueden añadir otras si se indica un xmlns en la etiqueta OpenSearchDescription.