私は、特定のディレクトリファイルの内容でtxtファイルを操作するための小さなスクリプトを作ろうとしています。何が起こるのは、Winのコマンドラインに行き、 "dir> file.txt"を実行することによって生成されたテキストファイルが、最初の7行と最後の3のようにこのひどいところに迷惑な行を持っているということです。これらは:php最初の行と最後の行のエコーを防ぐためのカウンタforeachサイクル
O volume na unidade C nao tem nome.
O numero de serie do volume - F879-0704
Directorio de C:\xampp\htdocs\projectX\images\
06-01-2012 14:56 <DIR> .
06-01-2012 14:56 <DIR> ..
.
.
.
140 ficheiro(s) 5.676.057 bytes
2 dir(s) 307.888.893.952 bytes livres
私がこれまで持っているコードは、このです:
$file = $_GET['file'];
$fp = fopen($file, "r");
$data = fread($fp, filesize($file));
fclose($fp);
$end = 0;
$i = 0;
while($end != 1) {
$output = str_replace("\t|\t", " | ", $data);
$output = explode("\n", $output);
foreach($output as $var) {
if($i > 7){
$newstring = substr($var, 36);
echo "File: " . $newstring . "<br />";
}
$i++;
}
echo "<br /><strong>End of file list!</strong>";
$end = 1;
}
は私の質問:は、どのように私はこのforeachのサイクルがあまりにもテキストファイルの最後の行を無視するように得ることができますか?
特定の行番号を無視するよりも直観的なものを作成する方がよいでしょう。それは脆い。代わりに、あなたが気にする行に一致するロジックを構築してください(つまり、文字列または正規表現のマッチング) –
ディレクトリ内のすべてのファイルを取得しようとしているようです。そうであれば、もっと良い方法があります。最も基本的な形式は次のとおりです:http://php.net/manual/en/function.readdir.php – hoppa
PHPが['scandir()'](http ://php.net/scandir)? – kba