| |

Añadir variables a CSS mediante PHP y htaccess

Curioso script que nos permite añadir variables a nuestras CSS usando para ello PHP y htaccess. No es algo que recomendaría hacer por tema de rendimiento, pero sí para proyectos en los que quienes realicen las páginas no tenga demasiado conocimiento de desarrollo web.
El proceso es sencillo, las css mediante Apache se redireccionan a un script PHP, en las CSS se crean variables del siguiente modo $color: #FFF; y luego el nombre de la variable se usa en cada estilo. El PHP parsea el fichero CSS y sustituye cada aparición de la variable por su correspondiente valor. Se cachea el resultado y se muestra.
Puede que haya modos más eficientes, como que el archivo CSS realmente no exista, y cuando sea así, se ejecute el script y se cachee, así la próxima vez que se acceda, no se pasa por el script PHP.
How to Add Variables to Your CSS Files
Vía / CSS Globe

Utilidades para comprobar la calidad del código PHP

5 herramientas para comprobar la calidad de código PHP:

  • PHP_CodeSniffer comprueba si falta algún elemento de código estándar en los scripts PHP, Javascript y CSS
  • phpmd busca en el código PHP posibles problemas como bugs, código no óptimo o expresiones complicadas.
  • phpcpd detector de código PHP copiado/pegado.
  • PHP_Depend herramienta de métricas PHP.
  • PHPUnit framework de unidades de test.

Quality Assurance Tools for PHP

Vía / PHPDeveloper.org

Sobreescribir funciones internas de PHP mediante namespaces

Una de las novedades que trae PHP 5.3 son los namespaces, un modo de encapsulación de elementos. Gracias a los namespaces podemos ejecutar un mismo código usando diferentes namespaces y así obteniendo diferentes resultados.

Esta opción nos permite sobreescribir funciones de PHP y usarlas en nuestro código:

namespace Foo;
function file_put_contents( $filename, $data, $flags = 0, $context = null ) {
$return = \file_put_contents( $filename, $data, $flags, $context );
chmod($filename, 0444);
return $return;
}

What’s new in PHP V5.3, Part 3: Namespaces

Librería PHP para Paypal, Authorize.net y 2Checkout

PHP Payment es una librería PHP para realizar pagos en tres de las plataformas de pagos Paypal, Authorize.net y 2Checkout haciendo el proceso de pago bastante sencillo, como por ejemplo para Paypal:

// Include the paypal library
include_once ('Paypal.php');
// Create an instance of the paypal library
$myPaypal = new Paypal();
// Specify your paypal email
$myPaypal->addField('business', 'YOUR_PAYPAL_EMAIL');
// Specify the currency
$myPaypal->addField('currency_code', 'USD');
// Specify the url where paypal will send the user on success/failure
$myPaypal->addField('return', 'http://YOUR_HOST/payment/paypal_success.php');
$myPaypal->addField('cancel_return', 'http://YOUR_HOST/payment/paypal_failure.php');
// Specify the url where paypal will send the IPN
$myPaypal->addField('notify_url', 'http://YOUR_HOST/payment/paypal_ipn.php');
// Specify the product information
$myPaypal->addField('item_name', 'T-Shirt');
$myPaypal->addField('amount', '9.99');
$myPaypal->addField('item_number', '001');
// Specify any custom value
$myPaypal->addField('custom', 'muri-khao');
// Enable test mode if needed
$myPaypal->enableTestMode();
// Let's start the train!
$myPaypal->submitPayment();

PHP Payment Library for Paypal, Authorize.net and 2Checkout (2CO)

Parsear HTML con PHP

Para obtener datos de un HTML, en vez de hacerlo con expresiones regulares, hacerlo mediante DOMDocument:

$oldSetting = libxml_use_internal_errors( true );
libxml_clear_errors();
$html = new DOMDocument();
$html->loadHtmlFile( $url );
$xpath = new DOMXPath( $html );
$links = $xpath->query( '//a' );
foreach ( $links as $link ) {
echo $link->getAttribute( 'href' ), "\n";
}
libxml_clear_errors();
libxml_use_internal_errors( $oldSetting ); 

Se utiliza libxml_use_internal_errors para evitar HTML mal formados

Me pregunto si para obtener tan solo un dato del HTML (title por ejemplo) es mejor el DOM o las expresiones regulares.

Extracting data from HTML

Extensión PHP para Drizzle

Ya he hablado anteriormente de Drizzle, una base de datos muy ligera y rápida, pensada para aplicaciones web. Lo que se echaba en falta era una librería PHP para poder desarrollar.

Drizzle PHP Extension es una extensión que nos permite desarrollar bajo PHP usando Drizzle de forma sencilla.

$drizzle= drizzle_create();
$con= drizzle_con_add_tcp($drizzle, "127.0.0.1", 0, "root", NULL, "sakila", 0);
$result= drizzle_query($con, "SELECT * FROM film LIMIT 3");
drizzle_result_buffer($result);
while (($row= drizzle_row_next($result)) != NULL)
print implode(':', $row) . "\n";

Drizzle PHP Extension

Vía / Oddments

CodeIgniter 1.7.1

Ha salido la nueva versión de CodeIgniter (1.7.1) que soluciona algunos bugs y trae algunas mejoras, como por ejemplo evitar XSS en casos específicos contra Internet Explorer.
Sigo recomendando CodeIgniter a todos aquellos que programen PHP.
CodeIgniter 1.7.1
Vía / PHPDeveloper.org

Convertir IP en su país con PHP

Desde Devshed nos ofrecen un completo tutorial para realizar una aplicación que convierte una dirección IP en su correspondiente país. Para ello, lo más importante es la base de datos de direcciones IP: http://software77.net/cgi-bin/ip-country/geo-ip.pl, sin la cual no se podría hacer la aplicación.
Después nos indica cómo pasar la BD de las IPs a una tabla de MySQL mediante un script, y ya con esta tabla podremos trabajar con la relación IP-país.
Building an IP-to-Country Mapping Application with PHP

|

Open Blog: CMS de blogs creado en CodeIgniter

Open Blog es un CMS para crear un propio blog realizado en CodeIgniter.
Tiene una interfaz de usuario limpia y fácil de usar, se instala y configura también de forma sencilla. Soporte a multilenguaje, plantillas, urls friendly, panel de administración, editor WYSIWYG, páginas estáticas, blogroll, feeds, y soporte a plugins.
Open Blog

Crear daemons con PHP

Muy buen tutorial que nos explica paso a paso cómo crear un daemon para Linux usando PHP. A parte de la explicación del desarrollo del script, haciendo uso de la librería System_Daemon, me gustaría destacar que aunque muchas veces usamos el cron, no siempre es lo más adecuado, ya que el cron solo nos permite ejecutar el script como máximo cada minuto y que si el script anterior no ha finalizado, se ejecutarían dos procesos a la vez, lo cual puede que no sea lo más conveniente.
Create daemons in PHP