2014-10-20 187 views
0

我想用一个函数编码特殊实体,在这里我正在尝试: 它的一个可靠的函数,与ratables明星,我有两个功能显示可评级的消息,一个是显示默认的结果,第二个时,我给它一个新的费率特殊字符不会转换为html实体(html_entity_decode不工作)

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 &lt;div class="rate"&gt; (141 avis)&lt;/div&gt;</div> 

,因此,输出的是本

2.8/5 <div class="rate"> (142 Stars)</div> 

它不显示为html实体,但显示为简单的字符串。

难道我做错了什么?

这里是一些截图:

显示默认: Displaying default withour rating

等级后(上星CLIK) After clik on stars to rate

+0

任何一个请... – Marline 2014-10-21 13:41:56

回答

0

你想要一个div.rate被渲染HTML?如果是这样,那么你不应该把“& lt”等实体 - >与你想要的完全相反 - 它保留字符串中的“小于”字符。 所以,如果我理解你很好,你的代码必须是

<div class="ratingText " id="rabidRating-9-description">2.8/5 <div class="rate"> (141 avis)</div></div> 

好运。

+0

getStarmessage显示文本为“

2.8/5 <div class="rate"> (141 avis)</div>
”,我打算将&lt实体转换为“小于”caracter,这是我的客体化 – Marline 2014-10-20 09:49:52