0

使用 tinymce 作为内容,它在本地服务器上运行良好,但在远程服务器上会破坏格式。

保存内容:

mysql_real_escape_string( htmlentities($slide_name,ENT_QUOTES,'UTF-8'))

检索时:

html_entity_decode($slide_name, ENT_QUOTES,'UTF-8')

在本地服务器上它正确显示内容:

<p><strong style="text-decoration: underline;">Contact:</strong> 0000-<span style="color: #ff0000;">245</span></p>

在远程(第一次更新后):

<p><span style="\"><strong style="\">Contact:</strong></span> 0000-<span style="\">245</span></p>

对两个数据库使用utf8_general_ci排序规则(远程/本地)

4

1 回答 1

0

经过大量搜索和托比艾伦的提示,我找到了解决方案。
这是一个问题:
magic_quotes_gpcON远程服务器上并且magic_quotes_gpcOFF本地服务器上。

由于我们无法将远程服务器控制到 php 配置级别,因此我们需要关闭 magic_quotes_gpc 运行时间。

从php.net找到一个代码片段

<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>

如果可能的话,使用 php.ini 关闭 magic_quotes_gpc,否则我们可以使用上面的函数来关闭 magic_quotes_gpc 运行时。

我正在为未来的搜索者发布这个答案。

于 2013-01-24T10:51:34.130 回答