Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/06/2010, 04:02
karliky
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 22 años
Puntos: 13
Respuesta: Sacando información con expresiones regulares

Esto solo devolvería un resultado:

Código PHP:
function get_string_between($string, $start, $end){ 
    
$string = " ".$string; 
    
$ini = strpos($string,$start); 
    if (
$ini == 0) return ""; 
    
$ini += strlen($start); 
    
$len = strpos($string,$end,$ini) - $ini; 
    return 
substr($string,$ini,$len); 
} 
 
$fullstring = "<div>
<a href='www.google.es'>Link</a>
</div>"
; 
$parsed = get_string_between($fullstring, "gle.es'>", "</a>"); 
 
echo 
$parsed; // (result = Link) 
Esto para todos los resultados:
Código PHP:
function get_all_strings_between($string,$start,$end)
{
//Returns an array of all values which are between two tags in a set of data
$strings = array();
$startPos = 0;
$i = 0;
//echo strlen($string)."\n";
while($startPos < strlen($string) && $matched = get_string_between(substr($string,$startPos),$start,$end))
{
if (
$matched == null || $matched[1] == null || $matched[1] == '') break;
$startPos = $matched[0]+$startPos+1;
array_push($strings,$matched[1]);
$i++;
}
return 
$strings;
}

function 
get_string_between($string, $start, $end){
//$string = " ".$string;
$ini = strpos($string,$start);
if (
$ini == 0) return null;
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return array(
$ini+$len,substr($string,$ini,$len));
}