0

我的客户是一家小型报纸,并提供带有印刷商引述而不是“直接”引述的故事。这些故事由 PHP 组装成 HTML。在我的 Apache 服务器上,它们显示正常,但在我的客户站点所在的 Yahoo 上,它们都被问号取代。

为了解决这个问题,我在 PHP 中编写了以下函数:

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

在上面的函数中,我正在搜索印刷者的引号以将它们替换为 HTML 等价物。在我的本地 Apache 服务器上,它运行良好。在 Yahoo 上,所有拼写错误的引号都转换为第一个列出的(上图:')。

在我的服务器上,magic-quotes 已关闭,但 Yahoo 已将其打开。我不确定这是否是我的问题的原因,但这是可能的。

我很清楚 PHP 中单引号和双引号字符串之间的区别,甚至尝试过以上两种方式都没有区别,所以我们不要重蹈覆辙。

有没有人有建议的方向让我研究?

4

1 回答 1

1

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

拉出萤火虫(或类似的),并查看您的开发盒上的 HTTP 标头和实时站点。您可能想使用 php 的header()函数强制标头。

于 2010-09-18T03:58:27.320 回答