当将数据从数据库回显到 ajax 时,PHP 损坏



我有这个问题,不知道是什么原因造成的。当我将数据加载到 ajax 时,我的 ajax 脚本 www.something.tld/index.html 它们没问题。但是当我从脚本加载数据时.php脚本首先从 db 检索数据,然后回显这些数据,我的 ajax 以错误结束。但是数据输出是一样的!怎么了?

例:索引.html输出为"XXX"脚本.php输出为"XXX",但在我的脚本中,我使用以下方式生成数据:

echo $data[0]->var;

知道为什么会这样吗? 当我从数据库检索数据然后将其回显出来时,就会发生这种情况。

Internet Explorer 说: 语法错误 第 281 行,ttm/canvas.1.03.jgz 中的字符 163这是 JGZ http://www.freefilehosting.net/canvas103 的链接

我发现当我在 php ajax 中使用 anz 函数时,无法正确解析输出!这是解析好的:

$from ='05/17/2012 10:15:00';
  $to ='05/17/2012 10:30:00';
  $day ='5/17/2012';
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';

这未正确解析:

$from= preg_replace('/[x00-x1Fx80-xFF]/', '',$data[0]->time_from);
$to  = preg_replace('/[x00-x1Fx80-xFF]/', '',$data[0]->time_to);
$day = preg_replace('/[x00-x1Fx80-xFF]/', '',$data[0]->day);
$from ='05/17/2012 10:15:00';
  $to ='05/17/2012 10:30:00';
  $day ='5/17/2012';
echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';

如果你使用json_encode()(就像你应该的那样(,那么PHP会为你处理所有的编码怪癖。比如转义那些不可打印的字符和过去0x7F的东西。

echo json_encode(Array(
    "dtstart"=>$from,
    "dtend"=>$to,
    "day"=>$day
));

根据文件的编码,您可能需要先通过utf8_encode()运行值,但这是您必须先测试然后尝试的内容。

最新更新