清理 PHP 到 AngularJS 中的变量
Sanitize Variables in PHP to AngularJS
我有一个很长的字符串,其中包含一些奇怪的字符和类似这样的引号:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxdewhriho "shfihewr32" fhihifhewt43t[sdfhiort]sfhishf"gg"fhdif
它是我的 PHP 文件中对象的一部分,该对象是在我的脚本开始时创建的,并作为字符串存储在 $song->lyrics 属性 中。我试过通过这个将它传递给我的 AngularJS 控制器:
<div ng-controller="lyricsMod" ng-init="songInit('<?php echo $song->lyrics')">
这是我的 AngularJS 控制器:
displaySong.controller('lyricsMod', ['$scope', function($scope) {
//Set up initial scopes:
$scope.songInit = function(songLyrics) {
$scope.lyrics = songLyrics;
}
但我不断从 AngularJS 收到此错误:
Error: [$parse:lexerr]
https://docs.angularjs.org/error/$parse/lexerr?p0=Unterminated
我试过在字符串上使用 mysqli_real_escape_string 无济于事。当 AngularJS 命中字符串中的第一个引号时,错误似乎就发生了。我读过您需要对字符串使用清理,但我不知道如何清理 PHP 或 HTML 中的字符串。对不起,如果这是一个菜鸟问题,我刚开始学习 AngularJS。是否有更好的做法将我的 PHP 变量传递给 AngularJS 或者我在这里遗漏了什么?
您没有关闭 PHP 代码块(您缺少 ?>
)。
此外,我认为需要对它进行 JSON 编码才能插入到 JS 中(这也将消除 php 块周围引号的需要),并且 HTML 实体化用于插入 HTML 属性:
<div ng-controller="lyricsMod" ng-init="songInit(<?php echo htmlentities(json_encode($song->lyrics)); ?>)">
我有一个很长的字符串,其中包含一些奇怪的字符和类似这样的引号:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxdewhriho "shfihewr32" fhihifhewt43t[sdfhiort]sfhishf"gg"fhdif
它是我的 PHP 文件中对象的一部分,该对象是在我的脚本开始时创建的,并作为字符串存储在 $song->lyrics 属性 中。我试过通过这个将它传递给我的 AngularJS 控制器:
<div ng-controller="lyricsMod" ng-init="songInit('<?php echo $song->lyrics')">
这是我的 AngularJS 控制器:
displaySong.controller('lyricsMod', ['$scope', function($scope) {
//Set up initial scopes:
$scope.songInit = function(songLyrics) {
$scope.lyrics = songLyrics;
}
但我不断从 AngularJS 收到此错误:
Error: [$parse:lexerr]
https://docs.angularjs.org/error/$parse/lexerr?p0=Unterminated
我试过在字符串上使用 mysqli_real_escape_string 无济于事。当 AngularJS 命中字符串中的第一个引号时,错误似乎就发生了。我读过您需要对字符串使用清理,但我不知道如何清理 PHP 或 HTML 中的字符串。对不起,如果这是一个菜鸟问题,我刚开始学习 AngularJS。是否有更好的做法将我的 PHP 变量传递给 AngularJS 或者我在这里遗漏了什么?
您没有关闭 PHP 代码块(您缺少 ?>
)。
此外,我认为需要对它进行 JSON 编码才能插入到 JS 中(这也将消除 php 块周围引号的需要),并且 HTML 实体化用于插入 HTML 属性:
<div ng-controller="lyricsMod" ng-init="songInit(<?php echo htmlentities(json_encode($song->lyrics)); ?>)">