生成的HTML显示PHP符号而不是值


generated html shows php symbol instead of value

我希望能够播放所有的音频文件在我的数据库通过嵌入源在播放器。

我已经创建了一个sql查询,它将返回一个包含我所有mp3名称的数组。

然后使用while循环

while($row = mysqli_fetch_array($result)) {
$sourcefile=$row['location'];
echo '<audio controls>';
echo '<source src="$sourcefile" type="audio/mpeg">';
echo "$sourcefile";
echo '</audio>';
}

生成以下html:

<audio controls>
<source src="$sourcefile" type"audio/mpeg">
</audio>

如果我显式地将音频标记中的$sourcefile替换为songname.mp3,它就可以正常工作。

为了确保php变量得到正确的值,我使用了echo语句来查看它包含的值,它确实是songname.mp3.

可能出什么事了?

变量替换只发生在双引号字符串中,而不是单引号字符串中。改变:

echo "<source src='$sourcefile' type='audio/mpeg'>";

你可以试试:

echo "<source src='{$sourcefile}' type='audio/mpeg'>";

或:

<source src="<?php echo $sourcefile; ?>" type="audio/mpeg">

记住 (HTML &PHP)没有标签时不要混合:)