Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML使用PHP变量嵌入视频不';行不通_Php_Html_Css_Web_Gallery - Fatal编程技术网

HTML使用PHP变量嵌入视频不';行不通

HTML使用PHP变量嵌入视频不';行不通,php,html,css,web,gallery,Php,Html,Css,Web,Gallery,我试图用下面的代码在一个网页上显示所有的视频,我已经能够迭代文件,打印文件名并嵌入视频。但是视频变灰了,无法正常工作,我怀疑我在代码中使用$filename时出错了 <?php $dir = new DirectoryIterator(dirname(__FILE__)); foreach ($dir as $filename) { if (!$filename->isDot()) { if ($filename != "index.php" and $fi

我试图用下面的代码在一个网页上显示所有的视频,我已经能够迭代文件,打印文件名并嵌入视频。但是视频变灰了,无法正常工作,我怀疑我在代码中使用$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>";
        }

    }
}
?>

这就是它的表现:

改变

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

”;
更改

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

”;
Hi 您像字符串一样使用echo
$filename
,而不是PHP变量

记住,如果echo使用单引号
的话,它里面的所有内容都会像字符串一样进行echo,而echo使用双引号
的话,它会回显读取其值的PHP变量。关于PHP中字符串的信息,nicley解释过,例如

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

echo '<video width="400" controls="controls" preload="metadata"><source src="' . $filename . '" type="video/mp4"></video>';
echo';
请注意,HTML
video
tag
src
属性也缺少双引号,我在上面的代码中添加了它们

切什 您像字符串一样使用echo
$filename
,而不是PHP变量

记住,如果echo使用单引号
的话,它里面的所有内容都将像字符串一样进行echo,而echo使用双引号
的话,它将回显读取其值的PHP变量。关于PHP中字符串的信息由nicley解释,例如

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

echo '<video width="400" controls="controls" preload="metadata"><source src="' . $filename . '" type="video/mp4"></video>';
echo';
请注意,HTML
video
tag
src
属性也缺少双引号,我在上面的代码中添加了它们


Cheers您的php变量位于内部,并且(来自文档)变量和特殊字符的转义序列在出现在单引号字符串中时不会展开

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

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

php变量位于内部,并且(从文档中)变量和特殊字符的转义序列在单引号字符串中出现时不会展开

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

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

src=$filename
应该是
”$文件名?改用双引号:
echo”“
src=$filename
应该是
”$文件名?改用双引号:
echo”“