PHP SDK de Open Graph de Facebook

Si el otro día comentaba la nueva API de Open Graph de Facebook, ahora encuentro una librería que nos permite trabajar de forma sencilla con esta API:

include_once 'lib/facebook.php';
include_once 'config.php';
$facebook = new Facebook(array(
  'appId'  => FACEBOOK_API_KEY,
  'secret' => FACEBOOK_SECRET_KEY,
  'cookie' => true,
  'domain' => 'phpfour.com'
));
$session = $facebook->getSession();
if (!$session) {
  $url = $facebook->getLoginUrl(array(
    'canvas' => 1,
    'fbconnect' => 0
  ));
  echo "";
} else {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
    $updated = date("l, F j, Y", strtotime($me['updated_time']));
    echo "Hello " . $me['name'] . "
"; echo "You last updated your profile on " . $updated; } catch (FacebookApiException $e) { echo "Error:" . print_r($e, true); } }

PHP-SDK Facebook

Vía / Md Emran Hasan

PHP Excel Reader: recupera información de ficheros XLS

PHP Excel Reader es una librería que lee ficheros Excel (extensión xls) y permite acceder a la información y modificarla. Con esta librería podrás modificar datos de celdas, sheets y darle estilos. Además con un código tan sencillo como este, permite mostrar el siguiente gráfico (añadiéndole un poco de CSS):

$data = new Spreadsheet_Excel_Reader("test.xls");
$data->dump(true, true);

PHP Excel Reader

Vía / WebAppers

API de Open Graph de Facebook

Si el otro día salía Open Graph de Facebook, ahora hay que ponerse a hacer aplicaciones para hacer uso de esta API, porque nos guste o no, Facebook nos puede aportar mucho a nuestra aplicación.

La verdad es que la API es muy sencilla: llamada http que devuelve JSON. Siendo la URL de la llamada de esta forma:

https://graph.facebook.com/ID[/CONNECTION_TYPE]

Lo bueno es que el ID puede ser cualquiera: un usuario, una página, un status, una aplicación, … Y luego se le puede añadir el tipo de conexión para obtener los amigos, los vídeos, … de un usuario.

Facebook Graph API

Permitir el botón atrás en aplicaciones dinámicas

Cuando realizamos aplicaciones dinámicas, ya sea usando Ajax o mediante javascript mostrando u ocultando contenidos, nos podemos encontrar con el problema de que el usuario pulse el botón ‘Atrás’ del navegador creyendo que accederá al contenido anterior. El resultado de esa acción será en la mayoría de los casos que el usuario acceda a la página anterior y no al ‘contenido’ anterior.

Para solucionar esto, lo que se debe hacer es que las acciones dinámicas sean realizadas mediante enlaces (#), por ejemplo, si queremos usar pestañas podemos acceder a #tab1, #tab2, …, #tabn. Si vamos atrás en el navegador continuaremos en la misma página pero en otra sección (#).

Para tratar esto mediante jQuery se puede hacer usando el siguiente código:

$(window).bind('hashchange', function () {
  // hacer lo que sea para mostrar el contenido
});

Enabling the Back Button

Vía / CSS Globe

Google Docs Printer: librería para mostrar documentos de Google Docs

Google Docs Printer es una librería que permite recuperar y mostrar documentos alojados en Google Docs, para ello hace uso del identificador del documento dado por Google.

Esta librería tan solo accede al documento y obtiene el HTML que muestra el documento, no tiene más funcionalidades, pero aún así puede venirnos muy bien.

require_once 'GoogleDocPrinter.php';
GoogleDocPrinter::PrintGoogleDoc("ddw2x8n_169dpzsxfng");

Google Docs Printer

PHPico: librería PHP para trabajar con iconos

PHPico es una librería PHP que nos permite crear y manipular iconos (formato .ICO), pudiendo leer y escribir archivos de iconos. Permite crear iconos vacíos, añadir imágenes de diferentes tamaños y bits, quitar imágenes de los iconos, indicar el color de los iconos, añadir definiciones de colores, …

require_once('PHPico.php');
$i = new PHPicoImage();
$i->createBlankImage(8, 8, 8);
$i->addColor(0, 3, 255, 0, 0, 0);
$i->addColor(0, 2, 0, 255, 0, 0);
$i->addColor(0, 1, 0, 0, 255, 0);
$i->setPixel(0, 0, 0, 3, 0);
$i->setPixel(0, 1, 1, 2, 0);
$i->setPixel(0, 2, 2, 1, 0);
$i->setPixel(0, 3, 3, 3, 0);
$i->save('F', 'test.ico');

PHPico

Librería PHP para trabajar con la API de Yahoo!

Si estamos interesados en trabajar con la API de Yahoo! y así poder acceder a YAP, YQL o Yahoo! Social.

Su uso es muy sencillo:

$session = YahooSession::requireSession(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, OAUTH_APP_ID);
$user = $session->getSessionedUser();
var_dump($user->getProfile());
var_dump($user->getContacts());

$contact_fields = array();
$contact_fields[] = array('type' => 'email', 'value' => 'me@domain.com');
$contact_fields[] = array('type' => 'name', 'value' => array('givenName'=> 'John', 'familyName' => 'Doe'));
$contact = array('fields' => $contact_fields);
var_dump($user->addContact($contact));

Una cosa interesante que tiene es que permite almacenar la sesión en fichero, cookies o memcached

Yahoo! Social SDK – PHP library

Uso avanzado de expresiones regulares en PHP

Interesante y completo tutorial en el que se nos explica usos de las expresiones regulares que normalmente no solemos tener en cuenta:

Añadir comentarios

preg_match("/^
    (1[-\s.])?	# optional '1-', '1.' or '1'
    ( \( )?		# optional opening parenthesis
    \d{3}		# the area code
    (?(2) \) )	# if there was opening parenthesis, close it
    [-\s.]?		# followed by '-' or '.' or space
    \d{3}		# first 3 digits
    [-\s.]?		# followed by '-' or '.' or space
    \d{4}		# last 4 digits
  $/x",$number);

Callbacks

$template = preg_replace_callback('/\[(.*)\]/','my_callback',$template);  
function my_callback($matches) {  
  /* codigo */
}

‘Codicia’ de la regexp

$html = 'Hello World!';  
// note the ?'s after the *'s  
if (preg_match_all('/.*?<\/a>/',$html,$matches)) {  
  print_r($matches);  
}

Prefijos y sufijos

$pattern = '/foo(?=bar)/'; 
$pattern = '/foo(?!bar)/'; 
$pattern = '/(?

Condicionales

// if it begins with 'q', it must begin with 'qu'  
// else it must begin with 'f'  
$pattern = '/^(?(?=q)qu|f)/';

Subpatrones

preg_match('/(?PH.*) (?Pf.*)(?Pb.*)/', 'Hello foobar', $matches);  
echo "f* => " . $matches['fstar']; // prints 'f* => foo'  
echo "b* => " . $matches['bstar']; // prints 'b* => bar' 

Advanced Regular Expression Tips and Techniques

Librería PHP para oData

oData es un protocolo creado por Microsoft para obtener y actualizar datos en aplicaciones. Para ello hace uso de HTTP, AtomPub y JSON para garantizar el acceso a la información desde cualquier aplicación, servicio o almacenamiento. El cual dispone de un SDK, includo PHP.

oData

Vía / php|architect