2015-04-15 23 views
-1

我使用CodeIgniter創建了一個Web應用程序,並且出現了該類別的打印名稱的問題。在PHP數組輸出中缺少空格和特殊字符

某些類別保存在數據庫中,名稱類似於「鞋子&包」 前端的結果是「鞋子」。 我在做什麼是:

型號:

function displayCategory(){ 
     $result = $this->db->get('category'); 
     return $result->result_array(); 
    } 

控制器:

$pelcst_d['categorylist'] = $this->category->displayCategory(); 

查看:

<?php foreach ($category as $key => $value) { ?> 
     <li><?php echo $value['category']; ?></li> 
<?php } ?> 
+0

也許不相關,但是'personal_closest'是你的模型的名字?如果是的話,爲什麼你在'displayCategory()'中傳遞'user_id'參數,而參數沒有在模型中設置。可能有助於回答你的主要問題。 –

+0

對不起,我更新了代碼是從另一個函數。 – mds

+0

您可能需要執行'var_dump($ category);'也看看您的變量中是否有完整的類別名稱。如果在那裏,你知道問題在於顯示,但如果沒有,你需要更新你的查詢/模型。 –

回答

0

與號(&)是在HTML特殊字符。它介紹了一個character entity。爲了顯示符號的字面值,必須使用它的字符實體(&amp;)。

如果$value['category'] == 'shoes & bags'然後在視圖生成的HTML是:

<li>shoes & bags</li> 

,但它在HTML正確的表示是:

<li>shoes &amp; bags</li> 

取決於一些因素,瀏覽器可以改正錯誤(讀取&amp;而不是&以便將其渲染爲&)或忽略它(讀取& bags,不能將其解釋爲有效的字符實體並放棄它)。

正確的代碼是:

<li><?php echo(htmlspecialchars($value['category'])); ?></li> 

始終使用PHP函數htmlspecialchars()htmlentities()正確編碼從用戶輸入或從數據庫中獲取,當你生成HTML內容的值。