Inicio > PHP > fcoacastan > PHP, MySQL, Servidores

PHP, MySQL, Servidores

Experto:
Usuario:
Fecha: 01/02/2006
Valoración: (5,00 sobre 5) Categoría: PHP
27/01/2006
raandyshk, usuario preguntando en PHP
Usuario
1) La situación es que estoy programando unas páginas WAP (WML con PHP) en donde accedo a una Base de Datos y realizo operaciones con las tablas que ésta contiene. Algunos datos de las tablas contienen caracteres especiales (?>?, ?>?,?&?, etc.) que al ser impresos en las páginas, éstas generan error en algunos teléfonos celulares ya que no son compatibles. Para esto se debería sustituir por su código a cada uno de los caracteres especiales:
Referencias de los caracteres Equivalente WML
& &
" "
À à

¿Qué me sugiere?
¿Existe alguna forma desde PHP para evitar imprimir el ?&? y sustituirlo por el ?&?, por ejemplo?
¿O existe alguna sentencia MySQL que permita obviar estos caracteres?

2) Lo otro que necesito saber es si existe alguna forma de que todas las páginas que entren a mi servidor público, sean redireccionadas a mi servidor privado. Es decir, que el servidor público sirva como puente pero que todas las tablas y las páginas estén en mi servidor privado.
27/01/2006
raandyshk, experto respondiendo en PHP
Experto
Podrías utilizar expreciones regunales, claro que habria un tiempo de carga un poco mayor al que estás acostumbrado a recibir...

En PHP, cinco funciones utilizan expresiones regulares: ereg(), eregi(), ereg_replace(), eregi_replace() y split().
Con ereg y eregi puedes buscar coincidencias en una cadena. La mayor parte de las veces las utilizarás para validar datos:


$password = "foobar";
if (!eregi("^[[:alnum:]]{4, 6}$", $password))
echo "Contraseña con sintáxis incorrecta: Deben ser de cuatro a seis caracteres alfanuméricos.";


La siguiente expresión regular extrae el dominio de una URL:


$url = "http://www.htmlwizard.net";
$tld = ereg("([^.]*$)", $url, $regs);
echo $regs[1];


Todas las concordancias a las expresiones agrupadas por "()" son añadidas al array opcional [regs] pasado a la función.
ereg_replace() se utiliza para reemplazar concordancias con una expresión regular. Su utilización
es la siguiente:


$string = "foo-bar";
$string = ereg_replace("^[^-]*", "bar", $string);
// $string es ahora "bar-bar"
echo $string;

Esto sustituye cualquier cosa antes de "-" con "bar".
Existe una extensión muy util a esta funciona: los back-ticks.
Con esta funcionalidad puedes utilizar la concordancia encontrada en tu cadena de sustitución:


$string = "foo-bar";
$string = ereg_replace("(^[^-]*)", "1bar", $string);
// $string is now "foobar-bar"
echo $string;


Básicamente esto es lo mismo que usar la funcionalidad del array de ereg, pero en lugar de tener concordancias añadidas a un array, haces referencia a ellas con "1", "2", etc.

Con todo lo dicho tienes un buen punto de partida para trabajar con expresiones regulares.
01/02/2006
raandyshk, usuario preguntando en PHP
Usuario
Gracias amigo, muy buena solución.
También encontré ésta:
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>
Más opciones
Enlaces patrocinados