Buscar

Rss Artículos

Foro

Autor

 

Artículos en ‘Php’

Usar akismet con PHP fuera de Wordpress

Jun 25

Para quién no conozca Akismet decir que era hasta ahora uno de los plugins más usados en wordpress para evitar el spam en nuestros blogs.

He dicho “hasta ahora” por que a partir de este momento ya podemos usarlo fuera de la plataforma wordpress e integrarlo fácilmente con nuestras páginas php.

Un ejemplo del uso e integración de ese sistema antispam

// Comprueba si un comentario es spam
aksimet_check( $vars )
// Re-clasifica un comentario como spam
aksimet_spam( $vars )
// Re-clasifica un comentario como NO spam
aksimet_ham( $vars )

Yo lo vengo usando desde hace bastante tiempo en este blog y pese a haber escuchado comentarios no muy favorables, nunca he tenido problemas serios con él

Descarga: Akismet para PHP

Cortar caracteres de una cadena en PHP

Jun 20

Esta es una de las preguntas que más escucho, ¿Cómo puedo recortar una cadena en PHP? pues es bien fácil y vamos a ver dos opciones, que cada uno coja la que mejor se adapte a sus necesidades.

Substr

Esta manera es la más rápida, nos cortará la cadena por el número de caracteres que queramos

substr($palabra, $caracter_comienzo, $caracter_fin);

Personalmente recomendaría utilizar la función strlen($palabra) para verificar que la palabra que vamos a recortar tiene al menos ese número de caracteres ya que si no fallaría.

Podemos concatenar la función substr con la cadena “…” así sabremos cuando ha sido cortada y cuando no.

Explode

Mediante el uso de esta función podemos evitar cortar palabras, es decir, cortaremos una frase pero nunca dejaremos una palabra a medias, esta forma consume más recursos, pero quizá en algún momento nos pueda interesar usarla.

$frase = ‘Este es el texto de prueba’;
$num_palabras = 4;
$texto_partido = explode(’ ‘,$frase); //separamos la frase por las palabras
for($i=0;$i<$num_palabras;$i++){
echo $texto_partido[$i];
}

De esta manera, aunque no cortemos palabras, podemos pasarnos de largo si alguna frase contiene palabras muy grandes, pero como ya digo, que cada uno decida que opción le viene mejor.

Obtener la configuración de PHP

Jun 16

Quizá una de las funciones más importantes y que pocos suelen usar es

<? phpinfo() ?>

Mediante esta sencilla instrucción podemos acceder a todas las variables de configuración de nuestro PHP e incluso las relacionadas con bases de datos y servidores web.

Para hacerlo funcionar simplemente tendremos que generar un fichero .php que contenga esa instrucción y a continuación acceder a él a través del navegador, de esta forma se nos desplegará una tabla informativa con toda la información asociada a la configuración de PHP.

Es interesante para saber qué modulos tenemos instalados, con cuales podemos trabajar y que restricciones disponemos.

Para cambiar estos valores podemos dirigirnos al fichero php.ini que suele estar en el directorio principal de PHP.

Sesiones en PHP

Jun 13

¿Qué es una sesión?

Una sesión es una manera que tiene PHP para trabajar con determinados valores almacenados en el servidor.

Esto permite poder almacenar la información asociada a un usuario, registro o lo que deseemos en un espacio temporal evitando así el tener que usar cookies (se almacenan en el cliente no en el servidor) o tener que pasar parámetros de una página a otra.

La carpeta donde se guardará esta información en el servidor, será establecida en el php.ini con el parámetro session.save_paht

¿Cómo creamos una sesión en PHP?

Para crear una sesión bastará con ejecutar la instrucción

session_start();

Por defecto, si en el php.ini hemos establecido el parámetro session.use_trans_sid a 1 entonces se asignará un SID (Identificador de la sesión) automático, sino, tendremos que asignarle uno manualmente, pero por defecto ya viene el automático así que no tenemos de qué preocuparnos.

