Aprende a usar variables en PHP

Aquí os dejo un código mío de ejemplo para empezar a aprender a usar variables de tipo básico en PHP.

Es recomendable copiar el código y ejecutarlo en un intérprete de PHP y, a continuación, realizar los cambios que consideremos oportunos para comprender el funcionamiento.

'; // Imprime en pantalla: ¡Hola, mundo! echo $x . '
'; // Imprime la variable x // Puedes imprimir en pantalla texto y variables echo 'He comprado ' . $x . ' naranjas y ' . $y . ' limones.
'; // CONVERSIONES DE VARIABLES $altura = '95.4'; // Variable de tipo String echo gettype($altura) . '
'; // Imprime el tipo de variable actual $altura = (float) $altura; // Conversión de String a número real echo gettype($altura) . '
'; // Imprime el tipo de variable actual $altitud = -544.432; // Variable de tipo número real echo gettype($altitud) . '
'; // Imprime el tipo de variable actual $altitud = (string) $altitud; // Conversión de número real a String echo gettype($altitud) . '
'; // Imprime el tipo de variable actual ?>
read more

Leer más » Comentar

Formulario básico en PHP

Aquí os dejo un formulario básico en PHP. Es decir, los datos se introducen en un formulario HTML y se procesan en PHP. read more

Leer más » 7 Comentarios

Lo mejor de mi RSS del 22 de febrero al 6 de marzo de 2016: PHP y WordPress, Rusia, cómics y di adiós a los 32 bits

Desde que estoy realmente inmerso en el desarrollo con WordPress dentro de Codection, intento atender este portal con al menos una noticia resumen semanal. El fin de semana pasado estuve fuera, que coincidía con el día de Andalucía; y esta semana ha sido muy dura, así que no he podido hasta hoy preparar esta entrega. Pero bueno, como siempre digo más vale tarde que nunca y por supuesto, que no se pierdan las buenas costumbres.

Vamos a ver este resumen quincenal de enlaces a recursos de interés para todos los que estéis dentro del mundo linuxero, del software libre y del desarrollo web: read more

Leer más » 1 Comentario

Aligerar el peso de phpMyAdmin

Si te dedicas a la consultoría web estarás acostumbrado a manejar phpMyAdmin como cliente de MySQL sobre la web. Sin lugar a dudas, pasa por ser la solución la solución más completa de las que existen en este campo y teniendo la precaución evidente de no dejarlo colgado de una ruta demasiado visible que pueda ser rastreada hasta por los bots que andan buscando sitios susceptibles de ser atacados, no deberíamos tener ningún problema usándolo de cara a seguridad (la idea es la que os digo, taparlo un poco usando una ruta rara y al dejar de usarlo borrarlo inmediatamente). read more

Leer más » 2 Comentarios

Manejo básico del búfer en PHP

Logo PHPSiempre que manejamos PHP, existe la problemática de mezclar la vista y funcionalidad. Este problema se da a varios niveles y es más complejo y da más quebraderos de cabeza cuanto más se enrevesan código y funcionalidad, el caso típico es cuando guardamos parte de la vista en una cadena y la devolvemos o la imprimimos. Al meter la vista dentro de la cadena, el código se vuelve poco legible y además hay ocasiones en las que este métodos llega a ser inoperable. read more

Leer más » 1 Comentario

PHP Fatal error: Class ‘Imagick’ not found

imagemagickSi manejáis PHP y sois usuarios de Linux sabréis que una de las mejores librerías que existen para manejar imágenes, con operaciones a todos los niveles, es imagemagick.

En caso de que la estéis usando y obtengáis un error 500 del servidor, si activáis los errores, es posible que tengáis algo así:

PHP Fatal error:  Class ‘Imagick’ not found 

El error se debe a que no tenéis instalada la librería correctamente, la solución es simple:

apt-get install imagemagick php5-imagick read more

Leer más » 1 Comentario

