我有一个数据库,可以在varchar列中存储一些文本和一些HTML。它看起来像这样:
Click here to go to the site: <a href="http://www.google.com">http://www.google.com</a>.
但是,当我将其输出到HTML页面时,它显示为纯文本,而不是可点击的链接。
如何将其输出为有效的HTML代码并创建可点击的href?
我使用Slim路径获取数据:
$app->get('/projects/:id', function($id) use ($app) {
// Open Dataabse Connection
$con = connect_db();
// Query for all Projects with specific Id
$project = $con->query("SELECT * FROM Projects WHERE projectId=".$id."")->fetch(PDO::FETCH_OBJ);
// Get Documents associated with Project Id
$documents = $con->query("SELECT * FROM ProjectDocuments WHERE projectId=".$id."")->fetchAll(PDO::FETCH_OBJ);
// Get Student Updates by Project Id
$updates = $con->query("SELECT * FROM StudentUpdates LEFT JOIN ASAPers ON ASAPers.userId = StudentUpdates.userId
WHERE projectId=".$id." ORDER BY StudentUpdates.date DESC LIMIT 5")->fetchAll(PDO::FETCH_OBJ);
$projectArray = array();
foreach ($project as $key => $value) {
$project->{$key} = htmlspecialchars_decode($value);
array_push($projectArray, $project->{$key});
}
print_r($projectArray);
// Render Single Project page
$app->render('single.project.twig', array('project'=>$projectArray, 'updates'=>$updates, 'documents'=>$documents));
});
在single.project.twig里面
<h2>{{ project[1] }}</h2>
<p>{{ project[2] }}</p>
如果我在PHP中打印出数组,它将显示为HTML链接!但是,只要我使用Twig打印出我的变量,它就会再次显示为纯文本!
答案 0 :(得分:2)
刚想出来了。对于任何看到这里的人来说,这就是答案。
<h2>{{ project[1] | raw }}</h2>
<p>{{ project[2] | raw }}</p>
添加| raw
会将HTML输出为HTML。