簡體   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