2010-09-18 41 views
0

我的客户是一家小型报纸,用印刷工的报价而不是“直接”报价提供报道。故事由PHP组装成HTML。在我的Apache服务器上,它们显示正常,但是在我的客户站点所在的雅虎上,它们全都被问号所代替。在雅虎使用PHP的排印工作者报价

要解决这个问题,我在PHP写了下面的功能:

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

在功能上面,我正在寻找印刷商的报价将它们与HTML等效替换。在我的本地Apache服务器上,它工作得很好。在雅虎上,所有错字报价都会转换为第一个列出的(上面的:’)。

在我的服务器上,魔术引号已关闭,但雅虎已将其打开。我不确定这是否是我的问题的原因,但这是可能的。

我很清楚PHP中单引号和双引号字符串的区别,甚至尝试了上述两种方式,没有任何区别,所以我们不要重复旧的基础。

有没有人有我建议的方向?

+0

如果有帮助,可以在运行时禁用PHP中的魔术引号。只要做到第一件事 - http://usphp.com/manual/en/function.set-magic-quotes-runtime.php – 2010-09-18 04:10:17

回答

1

这可能是一个字符集问题,无论是在雅虎的Web服务器,还是数据库,如果这些东西存储在数据库中。

拉出萤火虫(或类似的),并查看您的开发盒上的HTTP标头,以及现场。你可能想用php的header()函数强制一个头文件。