Originariamente inviato da Donald
Il problema è che ho richiamato il contenuto della pagina tramite
Codice PHP:
$parte_comune file_get_contents("comune.html"); 
e sembra che ci siano problemi a fare rimpiazzi di parti di testo contenenti apici.

Sarebbe più pratico (e più elegante) dire a PHP:
1) Trova una riga in cui compare la parola "button"
2) Verifica se su quella riga compare la parola $pagina
3) In caso affermativo sostituisci il "button" su quella riga con "curbutton"
Eviterei così le virgolette e avrei una cosa che si capisce, a costo di avere paio di istruzioni in più.

C'è modo di fare questo?
Una possibile soluzione
Codice PHP:
// suddivide $parte_comune in "righe" come hai chiesto
$righe explode("\r\n",$parte_comune);
// Analizza ogni singola riga
foreach($righe as $key=>$value)
{
  
// vefica che la stringa contenuta in $pagina e la stringa "button" siano nella riga
  
if((strpos($pagina,$value) !== false and strpos("\"button\"",$value) !== false)
  {
     
// sostituisce nella riga "button" con "curbutton"
     
$righe[$key] = str_replace("\"button\"","\"curbutton\"",$value);
  }
}
// Ricrea la stringa risultato partendo dall'array
$parte_comune_risultato implode("\r\n",$righe); 
Tutto sta nel sostituire il doppio apice " con \" quando viene usato a sua volta all'interno di doppi apici oppure (ancora più semplice) utilizzare gli apici singoli
Codice PHP:
$righe[$key] = str_replace('"button"','"curbutton"',$value);