【发布时间】:2016-09-17 00:54:12
【问题描述】:
我目前正在开发一个树莓派,我在上面放了一个 apache 服务器,并且还连接了一个扬声器。
我想要做的是通过点击 html 网页上的某个按钮让覆盆子播放一些音乐。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-" />
<title>Sons</title>
</head>
<body>
<p>Voici les son que le cone est capable de produire:<br />
<ul>
<li>Chien</li>
<form method="post" action=""
<p>
<input type="submit" name="Envoyer" value="Poster"/>
</p>
</form>
<li>Alarme</li>
<li>Buzzer</li>
</ul>
<p/>
<?php
if(isset($_POST['exec']))
{
if(isset($_GET['action']) && $_GET['action']=='yes')
{
$cmd=exec(escapeshellcmd('/usr/bin/mpg123 /var/www/html/chien.mp3'));
$cmd=exec(escapeshellcmd('mv /var/www/html/test.txt /var/www/html/images/'));
if(!$cmd)
{
echo "C'est bon";
}
else
{
echo "Nope";
}
}
}
echo '<form method="post" action="Son.php?action=yes">
<input type="submit" name="exec" value="Executer">
</form>';
?>
</body>
</html>
所以我使用 mpg123 在树莓派上播放音乐,当我在 shell 中键入命令时它工作得很好,但在 PHP 部分却没有。
奇怪的是,仅移动 .txt 文件的命令 mv 实际上正在工作,而另一个却没有。
谢谢你的帮助,我现在真的不知道该怎么办,我刚开始学习 HTML 和 PHP,所以我还是有点困惑。
【问题讨论】:
-
您的问题似乎不在于执行 shell 命令。我建议了新标题。
-
我认为这个命令
mpg123 chien.mp3需要退出才能正确加载PHP页面。尝试在末尾加上 &。mpg123 chien.mp3&运行结束立即退出。 -
嘿,感谢您的帮助。在末尾添加 & 不会改变任何内容。我应该在标题中写什么?
-
尝试指定文件的完整路径,例如
mpg123 /var/www/chien.mp3或任何地方。还要检查错误日志,看看它是否因权限原因而失败。 -
我尝试了完整路径,但仍然是同样的问题,我还检查了 apache2 的 error_log 文件,没有权限错误。
标签: php html shell raspberry-pi