Ihr Code lautet
replace('%'.$DC01x01.'_'.($i+1).'%', $text);
Der Text innen setzt sich zusammen aus folgenden Bestandteilen:
'%'.
$DC01x01.
'_'.
($i+1).
'%'
Relevant ist hier vor allem der zweite Baustein. Dort greifen Sie auf eine PHP-Variable (nicht Datensatz-Variable!) $DC01x01
zu, die vorher evtl. nicht definiert wurde. Womöglich meinen Sie also...
replace('%DC01x01_'.($i+1).'%', $text);
Hier kommen Platzhalter-Kennungen wie %DC01x01_1%
heraus.