2010-09-18 4 views
0

Mon client est un petit journal et fournit des histoires avec des citations typographiques au lieu de citations "droites". Les histoires sont assemblées en HTML par PHP. Sur mon serveur Apache, ils s'affichent correctement, mais sur Yahoo, où se trouve le site de mon client, ils sont tous remplacés par des points d'interrogation.Citations de typographe en PHP sur Yahoo

Pour résoudre ce problème, je l'ai écrit la fonction suivante en PHP:

function fixquotes($text) 
{ 
    $text = str_replace('’','’',$text); 
    $text = str_replace('”','”',$text); 
    $text = str_replace('“','“',$text); 
    return $text; 
}; 

Dans la fonction ci-dessus, je suis à la recherche pour les citations de typographe pour les remplacer par des équivalents HTML. Sur mon serveur Apache local, cela fonctionne très bien. Sur Yahoo, toutes les typo-citations sont converties en les premières listées (ci-dessus: ’).

Sur mon serveur, magic-quotes est désactivé, mais Yahoo l'a activé. Je ne suis pas certain si c'est la cause de mon problème, mais c'est possible. Je suis tout à fait conscient de la différence entre les chaînes de guillemets simples et doubles en PHP, et j'ai même essayé les deux voies ci-dessus sans aucune différence, donc ne pas re-labourer le vieux terrain.

Est-ce que quelqu'un a une suggestion de direction pour moi?

+0

Vous pouvez désactiver les guillemets magiques à l'exécution en PHP, si cela vous aide. Il suffit de faire la première chose - http://usphp.com/manual/fr/function.set-magic-quotes-runtime.php –

Répondre

1

Il s'agit probablement d'un problème de jeu de caractères, que ce soit sur le serveur Web de Yahoo ou dans la base de données, si ce contenu est stocké dans une base de données.

Extrayez firebug (ou similaire), et regardez les en-têtes HTTP sur votre boîte de dev, et le site en direct. Vous pouvez forcer un en-tête en utilisant la fonction header() de php.