Javier | |
| 2005-09-16 17:52 - Respuestas: 14 - Tema nº: 42688
No te preocupes, me has iluminado bastante, veras como lo consigo a partir de tu ayuda.
Muchas gracias.
P.D: Tu jefa debe de estar muy satisfecha con el programador que tiene pese a que a veces tenga que pasar alguna como dices.
| |
|
|
Prenda | |
|
Re: Detectar cadena de email en un text - 2005-09-16 17:57 - Respuesta 12
Seguimos intentándolo:
$cadena = "Mi correo electrónico es prenda-configurarequipos.com y punto";
//recorro la cadena hasta encontrar la arroba
$i=0;
while ($cadena[$i]!="@" && $i< strlen($cadena)){
$i++;
}
if ($i!=strlen($cadena)){ // Si la arroba no existe, no entra en el IF.
echo "La arroba está en la posición $i";
$j=$i;
$cadenaAux="";
while ($cadena[$j]!=" " && $j>= 0){ //Recorremos hacia atrás...
//...y añadimos caracter a caracter delante de nuestra variable.
$cadenaAux = $cadena[$j] + $cadenaAux;
$j;
}
$j=$i; //Empezando desde la arroba...
while ($cadena[$j]!=" " && $j< strlen($cadena)){
$cadenaAux = + $cadenaAux + $cadena[$j];
$j++;
}
echo "El mail es $cadenaAux"
}else{
echo "Sin arroba no hay correo"
} | |
|
|
Prenda | |
|
Re: Detectar cadena de email en un text - 2005-09-16 18:00 - Respuesta 13
Gracias por tu aliento, Javier...
Saludos
P.D.: Ya me gustaría dejar a mi jefa más satisfecha, ya ... Que se lo pregunten a GodMol...
| |
|
|
Javier | |
|
Re: Detectar cadena de email en un text - 2005-09-17 11:51 - Respuesta 14
Bueno al final he optado por una solución más sencilla y os la comento:
Resulta que la idea es que cuando alguien pone un email en el foro éste no sea presa de los muchos robots que hay por internet rastreando páginas webs en busca de direcciones de email, ante esto se ocurrio hacer uns-c-r-i-p-ten el foro para que cuando el sistema detectara una @ la sustituyera por una imagen de una @ como podeis ver en este post que estoy escribiendo, de esta forma a simple vista se lee el email pero para los robots la dirección resultante es inválida y conello evitamos que os manden spam.
Bueno ya está aplicado y en pruebas, vamos a ver que tal se comporta el sistema que he creado.
Gracias a Prenda por su ayuda en el tema. | |
|
|
Hurricane | |
|
Re: Detectar cadena de email en un text - 2005-09-20 13:18 - Respuesta 15
Por si aún te interesa la otra solución, aquí va el código en PHP:Code: nulo;?php
// Entrega la primera dirección de e-mail encontrada a partir de la posición '$pocision' dentro de la cadena'$cadena'
function getMail($cadena, $posicion=0)
{
$r=nulo;nulo;;
$p=strpos($cadena, nulo;@nulo;, $posicion);
if ($p)
{
$i1=$p;
while (($i1nulo;-1) nulo;nulo; (substr($cadena, $i1, 1)!=nulo; nulo)
{
$i1;
}
$i1++;
$i2=$p;
while (($i2nulo;strlen($cadena)) nulo;nulo; (substr($cadena, $i2, 1)!=nulo; nulo)
{
$i2++;
}
$i2;
$r=substr($cadena, $i1, $i2-$i1+1);
}
return $r;
}
// Cada dirección de e-mail que se encuentre en '$cadena' será reemplazada por '$censura'
function tachMails($cadena, $censura=nulo;nulo;font color='red'nulo;(mail censurado)nulo;/fontnulo;nulo
{
do
{
$c=getMail($cadena);
if ($c!=nulo;nulo
{
$p=strpos($cadena, $c, 0);
$cadena=substr($cadena, 0, $p) . $censura . substr($cadena, $p+strlen($c), strlen($cadena)-$p-strlen($c));
}
} while ($c!=nulo;nulo;
return $cadena;
}
echo tachMails(nulo;hola. mi correo es leo (Prohibido poner emails) y mi MSN
Saludos | |
|
|
|