2009-10-06 6 views
0

J'ai la chaîne suivantedécoupant une chaîne d'une certaine manière

{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}..... 

et il se poursuit.

J'ai besoin de diviser la chaîne de la manière suivante

1 => {} Item1 maison :::: Accueil {/} Item1

2 => {} item2 contact_us :::: Contactez-nous {/ item2}

Y a-t-il un moyen?

Répondre

3

Vous pouvez le faire comme ceci:

$text = "{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....){/item3}"; 
preg_match_all('/{item\d}.+?{\/item\d}/', $text, $results); 

var_dump($results) produirait:

Array 
(
    [0] => Array 
     (
      [0] => {item1}home::::Home{/item1} 
      [1] => {item2}contact_us::::Contact Us{/item2} 
      [2] => {item3}.....){/item3} 
     ) 

) 
2

Utilisez preg_split() avec le motif regex /{.*?}.*?{\/.*?}/

4
$input = '{item1}home::::Home{/item1}{item2}contact_us::::Contact Us{/item2}{item3}.....'; 
$regex = '/{(\w+)}.*{\/\1}/'; 
preg_match_all($regex, $input, $matches); 
print_r($matches[0]); 
Questions connexes