【发布时间】:2016-09-20 10:12:24
【问题描述】:
我无法让我的代码按我想要的方式工作。
我正在使用scandir 从目录中获取所有文件。这给了我一个包含链接到产品的 pdf 文件的列表,但是问题来自于 pdf 文件的多种语言的可能性。像这样:
- 1096_EN.pdf
- 867_PT.pdf
- 914_EN.pdf
- 914_NL.pdf
_ 之前是 ID,语言之后。我希望用户每个产品只能看到一个文件。
我的代码如下所示:
$files = scandir($dir);
foreach ($files as $file)
{
$exp_file = explode("_", $file);
// check file for given ID
if($exp_file[0] == $_GET['iD']){
// check file for userlanguage
if($exp_file[1] == $lang){
echo $file;
}
// check file in english
elseif($exp_file[1] == "EN"){
echo $file;
}
// return available file in other language
else{
echo $file;
}
}
}
对于 914 和 NL,代码返回两个文件。在 914 和 PT 的情况下,我只得到 1 个文件,914_EN.pdf,在 867 和 NL 的情况下,将有零个文件。
过滤我的文件并返回最匹配的文件的最佳方法是什么?我个人认为错误在for循环中,但我找不到合适的出路..
谢谢
【问题讨论】:
-
使用填充了
for扫描的临时数组,而不是直接回显。在for之后,打印第一个不为空的数组索引
标签: php arrays pdf for-loop output