我正在尝试使用函数对特殊实体进行编码,这是我正在尝试做的事情: 它有一个ratable函数,有ratables星,我有两个显示ratable消息的函数,一个显示默认结果,第二个是当我给它一个新的速率
function showStars($ratableKey) {
...
$textDesc = "<div id=\"rabidRating-$ratingId-description\" class=\"ratingText\">"
.$this->getStarMessage($rating)."</div>";
echo $textDesc
}
我以两种不同的方式调用getStarMessage
function getStarMessage($rating) {
$stars = $this->percentToStars($rating['rating']);
if ($rating[totalRatings] > 1) $s = "s";
$div_stars = "<div class=\"rate\">";
$result= "$stars/$this->stars ".$div_stars." ($rating[totalRatings] avis)</div>";
$result= html_entity_decode($result);
return $result;
}
以defaut方式(在showStars函数中)它工作正常(有或没有html_entity_decode) 但是当我在另一个函数中调用getStarMessage函数时
function doVote($ratableId, $percent) {
...
$rating = $this->loadRating($id);
$return = $this->getStarMessage($rating);
echo $return; ==> the problem is here
}
在源代码中显示
<div class="ratingText " id="rabidRating-9-description">2.8/5 <div class="rate"> (141 avis)</div></div>
因此,输出就是这个
2.8/5 <div class="rate"> (142 Stars)</div>
它不是作为html实体显示,而是作为简单的字符串显示。
我做错了吗?
这里有一些截图:
显示默认值:
评级后(clik on stars)
答案 0 :(得分:0)
您希望div.rate呈现为HTML吗?如果是这样,那么你就不应该把&#34;&amp; lt&#34;等实体 - &gt;这与你想要的完全相反 - 它保持&#34;小于&#34;字符串中的字符。 所以,如果我理解你,你的代码必须是
<div class="ratingText " id="rabidRating-9-description">2.8/5 <div class="rate"> (141 avis)</div></div>
祝你好运。