Para obtener el identificador de la sesión podemos utilizar la función

session_id()

Trabajar con una sesión

Para trabajar con una sesión utilizaremos las variables al igual que hacemos normalmente salvo que ahora, para diferenciarlas de las normales tomaremos el parámetro $_SESSION['nombre varialbe'];

Para asignarle valor a una variable de sesión utilizaremos

$_SESSION['nombre_variable'] = “valor”;

Y cuando queramos recuperar ese valor, o bien trabajamos con esa variable o la volcamos en cualquier otra

$valor = $_SESSION['nombre_variable'];

En sesión podemos almacenar cualquier tipo de datos con el que pudiéramos trabajar normalmente en PHP

Errores comunes

Quizá el mayor error que podemos cometer al trabajar con sesiones en PHP es que sólo podemos generar una sesión antes de haber sacado nada por pantalla, el mero hecho de poner un salto de línea delante de la instrucción session_start(); provocaría un error de este estilo:

Warning: Cannot send session cookie - headers already sent by (output started at …

Si esto nos ocurre sólo tendremos que asegurarnos que la primera instrucción que se ejecuta antes de mostrar nada por pantalla o haber enviado alguna cabecera sea session_start();

Otro error muy común es sólo crear la sesión en la primera página, siempre que queramos utilizar una variable de sesión, como $_SESSION['usuario'] hemos tenido que ejecutar la instrucción session_start(); en ese mismo fichero.

Programar la ejecución de un fichero PHP

Jun 11

Mucha gente pregunta y tiene dudas en cuanto a si con PHP podemos disponer de ciertas “tareas programadas” y la respuesta es que si, aunque realmente no es autosuficiente como para hacerlo por sí solo, podemos conseguirlo.

El caso más sencillo es con linux (la mayoría de hosting disponen de ello), ya que mediante la utilización de cron no tendremos más que decirle que script php queremos que ejecute y cada cuanto tiempo.

Para Windows, aunque algo más laborioso es también bastante sencillo.
Haremos uso de las tareas programadas de Windows y del soporte de PHP para ser utilizado desde la línea de comandos.

Lo primero será crearnos un fichero .bat que ejecute un script php, por lo que incluiremos la siguiente instrucción

php -r C:\ruta\nombre_fichero.php

Ahora sólo tendremos que dirigirnos a “tareas programadas” de Windows y hacer que se ejecute ese fichero .bat a la hora y día que nosotros deseemos.

PHP optimizado para Windows Server e IIS

Mar 27

Si utilizas como servidor web el IIS (Internet Information Services) de Microsoft estás de enhorabuena, ya que tanto Microsoft como Zend quieren que la relación Windows-PHP funcione lo mejor posible, por ello cada uno pone de su parte.

Los de Microsoft, han desarrollado un componente para el IIS, denominado FastCGI, que servirá como interfaz entre PHP y el servidor web IIS, consiguiendo mejoras en cuanto a fiabilidad y rapidez, por su parte, el equipo de desarrollo de Zend ha decidido optimizar PHP para que su ejecución en un windows server 2008 sea mucho más óptima.

Supongo que tendrán sus motivos para hacerlo aunque estoy casi convencido de que php se ejecuta mucho más en windows XP que en Windows server, pero bueno, al menos han recibido algo a cambio.

Yo siempre he utilizado como servidor web Apache y seguiré usandolo por que hasta ahora he obtenido buenos resultados, pero me alegra saber que se están abriendo otros caminos.

Instalar FastCGI en IIS

Si quieres instalar el componente FastCGI en tu IIS sigue las siguientes instrucciones:

  1. Lo primero que tendremos que hacer será descargarnos el componente FastCGI
  2. Extraemos todos el contenido en una carpeta
  3. Después, desde ese directorio, tendremos que ejecutar en la consola la siguiente instrucción
  1. fgisetup.exe /install /add c:\php\php.exe php

¿Opiniones al respecto? ¿se nota la mejoría?