2014-07-01 33 views
-1

我试图从服务器端向浏览器(如报告)发送多行文件(如日志文件)。当服务器响应只有一条线我都没有问题,但是当它的响应几行命令的eval(function("str"))调用错误:未捕获的SyntaxError:意外的标记非法
的文件是这样的:
在服务器端读取多行文件并通过ajax响应将行发送到浏览器

10:00: 00 - 启动程序
10点00分10秒 - 开始执行
10点00分11秒 - 开始blablalbla
10点00分十四秒 - 开始blablalbla2
10时00分15秒 - 停止所有blablalbla

所以我做一个循环,累积的所有字符串

$strOut .= $content[$i]; 

我什至增加

. '\n'; 

,但没有结果。在调试器中,我在php和javascript中看到了响应字符串,但是当我调用eval(request.responseText)时,我得到上面的错误。
这是它的响应的字符串:如果我每次循环我这有一个后添加'\ n'

"myFunction('10:00:00 - Start program10:00:10 - Start execution10:00:11 - Start blablalbla10:00:14 - Start blablalbla210:00:15 - Stop all blablalbla')" 

"myFunction('10:00:00 - Start program\n10:00:10 - Start execution\n10:00:11 - Start blablalbla\n10:00:14 - Start blablalbla2\n10:00:15 - Stop all blablalbla')" 

,然后在代码只是split("\n"),但它之前会调用一个错误。



编辑:我的临时答案是创建单独的函数,以避免eval。现在它可以工作,但不是我想要的,但工作。

+0

你试过nl2br吗? –

+0

为什么你在响应时调用'eval'?响应JSON? – hindmost

+0

你最终想做什么?用单独的行打印日志到浏览器? –

回答

0

如果要将\ n用作新行分隔符,则需要使用双引号将其解释为新行 - “\ n”。

+0

我知道它,但eval不读取多行变量 – mit

+0

噢如果您需要在eval中应用新行try'\\ n'(在PHP部分中带有两个反斜杠和单引号) –

+0

在询问这里之前,我尝试了很多变体,但它没有工作 – mit

相关问题