Php 函数在一段时间内只返回1个结果
我想选择文件夹中的所有上传文件。我创建了一个函数:Php 函数在一段时间内只返回1个结果,php,Php,我想选择文件夹中的所有上传文件。我创建了一个函数: if (!defined('select_uploads')) { function select_uploads() { $adresse="partials/rapport_qualite/uploads/"; //Adresse du dossier. $dossier=Opendir($adresse); //Ouverture du dossier. while ($
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>';
}
}
}
}
if(!defined('select_uploads'))
{
函数select_uploads()
{
$adresse=“partials/rapport_qualite/uploads/”;//adrese du docsier。
$dossier=Opendir($ADRESE);//文件的格式。
而($Fichier=readdir($dossier))
{
如果($Fichier!=“&&&$Fichier!=”)//filter反点!
{
返回“.$Fichier.”;
}
}
}
}
使用此函数,我只有一个结果,而不是所有文件。现在,当
条件满足时,如果条件满足,它将返回该特定选项,并中断循环和函数。
您应该使用所有选项创建字符串
,然后返回字符串
-
$options = '';
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." && $Fichier != "..") // Filtre anti-point !
{
$options.= '<option value="'.$Fichier.'">'.$Fichier.'</option>';
}
}
return $options;
$options='';
而($Fichier=readdir($dossier))
{
如果($Fichier!=“&&&$Fichier!=”)//filter反点!
{
$options.=''.$Fichier';
}
}
返回$options;
如果从函数中调用,return语句将立即结束当前函数的执行,并将其参数作为函数调用的值返回
如果您使用的是PHP>=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;
}
if(!defined('select_uploads'))
{
函数select_uploads()
{
$adresse=“partials/rapport_qualite/uploads/”;//adrese du docsier。
$dossier=Opendir($ADRESE);//文件的格式。
而($Fichier=readdir($dossier))
{
如果($Fichier!=“&&&$Fichier!=”)//filter反点!
{
收益率“.$Fichier.”;
}
}
}
}
foreach(选择_uploads()作为$fileUpload){
echo$fileUpload;
}
虽然将标记从select_uploads()中移到foreach循环中会更干净,但如果使用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;
}
if(!defined('select_uploads'))
{
$tempvar='';
函数select_uploads()
{
$adresse=“partials/rapport_qualite/uploads/”;//adrese du docsier。
$dossier=Opendir($ADRESE);//文件的格式。
而($Fichier=readdir($dossier))
{
如果($Fichier!=“&&&$Fichier!=”)//filter反点!
{
$tempvar.'='.$Fichier.';
}
}
}
返回$tempvar;
}
return打破了循环。。。因此,使用另一种逻辑还有一件事,当从目录中读取文件时,您确实应该针对FALSE
进行测试,而不是检查假值。一个名为0
或false
的文件将过早地跳出循环:如果($fichier=readdir($dossier))!==false){…}
。做得好,我添加了测试。感谢您的帮助,您是否意识到PHP5.4将在未来两个月内寿终正寝,甚至PHP5.5也只是安全修复?