L'apostrofo viene quotato automaticamente da php per ragioni di sicurezza e di impostazioni predefinite del server (cerca magic_quotes per capirne di più).
La soluzione è quella di fare lo str replace come ti ha suggerito djhell. Questa soluzione, però, è poco pratica e poco "sicura": infatti cosa succede se metti le virgolette? E se metti la &?

Questi caratteri rimangono così come sono.

Usa, quindi, htmlentities per trasformare tutti questi caratteri nella corrispondente entità html e risolvi in un colpo molti più problemi.