0

このサイトにアクセスして Android で Phpcgi を実行できることがわかりました。Android でWeb サーバーを作成しましたが、正常に動作し、Php cgi をインストールしました。両方をリンクして、PHP スクリプトをHTML ページも同様です。どんな助けでも大歓迎です。

アップデート:

私の Request Processor では、out は次のように送信されます。

contentType = guessContentTypeFromName(filename);
Date now = new Date( );
  out.write("Date: " + now + "\r\n");
  out.write("Server: JHTTP/1.0\r\n");
  out.write("Content-length: " + theData.length + "\r\n");
  out.write("Content-type: " + contentType + "\r\n\r\n");
  out.flush( );

推測コンテ....()

if (name.endsWith(".php")) {  


         String pathToPhpExecutable = Environment.getExternalStorageDirectory() + "/data" + "/php-cgi";
         String phpFile ="" + "/php/myPhpFile.php";

         Process process = null;
        try {
              process = new ProcessBuilder()
             .command(pathToPhpExecutable, phpFile)
             .redirectErrorStream(true)
             .start();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

         try {



         } finally {
             process.destroy();
         }
4

1 に答える 1

2

ProcessおよびProcessBuilderクラスを使用して、コマンドを作成および実行できます。実行するプロセスによっては、ルート権限が必要になる場合があり、ルート化されていない Android デバイスでは機能しないことに注意してください。

String pathToPhpExecutable = getFileDir() + "/php-cgi";
String phpFile = getFileDir() + "/php/myPhpFile.php";

Process process = new ProcessBuilder()
.command(pathToPhpExecutable, phpFile)
.redirectErrorStream(true)
.start();

try {
    InputStream in = process.getInputStream();
    // Read the input stream and i.e. display the results in a WebView
} finally {
    process.destroy();
}

ネーミングに惑わされないでください。Processドキュメントによると、にgetInputStream()接続されたストリームの出力を返しますstd::out。これにより、PHP によって生成されたコード (Json、HTML、プレーン テキスト) が返されます。

ただし、それを機能させるには root が必要になる可能性があります。または、APK からファイルを解凍するときに、ファイルに実行権限 (Linux では x) がありません。chmodただし、またはchown(間違ったユーザー名に割り当てられている場合) を呼び出すには、ルート化された Android デバイスが必要になる可能性が高くなります。

于 2013-08-20T14:40:08.507 に答える