anche il sorgente php dove hai quel codice deve essere in utf-8.
Altrimenti tu gli stai dicendo di sostituire il carattere ’ espresso in iso-8859-1 (che non si sa cosa sia in utf-8) con il carattere ' sempre espresso in iso-8859-1 (ma questo coincide tra i due charset, ti va di culo).
l'alternativa, inutilmente pesante, sarebbe qualcosa tipo
$testo_temporaneo=str_replace(utf8_encode("’"),"'" , $testo_temporaneo);
Salva il php come utf-8, riscrivi i caratteri che eventualmente si sono sputtanati nella conversione, e dovrebbe funzionare.
Ah, per sostituire tante stringhe, puoi passare degli array di stringhe alla str_replace, chiamandola una sola volta.
P.S. Ovviamente nel passaggio a iso-8859-1 metti in conto che avrai comunque i ? per tutti quei caratteri di utf-8 che iso-88ectetc non può rappresentare.