如何解决PHP 8 没有显示 short_open_tag 设置
以下返回长度为零的字符串:
<?PHP
print_r(ini_get('short_open_tag'));
?>
在两台 PHP 8 服务器(apache2handler 和 cgi-fcgi)上,我需要知道是否启用了短标签,因为它会与 XML 产生冲突。我无法停止我正在做的一切去看看PHPinfo()
。
此代码在两台服务器上的 PHP 7.4 中都运行良好。现在,我确实知道短标签已禁用,但我需要在服务器升级后快速知道。
如何让 ini_get('short_open_tag')
重新工作?
解决方法
虽然这是一个布尔值设置,但 ini_get
实际上是 return a string。
注意:查询布尔值时
off
的布尔 ini 值将作为空字符串或“0”返回,而 on
的布尔 ini 值将作为“1”返回。该函数还可以返回 INI 值的文字字符串。
因此,当启用该功能时,它将返回“1”,您可以使用它来检查设置的状态。 (尽管该注释中有最后一句,但我从未见过为布尔值返回任何文字值,例如“on”或“off”。)
var_dump(ini_get('short_open_tag'));
启用设置的输出:
string(1) "1"
一点历史:虽然有 a vote taken 删除这些标签,但它被推翻了。主要关注的是在升级服务器时会向最终用户显示的遗留代码——同样的原因,尽管不鼓励使用该设置,但仍然默认为“开”for decades。在第一个 RFC 崩溃之后,使短开放标签成为错误条件的 a subsequent proposal 没有获得所需的 2/3 多数通过。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。