2014-01-09 45 views
0

我知道这是非常简单的东西,但它不适合我...PHP echo显示集外html

我使用以下显示HTML内的变量。

<?php if (!empty($data['title_text'])) { 
    echo '<h1 class="site-title animated fadeInDown">' .$data['title_text']. '</h1>'; 
} 

它正在显示,但varibale不在html元素内。它显示像这样

TEST DATA 
<h1 class="site-title animated fadeInDown"></h1> 
+2

请提供输出var_dump($ data) – CBergau

+0

你使用什么编码? – RDK

回答

1

您的变量可能包含无效/乱七八糟的字符。你应该始终确保不能发生:

echo '<h1 class="site-title animated fadeInDown">' . htmlspecialchars($data['title_text'], ENT_QUOTES, 'UTF-8') . '</h1>'; 

(假设你使用UTF-8)

+1

如果你使用的是UTF-8,那么htmlentities($ data ['title_text'],ENT_QUOTES,'UTF-8')可能会更好用,对吧? – CBergau

+0

@CBergau当不在html标签/属性值中时,我不明白单引号如何造成任何伤害,'utf-8'是php 5.4中的默认值。无论如何,它肯定不会伤害:-)编辑! – jeroen

+1

由于引号,我没有提及htmlentites。只是想点编码:) – CBergau

0

试试这个添加页面上的这部分代码:

define('CHARSET', 'ISO-8859-1'); 
define('REPLACE_FLAGS', ENT_COMPAT | ENT_XHTML);