php - 更改 php 版本时,htmlentities 的工作方式不同
问题描述
我在我的一个网站中遇到了htmlentities问题。我得到表单数据库一个 utf8 编码的字符串,但是当我使用 htmlentities 它返回一个空字符串。
经过一些测试,我确定问题的根源是 php 安装。为什么?因为如果我使用 Nginx 配置(站点可用文件...)更改我的 php 版本,它就可以工作。
在我的“PHP 版本 5.6.35-1+ubuntu14.04.1+deb.sury.org+1”安装中它工作正常,但在“PHP 版本 5.5.9-1ubuntu4.22”中不起作用。数据库是一样的,文件是一样的,除了php版本之外都是一样的。
一些紧张的代码:
$text = "señal";
mb_detect_encoding($text); //returns 'UTF-8'
htmlspecialchars($text); //returns ''
htmlentities($text); //returns ''
htmlentities(utf8_encode($text)); //returns 'SEÑAL'
我需要查看 php 配置中的内容吗?谢谢!!!
解决方案
推荐阅读
- powershell - 在 Powershell 中创建和比较哈希表
- c# - 在 ASP.NET-Core 2.2 中检索给定类型的声明集合
- html - 网格布局中的中心锚标记
- c - 使用 Bitbake 编译包时找不到 .h 文件
- c# - Windows 中的自定义边缘滑动事件(用于底部边缘)
- java - 请求不同的 java 版本
- java - 没有找到类 org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor 的序列化程序,也没有找到创建 BeanSerializer 的属性
- angular - Angular Tour of Heroes 是否使用了 Angular 路由?
- javascript - 在 Cordova 应用程序中使用异步和等待顺序运行 XMLHttpRequest
- abap - BOPF 验证在 cds 视图中不起作用