PHP, MySQL, Servidores

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? &amp?, ¿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.

4 respuestas

Respuesta
1
Podrías utilizar expresiones regunales, claro que habría 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.
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>
?>
Respuesta
1
Ok para lo primero te servirá la siguiente función:
htmlspecialchars($cadena)
htmlentities($cadena)
Para lo segundo creo que eso tiene que ver más con la configuración de tus servidores, porque la redirección de un servidor a otro debe ser transparente para el usuario, el no se dará cuenta de que cambio de servidor, comentame como te fue.
Respuesta
1
perdón por al tardanza... ¿aun requieres mi ayuda?
Hola,
La ayuda que ahora requiero es obtener datos de una cadena de texto así:
"Maria/Perez:17"
Obtener por separado a:
Dato1 = Maria
Dato2 = Perez
Dato3 = 17.
Todo esto con PHP.
¡Full gracias!
Si puedes darme tu msn para consultarte por esa vía, sería genial..
$dato ="Maria/Perez:17" ;
list( $nombre, $apellido, $edad ) = split( '[/:]', $dato );
echo "nombre: $nombre; apellido: $apellido; edad: $edad<br>\n";
Respuesta
1
Una función php que busca una aguja en un pajar y la reemplaza por lo que quieras:
$pajar=ereg_replace("aguja","reemplazo",$pajar);
La segunda pregunta no termino de entender
Buena solución, pero encontré ésta más eficiente:
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas