El Blog de Alex Borrás » Posts in 'PHP' category

Como sustituir - reemplazar un String en PHP

Utilizar la siguiente función:

PHP:
$str = "123,45";
echo str_replace(",",".",$str);
?>

VN:F [1.4.6_730]
Rating: 3.0/5 (1 vote cast)
Posted in Funciones
Tags: ,

Campo de Fecha para formularios PHP

Una función estándar para pedir un campo de fecha en un formulario PHP.

PHP:
/**
 * Devuelve los 3 campos de Fecha: Dia-mes-año
 *
 * @return unknown
 */

function file_date($dia=0,$mes=0,$any=0)
{
    $str ="";
    // Campo día
    $str.="<select name='dia'>";
    $ind = 1;
    while ( $ind <32 )
    {
        $str.= "<option value='$ind";
        if ($dia == $ind)
        {
            $str.="' selected>" ; // Es el día por defecto
        }
        else
        {
            $str.="'>" ;
        }
        $str.="$ind</option>";
        $ind++;
    }
    $str.="</select> ";
    // Campo mes
    $str.="<select name='mes'>";
    $ind = 1;
    while ( $ind <13 )
    {
        $str.= "<option value='$ind";
        if ($mes == $ind)
        {
            $str.="' selected>" ; // Es el día por defecto
        }
        else
        {
            $str.="'>" ;
        }
        $str.= mes_txt($ind)."</option>";
        $ind++;
    }
    $str.="</select> ";
    // Campo any
    $str.="<select name='any'>";
    $ind = 1936;
    while ( $ind <2006 )
    {
        $str.= "<option value='$ind";
        if ($any == $ind)
        {
            $str.="' selected>" ; // Es el día por defecto
        }
        else
        {
            $str.="'>" ;
        }
        $str.= "$ind</option>";
        $ind++;
    }
    $str.="</select>";
    return $str;
}

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in Funciones, PHP
Tags: ,

Tratamiento de Fechas en PHP

Obtener por separado el día, mes y año de una Fecha,

PHP:
$date = strtotime("2009-2-27");
echo strftime("%Y",$date);
echo strftime("%d",$date);
echo strftime("%m",$date);

Esta función también es aplicable al valor de un campo leido de una tabla y dejado en una variable

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in Funciones
Tags: , ,

Extrar un Tag de un String

Recorrer un string extrayendo una parte del mismo en función de un caracter de apertura y otro de cierre.

Utilizado en Chahoticdocs y Plugin Club de WordPress, especialmente util para los replace de un tag en el $content del WordPress.

Extrae del $content el tag completo y el código del Tag si lo lleva.

Ejemplo de bucle for y recorrer un string tomando caracter por caracter.

PHP:
<?php
$var = club_tag("fñlkjgflkdaj[player=25]fkjñlgakfjd","[player","]");
    if (!$var == false){
        echo $var['fulltag'];
    echo $var['codetag'];
    }
function club_tag($p_content,$p_tag_prefixe,$p_tag_end = "]"){
    $return = array();
    $return['fulltag'] = false;
    $return['codetag'] = false;
    $findcode = false;
    $pos = strpos($p_content,$p_tag_prefixe);
    if ($pos === false){
        return false;
    }
    for ($i = $pos ; $i <= strlen($p_content); $i++){
        $char = substr($p_content,$i,1);
        $return['fulltag'].= $char;
        if ($char == $p_tag_end){
            break;
        }
        if ($findcode){
            $return['codetag'].=$char;
        }
        if ($char == "="){
            $findcode = true;
        }
    }
    return $return;
}
?>

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in Funciones, Plugins
Tags: , , ,

PHP: Como saber en que carpeta estamos del servidor

Esto lo he necesitado porque al pasar de PHP 4 a PHP 5 la clase catpcha.php dejo de funcionar, el problema era que no encontraba la ruta de Verdana.ttf.

Lo he solucionado así:

Subo a la carpeta includes el fichero Verdana.ttf

y sustituyo:

