打印为<pre> in HTML?</pre>时如何用新行替换`\ n`

时间:2014-09-30 14:47:45

标签: javascript php html angularjs

我从PHP服务器获取文本文件,如下所示:

  

“文件版本:5 \ n \ n开始:1410355285955(2014/09/10 11:58:05.955)\ nend:141090402750(2014/09/10 12:00:02.750)\ nUEID:301660031 \ nCNC:118130 \ nVendor:75306 \ n型号:807182328 \ nOS:1549568403 \ n平台:1 \ n载波:-1337093915 \ n报告的网络:0 \ n \ nNum域:1 \ n域276975141 \ n Num标签:1 \ n -2032188703 \ n Num hostedApps:2 \ n HostedApp:-2097733624,HostedVersion 300009300500000,...

如何用新行替换\n

预期结果应为:

File version: 5

start:    1410450285955(2014/09/10 11:58:05.955)
end:      1413350402750(2014/09/10 12:00:02.750)
UEID:     301600031
CNC:      114130
Vendor:   75506
Model:    827112328
OS:       1539568403
Platform: 1
Carrier:  -1347083915
Reported Networks:  0

Num domains: 1
  Domain 276955141
  Num tags: 1
  -2032160703
  Num hostedApps: 2
  HostedApp: -2052733624,  HostedVersion 3000003070500000, ...

我将其打印为:

 <pre>{{myText}}</pre>

如果是json,我会使用json过滤器:

 <pre>{{myText | json}}</pre>

这就是我在PHP中打开文件的方式:

 $file = file_get_contents($filePath, FILE_USE_INCLUDE_PATH);

2 个答案:

答案 0 :(得分:2)

如果它进入pre,则您不应该替换\n,因为 是换行符。

&#13;
&#13;
document.querySelector("pre").textContent = "File version: 5\n\nstart: 1410355285955(2014/09/10 11:58:05.955)\nend: 141090402750(2014/09/10 12:00:02.750)\nUEID: 301660031\nCNC: 118130\nVendor: 75306\nModel: 807182328\nOS: 1549568403\nPlatform: 1\nCarrier: -1337093915\nReported Networks: 0\n\nNum domains: 1\n Domain 276975141\n Num tags: 1\n -2032188703\n Num hostedApps: 2\n HostedApp: -2097733624, HostedVersion 300009300500000, ..."
&#13;
<pre></pre>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

奇怪的是,换行符\n字面上包含在文本中。它可能会在某处双重逃脱。

this question类似

在这种情况下,对于修复,您只需要用双引号'\n'中的换行符替换单引号"\n"中的换行符,以便在PHP中正确解释它。尝试使用PHP的str_replace()