繁体   English   中英

使用PHP变量的HTML嵌入视频不起作用

[英]HTML embed video using PHP variable doesn't work

我正在尝试使用以下代码在网页上显示所有视频,到目前为止,我能够遍历文件,打印文件名并嵌入视频。 但是这些视频显示为灰色,无法正常工作,我怀疑我在代码中使用$ filename做错了。

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $filename) {
    if (!$filename->isDot()) {

        if ($filename != "index.php" and $filename != "error_log") {

            echo $filename, "<br>"; 

            echo '<video width="400" controls="controls" preload="metadata">
            <source src=$filename type="video/mp4"></video>';

            echo "<br><br>";
        }

    }
}
?>

它是这样显示的:

在此处输入图片说明

在此处输入图片说明

你好

您像字符串一样回显$filename ,而不是PHP变量。

请记住,如果用单引号呼应'所有在它里面会响应像串并用双引号回声"将呼应PHP变量阅读他们的价值。信息有关PHP字符串nicley解释如这里

您可以将您的代码片段echo HTML视频更改为:

echo '<video width="400" controls="controls" preload="metadata"><source src="' . $filename . '" type="video/mp4"></video>';

请注意,HTML video标签src属性也缺少双引号,我在上面的代码中将它们添加了。

干杯

更改

<source src=$filename type="video/mp4"></video>';

<source src="'.$filename.'" type="video/mp4"></video>';

您的php变量位于单引号内,并且(来自doc)变量和特殊字符的转义序列在单引号引起来的字符串中不会扩展。

作为替代方案,您可以将字符串保留在单引号之间,并使用sprintf ,它将返回格式化的字符串,并使用例如%s来指定应将参数作为字符串类型进行处理。

echo sprintf('<video width="400" controls="controls" preload="metadata">
<source src="%s" type="video/mp4"></video>',
    $filename);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM