PHP新手求助:如何将YouTube视频嵌入代码加入echo语句
解决PHP中嵌入YouTube视频iframe的语法问题
嘿,作为PHP新手遇到这种字符串拼接的语法问题太正常了,我来帮你快速搞定它!
问题根源
你看到的“http://之后的代码被注释”其实是双引号冲突引发的PHP语法解析错误:当你在echo的双引号字符串里直接写HTML的iframe代码时,HTML属性里的双引号(比如src="http://..."里的引号)会被PHP误认为是echo字符串的结束标记,导致后面的代码变成无效的PHP代码,看起来就像是被注释了。
解决方案
给你两种简单好用的写法,既能解决语法问题,还能顺利把视频ID变量嵌入到URL里:
方案1:单引号包裹HTML,拼接变量
把iframe的HTML代码用单引号包裹,这样里面的双引号就不会和外层的echo双引号冲突,再通过字符串拼接插入视频ID变量:
// 先输出原有数据 echo "<br>". $e["Test #"]."<br>". $e["RPM"]."<br>". $e["Axial Cut"]."<br>"; // 嵌入YouTube视频,记得把$e["VideoID"]换成你实际的视频ID字段名 echo '<iframe width="250" height="140" src="http://www.youtube.com/embed/'.$e["VideoID"].'?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
小提醒:比如你数据库里存储视频ID的字段叫
YoutubeID,就把$e["VideoID"]改成$e["YoutubeID"]。
方案2:使用HEREDOC语法(推荐,可读性更强)
HEREDOC允许你直接写多行HTML内容,不需要转义任何引号,还能直接在里面使用变量,非常适合这种混合HTML和PHP的场景:
echo <<<HTML <br>{$e["Test #"]}<br>{$e["RPM"]}<br>{$e["Axial Cut"]}<br> <iframe width="250" height="140" src="http://www.youtube.com/embed/{$e["VideoID"]}?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> HTML;
重要注意:HEREDOC的结束标记
HTML;必须单独占一行,顶格写,不能有任何空格或缩进,不然会触发语法错误哦!
验证小技巧
写完代码后,你可以右键查看页面的HTML源代码,检查iframe的src属性是否正确替换成了视频ID,比如应该显示类似http://www.youtube.com/embed/abc123?rel=0这样的地址,其中abc123就是你的目标视频ID。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