Comprobar en PHP si una URL contiene una cadena

phpMuchas veces tenemos que tomar decisiones en función de lo que contenga la URL. No suele ser el método más elegante y en una buena arquitectura con un modelo vista controlador no es lo frecuente, sin embargo, sí es algo que pasa y es algo que nos puede sacar de más de un problema si sabemos cómo hacerlo. read more

Leer más » 3 Comentarios

Calcular día de la semana con PHP

Los requisitos de los clientes, en buena medida suelen tener que ver con restricciones temporales. No sólo de cantidad de tiempo, sino también de qué días o no es. Por eso hoy os traigo este código. Veremos primero cómo averiguar qué día de la semana es para una fecha dada, para posteriormente hacer una función de ejemplo que diga si es fin de semana o no. read more

Leer más » 2 Comentarios

Insertar clave de Akismet desde el wp-config.php

Logo AkismetAkismet es un plugin de WordPress y es un modelo de negocio que me encanta en sí mismo. Ofrece un servicio básico para los que usamos blogs: aislar el spam de forma inteligente, y hay que pagarlo o no, depende para qué lo usemos, haciendo del Software Libre un modelo económico viable, amable y a la vez justo.

Pero bueno, dejando de lado esas consideraciones, hoy os comento cómo meter la clave API de Akismet que conseguís al registraros, para poder usar el servicio.

Probablemente todos conozcáis el método por el cuál introduces la clave API en el escritorio de WordPress. Este método tiene tres problemas, de menor a mayor importancia:

  • Es más lento que el que os voy a inscribir.
  • Es muy pesado si tenemos una red WordPress con muchos blogs (hay que replicar uno a uno).
  • En algunas instalaciones, sobre todo de WordPress Network, el interfaz gráfico de usuario para meter la clave está deshabilitado por un problema técnico que aparece por restricción de permisos. Es un bug y hay varios tickets al respecto.

¿Cuál es la idea que os planteo? Introducirlo directamente en vuestro wp-config.php, exactamente así:

Leer más » 2 Comentarios

Eliminar enlaces de una cadena en PHP

En alguna ocasión, mostrando un extracto o por cualquier otra razón, a lo mejor necesitáis eliminar los enlaces de una cadena que manejáis en PHP. Para esta labor, podemos usar el siguiente código, que se basa en el uso de una expresión regular:

$cadena = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i', '', $cadena);

Con esto tendríamos la  cadena sin enlaces: HTTP, HTTPS, FTP o FILE, si queréis podéis ampliar la primera parte de la expresión regular para incluir más posibilidades. read more

Leer más » 1 Comentario

¿Por qué no debemos usar require_once en PHP? ¿Qué soluciones tengo?

Cuando desarrollamos es muy frecuente que necesitemos leer código de otros ficheros, los lenguajes y las tecnología difieren en la forma, pero es algo básico y común a todos ellos (salvo excepciones). En PHP una forma cómoda de hacerlo es con require_once o include_once.

¿Por qué cómoda? Porque incluimos ficheros sin preocuparnos de si ya han sido incluidos. PHP lo hace por nosotros.

¿Qué problema hay? PHP al buscar si han sido incluidos o no, consume una cantidad de recursos y de tiempo de ejecución que siempre que podamos, debemos ahorrárnoslo.

¿Qué soluciones hay frente a este problema? Voy a detallar algunas de ellas, pero seguro que tú conoces alguna más que te funciona.

Usar un framework o un CMS

Si usas un entorno de este tipo, probablemente él te dote de funciones similares en funcionalidad que esquivan este problema. Por ejemplo en WordPress uso mucho get_template_part.

Indicar mediante define si se ha incluido o no

La idea sería algo así:

if (!defined('MiFichero')) {
    require('MiFichero');
    define('MiFicherp', 1);
}

De esta forma, con esta bandera, ya tenemos siempre presentes si está incluido o no (podemos hacer una función con ese código para reutilizarlo).

