HTML 使用 PHP 变量嵌入视频不起作用
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>";
}
}
}
?>
它是这样显示的:
改变
<source src=$filename type="video/mp4"></video>';
到
<source src="'.$filename.'" type="video/mp4"></video>';
嗨
你 echo $filename
就像一个字符串,而不是 PHP 变量。
记住,如果用单引号 '
回显,它会像字符串一样回显,而用双引号 "
回显会回显 PHP 变量读取它们的值。关于 PHP 中字符串的信息是 nicley 解释的,例如here .
您可以将您的代码 echo HTML video 更改为:
echo '<video width="400" controls="controls" preload="metadata"><source src="' . $filename . '" type="video/mp4"></video>';
请注意,HTML video
标签 src
属性 也缺少双引号,我在上面的代码中添加了它们。
干杯
您的 php 变量在 single quotes 内,并且(来自文档)特殊字符的变量和转义序列出现在单引号字符串中时不会展开。
作为替代方案,您可以将字符串放在单引号之间并使用 sprintf ,这将 return 格式化字符串并使用例如 %s
来指定参数应该作为字符串类型处理。
echo sprintf('<video width="400" controls="controls" preload="metadata">
<source src="%s" type="video/mp4"></video>',
$filename);
我正在尝试使用以下代码在网页上显示所有视频,我已经能够遍历文件、打印文件名和嵌入视频。但是视频显示为灰色并且无法播放,我怀疑我在代码中使用 $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>';
嗨
你 echo $filename
就像一个字符串,而不是 PHP 变量。
记住,如果用单引号 '
回显,它会像字符串一样回显,而用双引号 "
回显会回显 PHP 变量读取它们的值。关于 PHP 中字符串的信息是 nicley 解释的,例如here .
您可以将您的代码 echo HTML video 更改为:
echo '<video width="400" controls="controls" preload="metadata"><source src="' . $filename . '" type="video/mp4"></video>';
请注意,HTML video
标签 src
属性 也缺少双引号,我在上面的代码中添加了它们。
干杯
您的 php 变量在 single quotes 内,并且(来自文档)特殊字符的变量和转义序列出现在单引号字符串中时不会展开。
作为替代方案,您可以将字符串放在单引号之间并使用 sprintf ,这将 return 格式化字符串并使用例如 %s
来指定参数应该作为字符串类型处理。
echo sprintf('<video width="400" controls="controls" preload="metadata">
<source src="%s" type="video/mp4"></video>',
$filename);