0

mod_rewriteルールを介して書き換えられたファイル(アプリと同じサーバーでホストされている)へのURLのみがあると仮定します。

.htaccessファイルや元のURLの作成に使用された書き換えルールに直接アクセスせずに、PHPでそのファイルの内容をどのように読み取るでしょうか。

「src」属性が設定されているすべてのスクリプトタグを抽出し、ターゲットファイルの内容を取得し、それらすべてを1つの大きなJavaScriptファイルにマージして縮小し、代わりにそのファイルを提供しようとしています。

問題は、file_get_contentsを介してすべてのファイルを読み取るとページが遅くなるように見えることです。そのため、別の方法を検討していました。バックグラウンドで他のリクエストを生成せずに、ファイルシステムから直接ファイルを読み取ることができるかどうか。しかし、これを行うには、ファイルへのパスを見つける必要があり、一部は書き換えられたURLを介してアクセスされます。

4

3 に答える 3

1

元のPHPであるかのように含めることはできず、PHP自体の実行結果のみを取得します。

fopenラッパーをオンにしている場合、これは、書き換えられたURLでrequireinclude、またはfile_get_contentsを使用するのと同じくらい簡単です。それ以外の場合は、結果のHTTPリクエストを作成するためのオプションとしてfsockopencurlがあります。

于 2009-05-22T11:29:59.847 に答える
0

リクエストがどのように処理されるかはわからないため、考えられる唯一の解決策は、そのサーバーにHTTPリクエストを送信することです。しかし、それはあなたにそのファイル/スクリプトの出力を得るだけです。

于 2009-05-22T11:25:52.477 に答える
0

PHPはapacheの背後にあり、fopenのような関数やincludeのような関数を使用してファイルシステムレベルでファイルにアクセスできます。これらの関数はOSファイルアクセスルーチンを使用しますが、apacheは使用しないため、このアクセスでは書き換えモジュールは機能しません。

これを行う方法はありませんが、php-scriptで.htaccessと同じURL書き換えのルールを実装します。これは、apache-rewritingとphpファイルアクセスがお互いについて何も知らず、Webアプリケーションの完全に異なるレイヤー上にあるためです。 。

編集後:唯一の方法-phpスクリプトに書き換えルールを実装し、php経由でURLを解析した後にファイルシステムのphpアクセスを使用します(書き換えモジュールではありません)。

于 2009-05-22T11:38:49.423 に答える