我想选择文件夹中的所有上传文件。我创建了一个函数:
if (!defined('select_uploads'))
{
function select_uploads()
{
$adresse="partials/rapport_qualite/uploads/"; //Adresse du dossier.
$dossier=Opendir($adresse); //Ouverture du dossier.
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." && $Fichier != "..") // Filtre anti-point !
{
return '<option value="'.$Fichier.'">'.$Fichier.'</option>';
}
}
}
}
使用此功能,我只有一个结果而不是所有文件。
答案 0 :(得分:1)
现在,当满足if
条件时,它将返回该特定选项,并break
loop
和function
。
您应创建一个string
,其中包含所有option
,然后return
string
-
$options = '';
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." && $Fichier != "..") // Filtre anti-point !
{
$options.= '<option value="'.$Fichier.'">'.$Fichier.'</option>';
}
}
return $options;
如果在函数内调用,则return语句会立即结束当前函数的执行,并将其参数作为函数调用的值返回。
答案 1 :(得分:1)
如果您使用PHP&gt; = 5.5.0,那么您可以将您的功能转换为生成器
if (!defined('select_uploads'))
{
function select_uploads()
{
$adresse="partials/rapport_qualite/uploads/"; //Adresse du dossier.
$dossier=Opendir($adresse); //Ouverture du dossier.
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." && $Fichier != "..") // Filtre anti-point !
{
yield '<option value="'.$Fichier.'">'.$Fichier.'</option>';
}
}
}
}
foreach(select_uploads() as $fileUpload) {
echo $fileUpload;
}
虽然将标记移出select_uploads()并转移到foreach循环中会更清晰
答案 2 :(得分:0)
如果使用return语句,则返回结果,之后循环将不会运行。因此,您必须将所有结果连接到字符串并返回该字符串。 试试这个
if (!defined('select_uploads'))
{
$tempvar='';
function select_uploads()
{
$adresse="partials/rapport_qualite/uploads/"; //Adresse du dossier.
$dossier=Opendir($adresse); //Ouverture du dossier.
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." && $Fichier != "..") // Filtre anti-point !
{
$tempvar.'= '<option value="'.$Fichier.'">'.$Fichier.'</option>';
}
}
}
return $tempvar;
}