-2

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

示例:index.html 输出为“XXX” script.php 输出为“XXX”,但在我的脚本中我生成数据:

echo $data[0]->var;

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

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-\x1F\x80-\xFF]/', '',$data[0]->time_from);
$to  = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_to);
$day = preg_replace('/[\x00-\x1F\x80-\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.'" },';
4

1 回答 1

0

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

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

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

于 2012-05-17T15:57:45.347 回答