Prova questo.
Codice PHP:
<?php
$text = 'fqfq[gallery id="ggggg"]lklpkpkp [gallery id="uuuuuuuu"]nksgnoso[gallery id="tttttt"]';
$pattern = '#(\[gallery id=\"([^"]+)\"\])#';
preg_match_all($pattern,$text,$out);
print "<u>Testo iniziale</u><br/>";
print $text;
print "<br/><br/>";
print "<u>Array che contiene le stringhe</u><br/>";
print_r($out[1]);
print "<br/>Dettaglio:<br/>";
foreach ($out[1] as $key=>$value) {
print "$value<br/>";
$rps[$key] = "<<<$key>>>";
}
print "<br/>";
print "<u>Array che contiene gli ID</u><br/>";
print_r($out[2]);
print "<br/>Dettaglio:<br/>";
foreach ($out[2] as $key=>$value) {
print "$value<br/>";
$rpi[$key] = "<<<$key>>>";
}
print "<br/>";
$text1 = $text;
print "<u>Rimpiazzamento delle stringhe valore per valore:</u><br/>";
$text1 = str_replace($out[1],$rps,$text1);
print "$text1<br/>";
$text1 = $text;
print "<u>Rimpiazzamento degli ID valore per valore:</u><br/>";
$text1 = str_replace($out[2],$rpi,$text1);
print "$text1<br/>";
$text1 = $text;
print "<u>Rimpiazzamento delle stringhe con un unico valore :</u><br/>";
$text1 = str_replace($out[1],"",$text1);
print "$text1<br/>";
$text1 = $text;
print "<u>Rimpiazzamento degli ID con un unico valore :</u><br/>";
$text1 = str_replace($out[2],"",$text1);
print "$text1<br/>";
?>