【问题标题】:Finding placeholders and put then in an array查找占位符,然后放入数组中
【发布时间】:2010-03-06 00:12:35
【问题描述】:

在我的字符串中,我有如下占位符:##NEWSLETTER##、##FOOTER# ##GOOGLEANALYTICS## 等。

每个占位符由以下分隔:##

我想找到每个占位符并将它们放入一个数组中。

棘手的部分是 ## 分隔符内的内容可以是任何内容。

【问题讨论】:

    标签: php arrays placeholder


    【解决方案1】:

    试试这个:

    <?php
    
    $s = "asdff ##HI## asdsad ##TEST## asdsadsadad";
    
    preg_match_all("~##([^#]+)##~", $s, $result);
    
    var_dump($result[1]);
    

    打印:

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

    【讨论】:

    • 请注意,如果您希望能够匹配占位符中的单个“#”(例如“##TE#ST##”),那么您应该将正则表达式更改为# #([^#]|#[^#])+##
    【解决方案2】:

    你可以使用preg_match_all():

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

    $matches[1] 将包含您所有的占位符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多