He cogido 'prestado' este código de WHK:
<?php
function desde_hasta($desde, $hasta, $contenido){
if(eregi($desde ,$contenido)){
$retorno = explode($desde, $contenido);
$retorno = $retorno[1];
$retorno = explode($hasta, $retorno);
$retorno = $retorno[0];
return $retorno;
} else {
return FALSE;
}
}
?>
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?
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:
function desde_hasta($desde,$hasta,$contenido){
$regex = "/$desde(.*?)$hasta/s";
preg_match_all($regex,$contenido,$match);
return $match[1];
}
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:
function desde_hasta($desde, $hasta, $contenido){
if(stristr($contenido,$desde)){
$retorno = explode($desde, $contenido);
unset($retorno[0]);
foreach($retorno as $retorn){
$retorn = explode($hasta, $retorn);
$retorn = $retorn[0];
$retornar[]=$retorn;
}
return $retornar;
} else {return FALSE;}
}
Si suponemos que $contenido es lo que has citado devolvería algo así:
print_r(desde_hasta('<','>',$content));
Array ( [0] => carlos@gmail.com [1] => luis@perez.com [2] => anita@labonita.net )
Saludos
Muchas gracias, usaré la tuya :-)