- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我遇到了 html_entity_decode
的问题,这可能有一个我还没有找到的简单解决方案。这是我的问题,我有这个字符串:
L'evento dell'anno
当我保存到数据库中时,会使用 filter_var($input,FILTER_SANITIZE_STRING);
进行过滤并输出:
L'evento dell'anno
现在,当我直接从页面内的 PHP 检索它时,我不需要任何编码/解码函数,并且文本按预期显示,正如我最初编写的那样,但是,当我从 AngularJS(版本 1)加载它时)$http.get()
它不会替换字符,如果我打印对象值,我会看到所有这些 HTML 实体(我认为它们是,我不确定)。
这是我的 AngularJS 代码部分:
$http.get(php_data.ajax_url, {
params: {
action: 'get-sostenitore',
get_id: show_id
}
}).then(function (response) {
// Handle data
});
// Handle data
部分仅打印结果,仅此而已。
没用,所以我添加了这个 PHP 部分:
$decoded_vars = array_map(function ($val) {
return html_entity_decode($val, ENT_COMPAT,'UTF-8');
}, get_object_vars($object));
也不起作用。
我试过htmlentities_decode
也是,mb_convert_encoding($val,'UTF-8','HTML-ENTITIES')
,但也转换特殊字母(à、è 等...)。
我在 StackOverflow 上搜索了大约 2 个小时,找到了一些结果,例如 this , this ,或this (我在 SA 上找到了另一个完整的编码/解码指南,但我没有再找到它),但他们都没有解决我的问题。
有趣的是,我尝试将我的字符串粘贴到此 online tool 上并且显示正确。
这可能是 AngularJS 的问题吗?我对此感到很生气,但我确信它有一个非常简单的解决方案
即使我已经解决了我的问题,我认为这是一个与PHP相关的问题,而不是JS,但我实际上错了,所以我会更新AngularJS
部分通过展示我如何使用我获得的数据:
JS代码
app.controller('eventController', ['$http', '$scope', '$httpParamSerializerJQLike', '$interval', 'ngDialog', function ($http, $scope, $httpParamSerializerJQLike, $interval, ngDialog) {
var event = this;
$http.get(php_data.ajax_url, {
params: {
action: 'get-event',
get_id: show_id
}
}).then(function (response) {
// Handle data
if(response.status === 200){
var data = response.data;
ngDialog.open({
className: 'ngdialog-theme-default',
data: data,
controller: 'dialogEventi'
controllerAs: 'evView'
});
}
});
}]);
app.controller('dialogEventi', ['$http', '$scope', '$interval', '$httpParamSerializerJQLike', function ($http, $scope, $interval, $httpParamSerializerJQLike) {
var evView = this;
evView.loadedItem = $scope.ngDialogData;
}]);
弹出代码
<div id="show-event" class="bpopup-popup">
<div class="popup-head">
<h2>Visualizza evento</h2>
</div>
<div class="popup-body clearfix">
<div>
<div class="form-group" ng-show="evView.loadedItem.titolo">
<label>Titolo:</label>
{{evView.loadedItem.titolo}}
</div>
<div class="form-group" ng-show="evView.loadedItem.descrizione">
<label>Descrizione:</label><br/>
{{evView.loadedItem.descrizione}}
</div>
<div class="form-group" ng-show="evView.loadedItem.dataora">
<label>Data:</label>
{{evView.loadedItem.dataora}}
</div>
<div class="form-group" ng-show="evView.loadedItem.luogo">
<label>Luogo:</label>
{{evView.loadedItem.luogo}}
</div>
<div class="form-group" ng-show="evView.loadedItem.indirizzo">
<label>Indirizzo:</label>
{{evView.loadedItem.indirizzo}}
</div>
</div>
</div>
</div>
最佳答案
因此 Angular {{}}
或 ng-bind
仅显示文本。您可以在浏览器中非常简单地转换 html 实体,方法是创建 dom 元素,将字符串作为 html 插入并将其作为文本检索。
// simple helper function
function decode_entities(str){
return angular.element('<div>').html(str).text()
}
这可以用作 Angular 过滤器或接收数据时的前身
data.forEach(function(item){
item.description = decode_entities(item.description);
});
关于javascript - filter_var 之后的 html_entity_decode 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38398681/
这个问题已经有答案了: UTF-8 all the way through (13 个回答) 已关闭 8 年前。 我正在将 PHP 应用程序移动到另一台服务器,但在字符解码方面遇到一些问题: 旧服务器
编辑:我在发布问题后几秒钟就解决了它(抱歉!)但还不能接受答案。 大家好, 只是一个快速的。我有一个 PHP/CodeIgniter 网站,用户可以编辑他们的个人资料。我正在使用 CI 的 XSS 过
我在字符编码方面遇到问题。我已将其简化为以下脚本: '; // Stan's echo html_entity_decode($string).''; // Stan's echo htm
PHP html_entity_decode() 函数 实例 把 HTML 实体转换为字符: <?php $str = "<© W3CSçh
我正在尝试构建一个将 html_entity_decode 应用于对象和数组的函数。由于我事先不知道结构,子属性也可以是对象或数组,所以一个简单的递归函数似乎是可行的方法。我无法弄清楚为什么以下内容不
这个问题已经有答案了: Should we HTML-encode special characters before storing them in the database? (6 个回答) 已关
这是我的代码: $string = 'It'; $string = html_entity_decode($string); echo $string; 它应该回显“It”,但它只是回显
基本上我想像这样转动一个字符串: <div> blabla </div> 进入这个: <code> blabla </code> 我该怎么做?
我有一种情况,我将一个字符串传递给一个函数。我想在将 传递给函数之前将其转换为“”(空格)。 html_entity_decode 可以吗? 如果不行怎么办? 我知道 str_replace 但还
我一直在努力将一堆字符翻译成核心 utf-8 以将它们存储在我的数据库中。 PHP iconv 在许多字符上失败,所以我被迫构建我自己的“解决方案”,如果它不起作用,这真的不是一个解决方案,而且它在
我试图在我的产品页面(opencart v3)上输出产品的属性。 该属性称为“技术细节”,使用以下代码可以正常工作: {% if attribute_groups %} {% for attrib
我想我遇到了 html_entity_decode 的问题,这可能有一个我还没有找到的简单解决方案。这是我的问题,我有这个字符串: L'evento dell'anno 当我保存到数据库中时,会使用
我的 mysql 表保存文本 you'd 但是当我使用 php 获取该值并显示它时,我的浏览器将其显示为 you�d 我正在使用 html_entity_decode $answer = html_
$string = "susan's"; //string is scraped from website $string = html_entity_decode($string); $s
我正在寻找 PHP 的 javascript 版本 html_entity_decode .我发现了这个: function html_entity_decode(str){ var tarea=d
$string1 = 'Cotton Lanyard ½"'; $string2 = 'Organic Cotton Lanyard ⅝"'; echo html_enti
啊,我从来不喜欢 PHP,它太“不纯”了…… 现在我必须使用它,但我遇到了一个问题:主要是 html_entity_decode 和 htmlspecialchars_decode 似乎都不适合我。我
在一个单独的 YML 文件中,我有: flags: [] 当我将它调用到我的代码中时,它没有被解释,所以我使用了 html_entity_decode . 它有效,但我只有 1 个奇怪的字符在我的图像
我从昨天开始就一直在与这个问题作斗争——不幸的是无济于事(不完全是,我找到了某种解决方法),经过一些研究和重读文档后,我仍然有点目瞪口呆和困惑。 让我们假设有一个丑陋的字符串,它已经有正确的 html
从 php 5.4 html_entity_decode 引入了四个新标志,解释最少 ENT_HTML401 Handle code as HTML 4.01. ENT_XML1 Handle
我是一名优秀的程序员,十分优秀!