如果您对 html 进行回声, 浏览器就会提供 html, 如果您想要对 html 的来源进行回声, 那么您就会使用 : < a href=" http://php. net/ manual/ en/ office. htmlentities. php" rel = “ nofollow” >htmlentites ()
echo htmlentites($final);
如果不是,请解释: 但是它没有正确显示它。
其它: 您不应该输出 ANY html 一个用户输入或您的脚本被设计打开到 XSS, 验证不是 ! noty( $embed)
! 您应该将视频的 Youtube id从代码中提取出来, 并从中建立您自己的嵌入代码 。
如何做到这一点 :
<?php
if($_SERVER[ REQUEST_METHOD ]== POST ){
if(!empty($_POST[ embed ]) && !empty($_POST[ date ])){
if(preg_match( #http://www.youtube.com/embed/([a-zA-Z0-9_-]+)"# ,$_POST[ embed ],$match)==true){
$embed = <<<EMBEDCODE
<iframe width="640" height="360"
src="http://www.youtube.com/embed/{$match[1]}?feature=player_embedded"
frameborder="0" allowfullscreen>
</iframe>
EMBEDCODE;
}else{
$embed = "Not a real youtube embedcode! Try Again";
}
}else{
$embed = "Enter youtube embedcode.";
}
}
?>
<h1>Youtube Yada</h1>
<form method="POST" action="">
<p>Embedcode:<textarea rows="9" name="embed" cols="44"></textarea></p>
<p>Date:<input type="text" name="date" value="<?php echo date("F j, Y, g:i a");?>" size="20"></p>
<p><input type="submit" value="Submit" name="B1"></p>
</form>
<?php echo(isset($embed)?$embed:null);?>
测试时:
<iframe width="560" height="315" src="http://www.youtube.com/embed/GasAmUfvXJs" frameborder="0" allowfullscreen></iframe>