問題タブ [stream-wrapper]
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 - PHPのhttp://ストリームラッパーのテストスタブとしてカスタムストリームラッパーを使用する
組み込みのストリームラッパーを使用するHTTPクライアントクラスの単体テストでスタブとして使用するカスタムストリームラッパーを作成していhttp://
ます。
具体的には、カスタムストリームラッパーによって作成されたストリームの'wrapper_data'
呼び出しによってキーに返される値を制御する必要があります。stream_get_meta_data
残念ながら、カスタムストリームラッパーに関するドキュメントはひどく、APIは直感的ではないようです。
カスタムラッパーのどのメソッドがメタwrapper_data
応答を制御しますか?
var_dump(stream_get_meta_data($stream));
下部のクラスを使用すると、カスタムラッパーで作成されたストリームで次の結果しか得られませんでした...
http://
しかし、実際のストリームラッパーによって返されるデータのクライアントクラスの解析をテストできるように、メタデータの取得で次のようなものを生成するようにラッパーを誘導する必要があります...
カスタムラッパー用に現在持っているコードは次のとおりです。
php - PHPストリームラッパーメタデータ
Hello, world!
カスタムストリームラッパーからそれを使用してコードに情報を渡すことができる必要がありますが、問題が発生しています。最良のオプションが使用されているように見えましたが、ラッパー固有のデータを設定できるメソッドをドキュメントstream_get_meta_data()
で見つけることができませんでした。wrapper_data
これについて行くための最良の方法は何ですか?
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://memory への書き込みにより、内部サーバー エラー 500 が発生する
Stream Wrapperクラスを使用して PHP でカスタム ラッパーを作成しようとしています。私が今持っているものは、かなりシンプルで簡単です。
コードの冒頭で、次を呼び出してストリームを開きますStream::wrap()
。
次に、基本的に、アプリケーション全体で「編集require
」または「編集」されたファイルを読み取ります。include
次に、コードが挿入されphp://memory
、それだけです。まだ特別なことは何もありません。
肝心なのは、このコードが機能するはずだということです。しかし、アプリケーションを実行しようとすると、内部サーバー エラーがスローされます。私のコードが現在ホストされている Linux ホスティング プロバイダー (PHP 5.4.21) があります。
しかし、コードを現在のホスティング会社から他の Linux ホスティング会社 (PHP 5.5.x) に移動すると、すべて正常に動作します。
コードをローカル コンピューター (PHP 5.4.6) に移動して実行すると、すべて正常に動作します。
明らかに、問題は私が現在持っているホスティング会社にあります. 私はそれらを郵送しなければならないことを知っています。しかし、何が問題を引き起こしているのか正確にはわかりません。せめて一定の方向性を示してくれればいいのに。私が今持っているのは
私のコードは、他のサーバーでは正常に動作しているサーバーでは動作しません
残念ながら、それは彼らにとって十分な情報ではありません。
php://memory
256Mに設定されている制限を確認しました。それは十分すぎるはずです。そのため、他に何を探すべきかわかりません。Apache ログにも情報がありませんでした。
だから私は、ここにいる誰かがこの問題の原因を考えていることを望んでいました. おそらく、どこかまたは何かの許可の問題ですか?