私のコードを自分の望むように動作させるのに問題があります。PHP - ユーザーに基づいて単一のファイルを取得する
私はscandir
を使用してディレクトリからすべてのファイルを取得しています。これは、製品にリンクされたPDFファイルのリストを私に提供しますが、問題は複数の言語のpdfファイルのposibllityにあります。これと同じように:
- 1096_EN.pdf
- 867_PT.pdf
- 914_EN.pdf
- 914_NL.pdf
_
前
IDと言語の後です。そして、私は、ユーザーが製品ごとに1つのファイルしか見ないようにしたい。コードは、2つのファイルを返す914の場合とNLは
$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とPTの場合は1ファイルしか取得できません。914_EN.pdf
、867とNLの場合は0ファイルになります。
ファイルをフィルタリングして最も一致するファイルを返す最良の方法は何ですか?あなただけの単一のアイテムを持っているしたい場合は、あなたが既に持っているのバックログを維持する必要があり
おかげ
一時的にエコーアウトする代わりに 'for'スキャンで埋め込まれた一時配列を使用してください。 'for'の後に空ではない最初の配列インデックスを出力します –