我搜索了SO以寻找我想要的这个功能的答案,但我需要的是有些独特的吗?
我有一个输入元素,我输入子文件夹的名称,点击提交,并通过PHP或其他方式生成该指定文件夹中的图像名称列表。这是本地的,没什么特别的。
<form action="Make_List.php" method="post">
<input type=text name="location"/>
<input type=submit/>
</form>
<div id="List_Generated"> //desired output.
<span>A.jpg</span>
<span>B.jpg</span>
<span>C.jpg</span>
<span>D.png</span>
</div>
我不知道在Make_List.php中放什么,或者它甚至可以在本地工作。我确实在网上找到了这个:
//path to directory to scan
$directory = "../images/team/harry/" ( + sub-folder name );
//get all image files with a .jpg extension.
$images = glob($directory . "*.jpg");
//print each file name
foreach($images as $image)
{
echo $image;
}
但Firefox不知道该怎么做,它要求我打开或保存.php文件。关于SO(本地部分)的一些类似问题暗示我不需要PHP吗?
任何提示或指示都会有所帮助。
答案 0 :(得分:2)
PHP需要处理服务器环境。您可以在自己的计算机上本地运行服务器。谷歌安装apache + php。如果你有支持PHP语言的托管,你可以在那里测试你的代码。
您的网络浏览器无法运行PHP代码。解释器运行脚本,它们是将PHP解释器插入http服务器即apache的模块。然后Apache将运行代码并返回结果,如果它被指示通过其配置处理特定模块的.php。
答案 1 :(得分:0)
使用
//path to directory to scan
$directory = "full/path/to/images/team/harry/" . $_POST['location'];
foreach (glob($directory."*.jpg") as $filename) {
echo $filename;
}
答案 2 :(得分:0)
以下是您使用的更好示例,无需键入子目录:
<?php
//Get subfolder list
$folders = glob('../images/team/harry/*',GLOB_ONLYDIR);
?>
<form action="" method="post">
<select name="location" onchange="javascript:this.form.submit()">
<option>-Choose Subdir-</option>
<?php
foreach($folders as $folder){
echo '<option value="'.basename($folder).'">'.basename($folder).'</option>'.PHP_EOL;
}
?>
</select>
</form>
<?php
//List of files once post was submitted
if(isset($_POST['location'])){
echo '<div id="List_Generated">';
$files = glob('../images/team/harry/'.basename($_POST['location']).'/*.jpg');
foreach($files as $file){
echo '<span>'.basename($file).'</span>'.PHP_EOL;
}
echo '</div>';
}
?>
答案 3 :(得分:0)
是的,这种事情可以做,但有以下限制:
实际上,您仅限于您的计算机或每个计算机环境受到控制的Intranet中的计算机;不是互联网。
我不是专家,而是here's a good introduction。您至少需要阅读简介和标题为“阅读目录内容”的部分。