- str_ireplace: documentation ( source)
- preg_match_all: documentation ( source)
<?php
$code = "[gallery-1] <p>Test...test...test...</p> [gallery-2]";
preg_match_all("/\[gallery-([1-9])\]/", $code, $matches);
$galleries = [];
foreach ($matches[1] as $id) {
$galleries[$id] = 'x'; // Somehow load a gallery basing on id;
}
foreach ($galleries as $id => $code) {
$code = str_ireplace("[gallery-" . $id . "]", $code);
}
echo $code;