elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Seleccionar con explode varias palabras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Seleccionar con explode varias palabras  (Leído 2,438 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Seleccionar con explode varias palabras
« en: 20 Junio 2012, 11:32 am »

He cogido 'prestado' este código de WHK:

Código
  1. <?php
  2. function desde_hasta($desde, $hasta, $contenido){
  3. if(eregi($desde ,$contenido)){
  4.  $retorno = explode($desde, $contenido);
  5.  $retorno = $retorno[1];
  6.  $retorno = explode($hasta, $retorno);
  7.  $retorno = $retorno[0];
  8.  return $retorno;
  9. } else {
  10.  return FALSE;
  11. }
  12. }
  13. ?>

El problema es cuando tengo:
Citar
"Carlos" <carlos@gmail.com>,
Luis Pérez <luis@perez.com>,
"Anita" <anita@labonita.net>,

Si quiero coger los emails, solo cogería el primero, entonces... ¿Cómo puedo hacer para tener en un array todos?


En línea




#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Seleccionar con explode varias palabras
« Respuesta #1 en: 20 Junio 2012, 13:39 pm »

La verdad es que esa funcion es la leche.. y yo me he topado varias veces con el problema que tienes tu xD.

Ahora suelo utilizar regex tengo una funcion tipo esto:

Código
  1. function desde_hasta($desde,$hasta,$contenido){
  2.  $regex = "/$desde(.*?)$hasta/s";
  3.  preg_match_all($regex,$contenido,$match);
  4.  return $match[1];
  5. }

Pero si quiero selecionar el contenido entre <who> y </who> la tengo que llamar al estilo desde_hasta('\<who','\<\/who\>',$contenido); por los delimitadores y todo eso xD..

Asi que arreglando rapidamente la de WHK.. me salio esto:

Código
  1. function desde_hasta($desde, $hasta, $contenido){
  2. if(stristr($contenido,$desde)){
  3.  $retorno = explode($desde, $contenido);
  4.  unset($retorno[0]);
  5.  foreach($retorno as $retorn){
  6.    $retorn = explode($hasta, $retorn);
  7.    $retorn = $retorn[0];
  8.    $retornar[]=$retorn;
  9.  }
  10.  return $retornar;
  11. } else {return FALSE;}
  12. }

Si suponemos que $contenido es lo que has citado devolvería algo así:
print_r(desde_hasta('<','>',$content));
Código
  1. Array ( [0] => carlos@gmail.com [1] => luis@perez.com [2] => anita@labonita.net )


Saludos


En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Seleccionar con explode varias palabras
« Respuesta #2 en: 20 Junio 2012, 14:08 pm »

Muchas gracias, usaré la tuya :-)
En línea




Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Extensión para seleccionar palabras completas en firefox?
Software
Aikanáro Anário 2 2,654 Último mensaje 10 Diciembre 2011, 23:00 pm
por Aikanáro Anário
Problema con el explode
PHP
vensernow 8 3,561 Último mensaje 15 Febrero 2013, 02:12 am
por vensernow
identificar varias palabras en una oracion
Programación Visual Basic
asdexiva 6 3,370 Último mensaje 27 Noviembre 2014, 22:56 pm
por asdexiva
MOVIDO: identificar varias palabras en una oracion
Programación General
Eleкtro 0 1,697 Último mensaje 26 Noviembre 2014, 19:33 pm
por Eleкtro
Seleccionar palabras con espacios en widget TEXT en tkinter…
Scripting
El mas antiguo 2 3,897 Último mensaje 17 Octubre 2022, 01:00 am
por El mas antiguo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines