PHP - como ubicar un substring en un string

 
Vista:
sin imagen de perfil

como ubicar un substring en un string

Publicado por cosmito (51 intervenciones) el 09/07/2019 22:07:02
Tengo una linea de codigo donde ya puedo ubicar de esta cadena [email protected] solo @hotmail.com
y tengo ya esta funcion:

1
2
3
if (strpos($de, 'xxxx@hotmail.com') == false) {
    echo 'true';
}

Como pudiera una vez obtenida ubicarla o en otra variable? Por favor si no es asi el proceso pudieran ayudarme a mejorarla.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como ubicar un substring en un string

Publicado por Yamil (888 intervenciones) el 09/07/2019 22:14:06
No entinedo muy bien la pregunta. Quieres extraer lo que esta antes del @ o quieres extraer el email completo ?
Pudiera ser algo como

1
2
3
4
5
6
7
8
9
$tag = "@hotmail.com"
$pos = strpos($de, $tag);
 
if ($pos === false) {
    echo "No se encontro el email";
} else {
    $email = substr($de, $pos);
   echo $email
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como ubicar un substring en un string

Publicado por cosmito (51 intervenciones) el 09/07/2019 23:04:36
Hola. La idea es extraer de la cadena esto: @hotmail.com o @gmail.com para despues preguntar que tipo de correo escogió el cliente.

si escogió @hotmail.com
envie igualmente el mensaje con los parametros para hotmail
sino, escogió @gmail.com
y que envie igualmente el mensaje con los parametros para gmail.

en negrita esta una expresion regular que no funciona:

te envio un trozo del codigo donde quiero aplicar el ejemplo que estamos considerando en este momento:
este es tu codigo que no se donde ubicar
1
2
3
4
5
6
7
8
9
$tag = "@hotmail.com"
$pos = strpos($de, $tag);
 
if ($pos === false) {
echo "No se encontro el email";
} else {
$email = substr($de, $pos);
echo $email
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
set_time_limit(500);
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
//error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];//cta de correo al que va dirigido el mensaje.
$password = $_POST['passw'];
$nombres = $_POST['nombres'];
var_dump($nombres);
$asunto = $_POST["asunto_txt"];
$addcco = $_POST["cco_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$adjunto = chunk_split(base64_encode(file_get_contents($archivo)));
$destino = $_FILES["archivo_fls"]["name"];
$mensaje = $_POST["mensaje_txa"];
copy($_FILES["archivo_fls"]["tmp_name"],$_SERVER['DOCUMENT_ROOT']."/archivos/".$_FILES["archivo_fls"]["name"]);
copy($_FILES["archivo_fls"]["tmp_name"],"archivos/".$_FILES["archivo_fls"]["name"]);
 
 
$smtp=new PHPMailer();
$smtp->IsSMTP();
$smtp->CharSet="UTF-8";
 
 
// $domain = strstr($de, '@hotmail.com');
// echo $domain;
 if (preg_match('/(.*)@(hotmail)\.(.*)/', $de) = true)
    {
 
 
          //$smtp->SMTPDebug = 1;
          # autenticación contra nuestro servidor smtp
          $smtp->SMTPAuth = true; // enable SMTP authentication
          $smtp->SMTPSecure = "tls";
          $smtp->SMTPDebug = 0;
          $smtp->Host = "smtp.live.com"; // sets MAIL as the SMTP server
          $smtp->Username = $de; // MAIL username
          $smtp->Password = $password;
 
//      $smtp->Password = "hL13=*-W"; // MAIL password
          $smtp->Port = 587;
          # datos de quien realiza el envio
          $smtp->From = $de; // from mail
          $smtp->FromName = "Alejandro"; // from mail name
          # Indicamos la dirección donde enviar el mensaje
          $para1= $para;
          $nameTo=$para1;
 
          $smtp->AddAddress($para1,utf8_decode($nameTo));
          //$smtp->AddBCC($addcco,$nameTo);
          $smtp->Subject = $asunto;
          $smtp->Body = $mensaje;
          $smtp->WordWrap = 50;
          //$smtp->Timeout=50;
          $smtp->IsHTML(true);
          $smtp->MsgHTML($mensaje);//
          $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
         if (!$smtp->Send())
            {
                $respuesta ="El mensaje no se pudo enviar";
            $respuesta .="Error: " .$mail->ErrorInfo;
            }
         else
            {
              $respuesta ="El mensaje ha sido enviado";
            }
         header("Location:correomail.php?respuesta=$respuesta");
      }
      else
      {
          //$smtp->SMTPDebug = 1;
          # autenticación contra nuestro servidor smtp
 
          $smtp->SMTPSecure = 'ssl';
          $smtp->Host = "smtp.gmail.com"; // GMail
          $smtp->Port = 465;
          $smtp->IsSMTP(); // use SMTP
          $smtp->SMTPAuth = true;
          $smtp->Username = $de; // MAIL username
          $smtp->Password = $password;
 
          # datos de quien realiza el envio
          $smtp->From = $de; // from mail
          $smtp->FromName = "Alejandro"; // from mail name
          # Indicamos la dirección donde enviar el mensaje
          $para1= $para;
          $nameTo=$para1;
          $smtp->AddAddress($para1,utf8_decode($nameTo));
          //$smtp->AddBCC($addcco,$nameTo);
          $smtp->Subject = $asunto;
          $smtp->Body = $mensaje;
          $smtp->WordWrap = 50;
          //$smtp->Timeout=50;
          $smtp->IsHTML(true);
          $smtp->MsgHTML($mensaje);//
          $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
         if (!$smtp->Send())
            {
              $respuesta ="El mensaje no se pudo enviar";
          $respuesta .="Error: " .$mail->ErrorInfo;
            }
         else
            {
              $respuesta ="El mensaje gmail ha sido enviado";
            }
         header("Location:correomail.php?respuesta=$respuesta");
      }
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

como ubicar un substring en un string

Publicado por Yamil (888 intervenciones) el 09/07/2019 23:28:36
Usa esta s funciones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function usoGmail($de) {
  $tag = "@gmail.com"
  $pos = strpos($de, $tag);
 
  return ($pos !== false)
}
 
function usoHotmail($de) {
  $tag = "@hotmail.com"
  $pos = strpos($de, $tag);
 
  if ($pos !== false) {
    return true
  }
 
  // Chequea Outlook
  $tag = "@outlook.com"
  $pos = strpos($de, $tag);
  return ($pos !== false)
}

Si deseas saber si el usuario uso gmail, la funcion usoGmail($data) te retorna true

Las puedes colocar en vez de la expresion regular
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar