Developer.com: crea tu primera aplicación PHP para Android
En Developer.com han realizado un tutorial que explica cómo desarrollar tu primera aplicación para Android (ejecutado en un intérprete PHP de tu móvil)…
En Developer.com han realizado un tutorial que explica cómo desarrollar tu primera aplicación para Android (ejecutado en un intérprete PHP de tu móvil)…
Una de las cosas que más me gusta de Java es que cuando se produce una excepción, el error que te muestra te saca una traza de toda la ejecución de procesos (qué función falla, en qué lÃnea y qué funciones se han llamado hasta llegar a ese punto). En PHP a veces los errores son algo simples, falla tal cosa en tal lÃnea.
Afortunadamente podemos mejorar los mensajes de debug para poder mostrar la misma información: lÃnea del archivo, fichero y qué funciones han sido las que han llamado a la actual (backtrace).
Para poder realizarlo se ha de usar las variables __FILE__ y __LINE__ y la función debug_backtrace(). El código necesario serÃa el siguiente:
function debug($msg, $label = 'DEBUG', $stealth = FALSE) {
if (defined('DEBUG') && DEBUG) {
if (is_bool($msg)) {
$msg = $msg ? 'TRUE' : 'FALSE';
}
$display = $stealth ? ' style="display: none;"' : '';
$backtrace = debug_backtrace();
$debug = array();
$stack = (isset($backtrace[1]['class']) ? "{$backtrace[1]['class']}::" : '')
. (isset($backtrace[1]['function']) ? "{$backtrace[1]['function']}" : '');
if ($stack) {
$debug[] = $stack;
}
$debug[] = "Line {$backtrace[0]['line']} of {$backtrace[0]['file']}";
$debug = implode('
', $debug);
print "{$label}: {$debug}:
".print_r($msg, 1)."
\nâ€;
}
}
Algo que suele ser interesante es cuando realizamos una búsqueda en Google, que en la página a la que accedemos desde los resultados de Google, nos resalte las palabras que hemos buscado, aunque la barra de Google ya te da la oportunidad de hacerlo.
El proceso es sencillo, tenemos que capturar la URL desde la que nos llaman, dada por $_SERVER[‘HTTP_REFERER’], obtener las palabras que hemos puesto a buscar el Google (vienen en el parámetro q) y después capturar la salida, como se realizaba en el caso de la caché, y cuando tenemos lo que vamos a enviar por la salida, sustituir cada una de las palabras por el código HTML que queramos que resalte la palabra en cuestión.
<?php
// Filtro para el array para quedarnos solo con la QUERY
function filtro($val) {
return strpos($val, 'q=') === 0;
}
// Obtenemos la página desde la que nos llaman
$url = $_SERVER['HTTP_REFERER'];
// Nos quedamos solo con los parámetros
$url = parse_url($url);
$url = $url['query'];
// Nos quedamos solo con el parámetro que nos interesa
$parametros = split("&", $url);
$cadena = array_filter($parametros, "filtro");
$cadena = urldecode(substr(array_shift($cadena), 2));
// Cacheamos la salida
ob_start();
?>
...
Página HTML
...
<?php
// Recuperamos el buffer de salida
$html = ob_get_clean();
// Por cada palabra de la cadena de búsqueda, la sustituimos por el HTML necesario para resaltar
$palabras = split(" ",$cadena);
foreach ($palabras as $palabra) {
$html = preg_replace('/('.$palabra.')/i', '<b>$1</b>', $html);
}
// Mostramos el buffer por la saliad
echo $html;
?>
We recently devised a system to redirect old URLs in PHP so that you could avoid “page not found” errors (I suggest you read it before venturing further). In this article, we’ll create a similar system for WordPress, the popular PHP CMS. How is WordP
Post original
phpMyFAQ es un sistema multi-idioma para la gestión de FAQs, requiere PHP 4.3 o superior y admite diferentes sistemas de bases de datos (MySQL, PostgreSQL, SQLite, Sybase, MS SQL Server, MaxDB, IBM DB2, IBM Cloudscape, Apache Derby, Oracle, Interbase y Firebird).
También ofrece un CMS con editor WYSIWYG y un gestor de imágenes. Soporte para multi usuarios con usuarios y grupos basados en permisos en categorÃas y registros. Además añade revisión de tipo wiki, sistema de noticias, user tracking, plantillas, soporte a XML, PDF, sistema de backup, artÃculos relacionados, etiquetado, RSS, protección anti-spam, LDAP y scripts de instalación.
phpMyFAQ
VÃa / International PHP Magazine