2010-06-16 5 views

Répondre

4

En plus preg_split:

$line = 'variable11:[email protected]'; 
print_r(preg_split('/[:@]/', $line)); 

/* 
Array 
(
    [0] => variable11 
    [1] => variable12 
    [2] => variable13 
) 
*/ 

que vous pourriez faire un preg_match_all:

$text = 'variable11:[email protected] 
variable21:[email protected] 
variable31:[email protected]'; 

preg_match_all('/([^\r\n:]+):([^\r\[email protected]]+)@(.*)\s*/', $text, $matches, PREG_SET_ORDER); 

print_r($matches); 

/* 
Array 
(
    [0] => Array 
     (
      [0] => variable11:[email protected] 

      [1] => variable11 
      [2] => variable12 
      [3] => variable13 
     ) 

    [1] => Array 
     (
      [0] => variable21:[email protected] 

      [1] => variable21 
      [2] => variable22 
      [3] => variable23 
     ) 

    [2] => Array 
     (
      [0] => variable31:[email protected] 
      [1] => variable31 
      [2] => variable32 
      [3] => variable33 
     ) 

) 
*/ 
1

si nécessaire, vous pouvez faire plusieurs appels à "exploser"

http://jp.php.net/manual/en/function.explode.php

+0

Les questions étaient «comment diviser» mais pas «combien de manières de diviser». –

+1

Quel commentaire inutile. C'est une solution valide. – paullb

+0

@Andrejs, je suis d'accord avec @paullb ici: la question est de savoir comment obtenir les jetons/variables sur chaque ligne. Itérer sur la ligne d'entrée par ligne et appeler 'explode (..., exploser (...))' est une solution valable, alors pourquoi ne pas le suggérer? Je n'ai peut-être pas utilisé le mot «inutile», qui a un son plutôt négatif. –

Questions connexes