php动态生成复选框列表

我几乎是个PHP小白,但做一个项目正需要php动态生成复选框列表,我是从几个代码段里总结实验后得到我想要的结果,完美实现动态生成复选框列表。我感觉这个比java或其他语言要简单(关键代码30行),条理也清晰,也可能是别的语言我不懂。
先说一下项目要求:
  1. 扫描/home/pi/music/目录下的音乐文件并生成文件列表文件(txt)。
  2. 删除文件中的非音乐文件。
  3. 以列表文件为内容动态生成复选框列表。
  4. 选择以后按确定按钮,生成mplayer播放的list文件,供mplayer调用(本例尚未完成)。
实现思想:php和shell配合以txt文件做为数据交换完成要求。
实现方法:
  1. 扫描生成列表文件:
    ls /home/pi/music/ >musicfilet1122.list
    之所以用这个一个比较奇怪的名字是因为尽量不要与本来的音乐文件有重复,如有重复会被后面的sed删除。
  2. 因为mplayer要求播放列表文件必须与音乐文件在同一文件夹,所以虽然第一次没问题,但以后再用的时候,文件列表内必然有一个musiclist1122.list文件,所以必须删除。
    sed -i ‘/^musicfile1122/d’ muscifile1122.list
  3. 将上面两行代码写入sh文件中,以供php文件调用。
    musicfile1122.sh代码:
#! /bin/bash
cd /home/pi/music
ls >musicfile1122.list
sudo sed -i  '/^musicfile1122/d' musicfile1122.list
  1. 生成复选框列表,这部分是根据几段代码组成的,由于原内容网址不记得,所以没贴出来,在此感谢各位大神!这里的代码基本我解释不了,拿来就用也基本没问题。里面也有一些东西要优化,以后优化好了,再贴出来。不多说,直接上全部代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>音乐列表生成</title>
</head>
<body>
<h2>#####音乐列表已生成……</h2>
<h3>请选择要播放的歌曲:</h3>
</body>
</html>

<?php
$cmd='sudo bash /home/pi/musicfile1122.sh';
shell_exec($cmd);
?>

<?php //定义生成列表数函数
function all_checkboxes($name,$options, $default=array()) {
   if (!is_array($default)){
     $default = array();
   }
   foreach($options as $value => $label) {
      $html .= "<input type=checkbox ";
      if (in_array($value, $default)){
        $html .= "checked ";
     }
     $html .= "name=\"{$name}[]\" value=\"$value\">";
     $html .= $label . "<br>";
   }
   return($html);
}
//打开列表文件
$file = fopen("musicfile1122.list", "r");
$options=array();
$i=0;
//输出文本中所有的行,直到文件结束为止。
while(! feof($file))
{
 $options[$i]= fgets($file);//fgets()函数从文件指针中读取一行
 $i++;
}
fclose($file);
$options=array_filter($options);

$html = all_checkboxes("interests",$options, $interests);
?>

<form action="" method=post>
<?php echo $html;?>
<input type=submit value="确定">
</form>


<?php //显示选择结果
foreach($_REQUEST as $k=>$v){
 echo $k;echo "--";
 echo $v;echo "</br>";
}

echo "</br>";

if(isset($_POST['interests'])){
 foreach($_POST['interests'] as $k=>$v){
  echo $k;echo "--";
  echo $v;echo "</br>";
 }
}
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kim5659

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值