Leer más » 6 Comentarios

Cómo censurar palabras en PHP

En función de nuestro propósito es posible que en algún caso necesitemos controlar las palabras que se escriben. Es muy común el caso de los foros, incluso supongo que para los gestores de contenido orientados a foros proveen alguna extensión para realizar esta tarea.

Bien, lo que vamos a hacer simplemente es reformatear una cadena de texto que puede contener palabras obscenas o malsonantes por otras de menos vulgares con el lenguaje PHP. Con el siguiente ejemplo lo entenderéis perfectamente:

<?php
function censurar($texto){

   $buscar = array(
   '/puta/i',
   '/joder/i',
   '/gilipollas/i'
   );
   $reemplazar = array(
   'preciosa',
   'recorcholis',
   'bonito'
   );
   return preg_replace($buscar,$reemplazar,$texto);
}

$texto = 'joder! Me cago en tu puta madre gilipollas';
echo censurar($texto);
?>

Obteniendo como resultado: 

Leer más » 3 Comentarios

Instalar soporte PHP-GD en un servidor Apache

Siguiendo un poco el hilo de mis últimas entradas dónde se propone eliminar PostgreSQL del arranque o explicamos cómo configurar la interfaz de red por consola, entre otras configuraciones sobre un servidor, vamos a ver cómo instalar soporte PHP-GD en un servidor Apache.

Para ello, abrimos un terminal. Nos logueamos como superusuario, o a través del comando sudo, lanzamos las siguientes instrucciones:

root@6581-Server:~# apt-get install php5-gd

Se instalará junto con las dependencias:

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
libgd2-xpm
Suggested packages:
libgd-tools
The following packages will be REMOVED:
libgd2-noxpm
The following NEW packages will be installed:
libgd2-xpm php5-gd
0 upgraded, 2 newly installed, […]

Automáticamente debería de haberse reiniciado el servidor para que los cambios surtan efecto, pero si no ha sido así, simplemente invocamos:

root@6581-Server:~# /etc/init.d/apache2 restart

Y finalmente. ¿Cómo comprobar que nuestra instalación de PHP ya soporta PHP-GD?

php5 -i | grep -i –color gd

Leer más » 1 Comentario

[PHP] Convertir segundos en una cadena de tiempo

Me hizo falta hace poco, son de estas cosas que haces una vez y puedes usarla 3 veces a lo largo de tu vida. Los comúnmente conocidos como desarrollos no rentables. En este caso sí lo fue, y como podéis ver por el código no perdí más de 20 minutos en elaborarlo.

Es posible que se os dé el caso y queráis ahorrar vuestro precioso tiempo. Si lo que queréis es simplemente convertir unos segundos en un timestamp en PHP os bastará con crearos en vuestro fichero de funciones:

<?php
function segundosToCadena($segs){
$cadena = ”;
if($segs >= 86400) {
$dias = floor($segs/86400);
$segs = $segs%86400;
$cadena = $dias.’ día’;
if($dias != 1) $cadena .= ‘s’;
if($segs >= 0) $cadena .= ‘, ‘;
}

Leer más » 2 Comentarios

Bloquear una dirección IP con PHP

Sea por comodidad, por manejo o porque no tenemos otra (e.g. no podemos editar la configuración nuestro servidor con htaccess) para bloquear una dirección IP podemos usar PHP con éste propósito.

Para ello, incluiremos dentro de nuestro archivo PHP el siguiente código. Lo ubicaremos en la parte superior, antes de realizar ningún retorno por la salida estándar.

<?
$bloqueo[0]=”167.127.31.5″;
$bloqueo[1]=”167.127.31.5″;
$bloqueo[2]=”167.127.31.5″;
// De esta manera con cuantas como deseemos

if (in_array($_SERVER[‘REMOTE_ADDR’],$bloqueo)) header(“HTTP/1.1 403 Forbidden”);
?>

Leer más » 3 Comentarios