CSVファイルを一時フォルダに保存するスクリプトがあります。このフォルダでは、別のスクリプトが自分のDBにインポートするためにそれをピックアップするまで残っています。これは分離されたスクリプトであり、さまざまな理由で一時フォルダへの配置と連続するデータベースのインポートの両方を行うことはできません。PHP - foreach()なしでフォルダ内のファイルのみを選択しますか?
私は分離されたインポートスクリプトを持っているので、まず一時フォルダをスキャンして、インポートファイルを探してください。これは、フォルダ内の唯一のファイルですが、定義する。私の質問は今、ファイルのファイル名をどのようにして変数に代入し、後でデータベースのインポートに使うことができるのでしょうか?
foreach()
ループを使用すると、配列で終わりますが、後で使用するための文字列が好きです。 scandir
以来
PHP
if(file_exists('./'.$temp)) {
$files = scandir('./'.$temp.'/');
foreach ($files as $attachment) {
if (in_array($attachment, array(".",".."))) continue;
$import_file = $attachment;
}
} else {
die("Temp Folder for $temp could not be found, hence no files exist for import. Operation cancelled.");
}
良い考えですが、 '.'と' ..'はUNIXサーバ(AFAIK)にしか存在しませんので、このスクリプトをUnix以外のマシンで実行するとどうなりますか?また、コードを実行すると、 'Undefined offset:2'エラーが発生します。 – Armitage2k
@ Armitage2k良い点。編集されました。 – Toastrackenigma
はまだ未定義オフセット:0'エラーが発生します。 'scandir'は本当にそのフォーマットをサポートしていますか? – Armitage2k