define ("FONTNAME", "Verdana.ttf");

por

define ("FONTNAME", dirname (__FILE__)."/Verdana.ttf");

Con esto funciona.

dirname (__FILE__) devuele la carpeta real del disco tipo c:\inetpub\etc... donde está ubicado el archivo que se está ejecutando.

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in Funciones
Tags: ,

Ejecutar un programa Windows desde PHP

funcion shell_exec de php.
y que esta función no está habilitada en safe-mode.

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in Funciones
Tags:

Error con WordPress 2.6 y PHP5 en my_thread_global_end

El Error que da:

Error in my_thread_global_end(): 1 threads didn't exit

Se soluciona entrando en el Plesk a la configuración de PHP del dominio afectado y donde pone PHP marcar la casilla: Ejecutar como extensión ISAPI

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in PHP
Tags: ,

FCKEditor

Complemento para incluir funciones avanzadas de edición en un página Web.

Para instalarlo en PHP, por ejemplo como un complemento de PHP-Nuke:

  • Descargar el archivo de la Web del fabricante y descomprimir en la carpeta kfceditor
  • Subir esta carpeta a la raiz de nuestro sitio Web

Para utilizarlo en una página:

Añadir al principio:

PHP:
include ("FCKeditor/fckeditor.php");

Al construir el formulario suponiendo que tenemos un campo observaciones que puede ser inicializado con el valor: $obsval entonces poner:

PHP:
// Inicio FCKEditor
    $oFCKeditor = new FCKeditor("observaciones") ;
    $oFCKeditor->Value = $obsval; // Texto por defecto para el box
    $oFCKeditor->Create();
// Final FCKEditor

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in PHP

Copias de Seguridad de MySql

Hace tiempo tuve que cambiar una páginas Web de un servidor a otro y tuve bastantes problemas una en concreto es que tenía una base de datos MYSQL con varios cientos de miles de registros y un tamaño muy grande. Esto dabara errores con los sistemas habituales de descarga que vademás erán un poco lentos.

Supongo que es un problema que han tenido alguna vez muchos Webmasters, al final encontré un fantástico Script de PHP que me permitía generar un archivo comprimido y restaurar la página sin problemas y la verdad es que fue de una ayuda enorme.

Aquí tenéis un hilo en Foros del Web para descargar el archivo:

http://www.forosdelweb.com/f18/hacer-backup-pero-si-muy-facil-280235/

Sin embargo cuando empiezas a tener muchas Webs que mantener en varios servidores distintos la tarea se hace un poco pesada así que hice una pequeña modificación al fichero dump_db.php para que se ejecutara sin pedir usuario ni contraseña y monté así el tema:

  1. Creo en cada Web una carpeta que sólo yo se el nombre, ejemplo: backup-5tY6gQ, le doy permisos 777 y pongo allí el fichero dump_db.php y restore_db.php original
  2. Creo un favorito en Google Marks (o en el sistema que cada uno tenga) con la dirección de la carpeta y el nombre del fichero, si se quiere también se puede modificar el nombre del fichero a otro mas complejo tipo dump_db_45RG-67P.php por ejemplo. El favorito lo pongo en la categorías Backups de Webs
  3. Cuando quiero hacer una copia de seguridad de todas las Webs abro todas las páginas a la vez desde Firefox gracias a que están en la misma categoría y así se hacen todas las copias en un momento.

Este es un sistema un poco casero si alguien conoce uno mejor bienvenido sea.

Aquí os pongo el fichero dump_db.php modificado:

dump_db_mod.php

Espero que os sea útil

VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in PHP
Tags: ,

Equivalencias PHP - Visual Basic

Obtener un fragmento de una Cadena (String)

Visual Basic:

Visual Basic:
Dim MyString As String
MyString = "This is string example"
MsgBox Mid(MyString, 5, 10)

PHP:

PHP:
$MyString = "This is string example";
echo substr($MyString,5,10);

Nota: En ambos casos el contador de caracteres empieza en 0


VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in Funciones, Visual Basic
Tags: ,