REGEX Совпадение всех и замена строки другими строками - PullRequest
0 голосов
/ 04 марта 2020

Я использую REGEX, чтобы сопоставить все шаблоны и заменить каждое значение совпадения другой строкой.

У меня есть эти типы кодов в моем контенте

[amazon template=AmazonPreisNormal&asin=B00EJKWCJ4]
[amazon template=amazon_nur_eur&asin=B00EJKWCJ4]

Что я хочу нужно заменить шаблон = значение другой строкой, как описано ниже

для AmazonPreisNormal я хочу заменить его widget-pricenormal и т. д. для всех остальных

после preg_match_all я получил этот массив следующим образом:

Array
 (
   [0] => Array
    (
        [0] => template=AmazonPreisNormal&
        [1] => template=amazon_nur_eur&
        [2] => template=AmazonLink&
        [3] => template=preisbeiamazon12&
        [4] => template=preis10&
        [5] => template=beiamazon11&
        [6] => template=beiamazon&
        [7] => template=xx_bei_amazon&
        [8] => template=beiamazon11br&
        [9] => template=beiamazon12&
        [10] => template=Image&
        [11] => template=preisbeiamazon12&
    )

[1] => Array
    (
        [0] => AmazonPreisNormal
        [1] => amazon_nur_eur
        [2] => AmazonLink
        [3] => preisbeiamazon12
        [4] => preis10
        [5] => beiamazon11
        [6] => beiamazon
        [7] => xx_bei_amazon
        [8] => beiamazon11br
        [9] => beiamazon12
        [10] => Image
        [11] => preisbeiamazon12
    )

  )

Теперь я хочу получить каждое из соответствующих значений шаблона и заменить его другим значением, например для AmazonPreisNormal Я хочу заменить его на widget-pricenormal ad и так далее для всех других значений с другой строкой.

Я пытаюсь что-то подобное, но никогда не получаю вывод

    $numberOfMatches = count($matches[0]);

    for ($i = 0 $i < $numberOfMatches; $i++;) { 
       $templaname =  $matches[0][$i];
    }

    if($templaname = 'beiamazon11') {
      $replacementTemplate = 'template="widget-beiamazon11"';
    }elseif($templaname = 'AmazonPreisNormal')  {
      $replacementTemplate = 'template="widget-pricenormal"';
    }elseif($templaname = 'amazon_nur_eur')  {
       $replacementTemplate = 'template="widget-nureur"';
    }elseif($templaname = 'AmazonLink')  {
       $replacementTemplate = 'template="widget-amazonlink"';
    }elseif($templaname = 'preisbeiamazon12')  {
       $replacementTemplate = 'template="widget-preisebeiamazon12"';
    }elseif($templaname = 'preis10')  {
       $replacementTemplate = 'template="widget-preis10"';
    }

Будет оказана любая помощь по этому вопросу

...