1. 犀牛前端部落首页
  2. php教程

PHP代码浏览器中不显示

由于某些原因,PHP代码片段无法在浏览器中正确显示。

基本上,代码看起来不再像往常那样整洁,而是像是一堆杂乱无章的、间隔开的废话。这里的“间隔”并不是指一种好的方式:字面上有100px的垂直空间来分解混乱的代码行。

浏览器影响

我在Mac和Windows的许多浏览器上进行了测试。还没有在Linux上测试。据我所知,杂乱的PHP代码只会发生在运行在Windows上的Waterfox中。所有其他浏览器当前都正确地显示PHP代码片段。

这个问题在其他浏览器中可能会出现,也可能不会出现,所以这篇文章只是供参考,供以后参考。希望它能帮助人们弄清楚为什么PHP代码不显示、乱码或其他情况。在这种情况下,简单的逻辑表明,根本问题在于Windows,而不是Waterfox。

问题原因

下面是一些屏幕截图来说明这个问题。第一个显示PHP代码看起来很好;第二份报告显示,这一切都被扭曲了。点击每个缩略图以查看全尺寸图像。

PHP代码浏览器中不显示

PHP代码浏览器中不显示

在第二个截图中,你可以看到被破坏的代码片段,到处都是。在元素外显示大量的代码行间距和代码块(红色箭头)。

仔细观察就会发现潜在的问题。在PC/Win上的Waterfox有一个代码逃避的bug。很奇怪,因为Waterfox在Mac上没有任何bug。特别地,Waterfox在显示正确的HTML方面有两个问题:

  • 字符编码 –  <pre>/<code>标签不能正常被转义
  • PHP标签——PHP标签的开始和结束是通过HTML注释注释掉的。(<?php 和?> 被替换成 <!–?php and ?–>)

不是所有PHP代码都受影响;这是一个非常有限的测试用例。从俺目前可以确定知道,有两种情况下,Waterfox/Win在显示PHP代码时窒息:

  • 如果<pre>标签包含PHP标签,则不会显示PHP代码
  • 如果<pre>标签包含混合在PHP中的HTML,则PHP代码将不显示,而HTML将显示混乱和破碎。

下面是一些屏幕截图,可以让您更好地了解源代码中发生了什么。第一个屏幕截图显示了正确显示的代码。第二个显示了注释掉的PHP标记,以及产生的乱码。

PHP代码浏览器中不显示

PHP代码浏览器中不显示

诚然,这是一个相对次要的问题。想象一下,如果一个新手试图使用Waterfox浏览器跟随教程,然后试图理解那些混乱的、混乱的、胡言乱语,会有多可怕。

安全特性

人们可能认为注释PHP标记的开始和结束是某种安全特性,但实际上这是一个潜在的安全风险。

禁用PHP标记会破坏正常的HTML输出。它使代码样本失效。可能在活动网站上使用乱码。我们都知道,乱码会引入错误和安全问题。

另外,在浏览器级别禁用HTML内容中的PHP代码不会实现任何效果。这样做往好里说毫无意义,往坏里说会带来安全风险。为什么?因为浏览器不(也不能)执行PHP脚本。使他们瘫痪是愚蠢的。

其他原因

除了Waterfox之外,下面的情况,可能也会导致乱码:

  • CMS如WordPress过滤或处理某些字符
  • 通过代理/VPN访问页面可以修改页面标记
  • 页面上的JavaScript错误会导致HTML显示中断
  • 与网页内容交互的浏览器扩展
  • CSS或JavaScript可能隐藏了代码
  • 错误的HTML结构/格式等

俺希望这对你有帮助。: )

原创文章,作者:我心飞翔,如若转载,请注明出处:https://www.pipipi.net/3761.html

发表评论

登录后才能评论