Originariamente inviato da alcio74
Senza fare tanti giri, puoi usare preg_replace() e risolvere con una riga di codice.

Codice PHP:
$stringa =" stringa che ho scritto di prova ";
$pattern "/start(*.?)end/";
$replacement "messa per";

$stringa preg_replace ($pattern$replacement$stringa); 
Non so se hai letto il mio problema qual'era nella risposta che ho dato. Ma ho letto il funzionamento di preg_replace e credo che la tua soluzione funga al caso.
Cosa significa "/start(*.?)end/" ...cosa intende?

Nel mio caso io devo sostituire un elemento di tabella del tipo

<td id="mioId"> Testo che sarà sostituito </td>

lasciando i tag al loro posto ovviamente. Dunque con il tuo esempio
start="<td id="mioId"> "
end="</td>"
e posso inserire come parametro della funzione anche limit=1 per indicare che un solo elemento del genere deve essere sostituito. Dunque mi troverà il primo "</td>"... o almeno spero.
Che ne pensate?