Несколько шорткодов в тексте - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующий текст

это первая строка

[галерея]

это вторая строка

[галерея]

это третья строка

У меня также есть следующий код в php

$text = 'this is line one [gallery] this is line two [gallery] this is line three';
$gallery = array('gallery name1', 'gallery name2');

foreach ($gallery as $key => $val) {
    $text = preg_replace('#\[gallery\]#si', $val, $text); 
}

Я хочу заменить первое [gallery] первым значением массива $ gallery, а второе [gallery] вторым значением массива $ gallery.

Как я могу это сделать?

1 Ответ

0 голосов
/ 06 ноября 2018

Вам нужно добавить ограничение, чтобы изменить только 1 запись:

$text = preg_replace('#\[gallery\]#si', $val, $text, 1); 
                                                     ^ add a limit

Теперь на каждой итерации будет заменяться 1 экземпляр [gallery].

...