Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/06/2009, 09:47
Avatar de abidibo
abidibo
 
Fecha de Ingreso: mayo-2009
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: preg_split (espacios) con excepción de algunos

Bueno,
si ES CIERTO que solo puedes tener 1 espacio entre " y " esta va bien:
Código PHP:
$array preg_split("/(\s+)(?!([^\s]+?)\")/",$text); 
Si no hay que jugar un poco mas (para mi porque no encuentro otra regular expression que pueda ir)
Código PHP:
$_1linea '2 7 4 5  3  1 0  0 1 "Red App le" 1    0   2   20    0    1';        
$final_line '';
$open false;
$reg_expr "/(.*?)((\")|$)/is";
preg_match_all($reg_expr$_1linea$linesPREG_SET_ORDER);
foreach(
$lines as $line) {
    if(
preg_match("/\"/"$line[2]) && !$open) {  //line conteins an "
        
$part $line[1]."\"";
        
$open true;
    }
    elseif(
preg_match("/\"/"$line[2]) && $open) {
        
$part $line[1]."\"";
        
$part preg_replace("/ /"" "$part);
        
$open false;
    }
    elseif(!empty(
$line[1])) $part $line[1];
    else 
$part '';
    
$final_string .= $part;
}
$_1linea $final_string;
$array preg_split('/\s+/',$_1linea);
//luego si monstras en html pueedes tenerlo asì, si no:
foreach($array as $k=>$v$array[$k] = str_replace(" "" "$v);
print_r($array); 
Chao!!