私は、個人的な練習として「PHPコードをオンラインで書く」可能性を与える人気のあるWebサイトのプライベートクローンを作成しようとしています.
- テキストエリアにコードを書く
- コードはサーバー側で何らかの方法で実行されます
- 出力が返されます
コードが生成したすべてのエラーと警告を使用して、Apache インスタンスによって提供される場合とまったく同じように出力したいと考えています。
サイトの Web ページ (フロント コントローラー、orm など) を提供する既存のフレームワークがあるため、PHP INI で無効化機能を使用できません。または、すべてがまったく使用できなくなります。
入力をファイルに保存してから、次のようなexecで実行しようとしました:
exec("php -c mycustomphpinifile input.php 2>&1 > output.txt");
ただし、出力されるエラーは apache のものと同じではありません。
私が採用しようとしている最終的な解決策は、httpd.conf または .htaccess 内で php_value または php_admin_value を使用して、(ご想像のとおり) 危険な関数のリスト全体を無効にすることです。
でも...
php_value disable_functions "my,functions,comma,separated"
見た目ほど大きなリストでは機能しません。2k 関数などを無効にする必要があります。htaccess 内の php_value にバッファ サイズの問題はありますか? 誰でもこの問題の解決策を推測できますか?