問題タブ [recursiveiterator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - RecursiveIteratorIterator とネストされた RecursiveArrayIterator
ネストされたオブジェクトをツリーとして処理するために RecursiveArrayIterators をいじっています。次のコードは、結果が期待する値の一部しか返さないため、気になります。主に、ルートノードは決して繰り返されないようです。少し長く見つめすぎたような気がしますが、これで正しい軌道に乗っていることを確認したかったのです.
という結果に・・・
ルート ノードはどこにありますか?
答え
Sven の答えは、これを正しく処理するために過労した私の脳を混乱させました。これは、他の誰かが同様のことを試みている場合に備えて、成功したコードの最後のビットです。
php - ストリーム ラッパーを使用して S3 バケットを反復処理する
Amazon S3 バケット内のすべてのアイテムを一覧表示しようとしています。その中にいくつかのネストされたディレクトリがあります。
- dir1/
- dir1/subdir1/
- dir1/subdir2/
- dir1/subdir3/
- dir2/
- dir2/subdir1/
- dir2/subdir2/
- ...
各サブディレクトリには、いくつかのファイルが含まれています。このファイル構造でネストされた配列を取得する必要があります。
Amazon AWS SDK for PHP 2.4.2 を使用しています
これは私のコードです:
ただし、結果には、ディレクトリ/サブディレクトリ (プレフィックス付きのファイル) にあるファイルやディレクトリ自体ではなく、バケットにあるファイルのみが一覧表示されます。
繰り返して($dir.'/folder')
も結果はまったくありません。
イテレータのコンストラクタに 2 番目の引数として渡すRecursiveIteratorIterator::SELF_FIRST
と、第 1 レベルのディレクトリのみが取得され、サブディレクトリは取得されません。
AWS ストリームラッパーと PHP RecursiveIterator を使用して、バケット内のすべてのディレクトリにあるすべてのファイルを一覧表示するにはどうすればよいですか?
誰かが私を助けてくれることを願っています。
ありがとうございました!
php - PHP 再帰イテレータの奇妙な動作
PHP の再帰イテレータの非常に奇妙な動作を見つけました。子の配列キーが 0 から始まる数値キーでない場合、子は反復されません。例は次のとおりです。
以下は期待どおりに機能します。
出力:
同じコードですが、子キーは 2 から始まります。
出力は空です。
それはバグですか、それとも何ですか?PHP のバージョンは 5.3.27/Windows x86 です。
php - メインフォルダーのみを取得し、サブフォルダーは取得しません
次のコードを使用して、サブフォルダーのないメイン フォルダーを取得します。
現在のように、このコードは印刷されます
「ここがメインフォルダです」という機能はありますRecursiveDirectoryIterator
か?RecursiveIteratorIterator
または、回避策のコードを使用する必要がありますか? はいの場合、そのコードはどのようになりますか?
php - ディレクトリのコンテンツを圧縮してダウンロードした後、ディレクトリを再帰的に削除すると失敗する
この SO スレッドに従って、ディレクトリを再帰的に削除しました (以下のコードを参照)。問題は、ディレクトリの内容を圧縮して zip ファイルをダウンロードした後、これらのコマンドを実行できないことです。
私が言ったように、フォルダーの圧縮が関係していない場合、コードは問題なく機能するため、ファイル/フォルダーのアクセス許可は問題ではないようです。
誰にもアイデアはありますか?
php - ファイルの名前変更時にphp再帰イテレータが失敗する
次のアイテムに移動する RecursiveIteratorIterator に問題があります。複数のファイルを含むディレクトリがあり、各ファイルに移動して名前を変更し、その他の操作を実行しようとしています。RecursiveIteratorIterator は、ディレクトリから最初のファイルを選択し、その名前を正常に変更します。$it->next() を実行すると、同じファイルにとどまり、既に別の名前に変更されているファイルを検索しようとします。以下は私のコードサンプルです。ファイルのパーミッションは 777 に設定されています。
これは、ファイルの名前を変更した場合にのみ発生します。名前の変更機能を削除すると、期待どおりに次の項目に移動します。
}
php - ネストされた RecursiveIteraotrs
RecursiveIterator インターフェイスを使用して、ネストされたオブジェクトを反復処理したいと考えています。HeadHunterEntity オブジェクトは、多数の CandidateEntities を持つことができます。メイン ループですべての CandidateEntities を反復処理したいのですが、何か問題があります。
私はこのようなメインループを持っています:
RecursiveHunterCandidatesIterator
結果は予想外です。メインループには何もありません:(
しかし、代わりに $childIterator2 を返すと、メイン ループに期待どおりの結果が得られます。
$this->current()->getHuntedCandidates() は配列を返すので、$childIterator2 の偽の 1,2,3 配列のようにメイン ループにある必要があります...
私は何を間違っていますか?
php - RecursiveDirectoryIterator と Zip Archive の速度は?
RecursiveDirectoryIterator を使用してフォルダーを zip したいのですが、すべてのファイルを組み合わせて 600 MB 以下のサイズの非常に複雑なディレクトリをどれくらい高速に圧縮できますか?
これは使用しているコードです:
では、非常に複雑なディレクトリを圧縮するには、およそどのくらいの時間がかかりますか? メモリの問題に直面しますか?とにかく、ajax を使用しているため、ブラウザがクラッシュしたり、ブラウザのページが応答しなくなったりすることはありません...しかし、それでもどのくらい時間がかかりますか?