2011-11-30 64 views
0

我有一些文字,我从数据库中获取这样发送的文字:从PHP创建的HTML

$solution = $row['solution']; 

然后我有一些HTML我在PHP中使用像这样的变量创建:

echo '<a class="delete_suggested_solution" data-problem_id="'.$problem_id.'" data-suggested_solution_id="'.$suggested_solution_id.'" href="#">Delete</a> | <a href="#" class="edit_suggested_solution" data-problem_id="'.$problem_id.'" data-suggested_solution_id="'.$suggested_solution_id.'" data-solution_text="'.$solution.'" data-solution_title="'.$solution_name.'">Edit</a>'; 

在大多数情况下,这实际上可以正常工作,但是当$解决方案中有一个链接,如<a href="http://SomeUrlWhatever.com">something</a>,则此HTML会在页面显示时中断HTML。

有什么可以做的,使页面上的HTML不会被破坏我吗?

谢谢!

回答

5

假设你想在这里的部分something而不是链接,只需使用strip_tags()htmlentities()仅检索标签的内部文本内容,并编码引用内部HTML中使用属性。

$solution = htmlentities(strip_tags($row['solution']), ENT_QUOTES); 
+0

谢谢 - 试试吧。什么时候实际显示文本?我应该使用你建议的功能吗?还是我不应该“按摩”任何文字? – GeekedOut

+0

@GeekedOut如果你只是显示它,并且它起源于用户输入,那么使用'htmlspecialchars()'将其编码为跨站点脚本攻击。 –

+0

完全工作真的很好! – GeekedOut