2010-03-05 6 views
1

Dans ma chaîne, j'ai des espaces réservés comme: ## NEWSLETTER ##, ## FOOTER # ## GoogleAnalytics ## etc.Trouver et mettre placeholders puis dans un tableau

Chacun de ces espaces réservés est délimitée par: # #

Je veux trouver chacun de ces espaces réservés et les mettre dans un tableau. La partie délicate est que ce qui est à l'intérieur des délimiteurs ## peut être quelque chose.

Répondre

3

Essayez ceci:

<?php 

$s = "asdff ##HI## asdsad ##TEST## asdsadsadad"; 

preg_match_all("~##([^#]+)##~", $s, $result); 

var_dump($result[1]); 

impressions:

array(2) { 
    [0]=> 
    string(2) "HI" 
    [1]=> 
    string(4) "TEST" 
} 
+0

S'il vous plaît noter que si vous veut etre capable de faire correspondre un seul "#" dans un espace réservé (par ex. "## TE # ST ##"), alors vous devriez changer l'expression rationnelle en ## ([^ #] | # [^ #]) + ## –

0

vous pouvez utiliser preg_match_all():

$str = '##NEWSLETTER## , some more text ##FOOTER## test 123 ##GOOGLEANALYTICS## aaa'; 
preg_match_all('/##([^#]+?)##/', $str, $matches); 
var_dump($matches); 

$matches[1] aura tous vos espaces réservés