从java运行php

时间:2009-09-01 19:09:34

标签: java php

有没有办法从java程序运行php server **(remote)**脚本(带有安全/加密连接)。

5 个答案:

答案 0 :(得分:3)

从您的java程序访问(发布或获取HTTP请求)php页面,例如,通过HttpUrlConnection类型

答案 1 :(得分:1)

如果您想要安全连接,请务必使用HTTPS(而不是HTTP)。

服务器需要支持ssl,如果你正在使用Apache,请确保你有mod_ssl

答案 2 :(得分:0)

如果脚本无法通过Web访问,则可以通过SSH连接到远程服务器(例如,使用SSHTools)并从shell运行脚本(php scriptfile.php)。

答案 3 :(得分:0)

尝试Caucho Quercus,PHP的Java实现。我确实尝试过,非常好 http://quercus.caucho.com/

Quercus是Caucho Technology在开源GPL许可下发布的PHP 5的100%Java实现。 Quercus附带了许多PHP模块和扩展,如PDF,PDO,MySQL和JSON。 Quercus允许将Java服务与PHP脚本紧密集成,因此将PHP与JMS或Grails结合使用是一种快速而轻松的尝试。

使用Quercus,PHP应用程序会自动利用Java应用程序服务器功能,就像连接池和群集会话一样。

Quercus实现了PHP 5和越来越多的PHP扩展,包括APC,iconv,GD,gettext,JSON,MySQL,Oracle,PDF和Postgres。许多流行的PHP应用程序将运行,如果不是更好,将比标准的PHP解释器直接开箱即用。越来越多的经过Quercus认证的PHP软件包括DokuWiki,Drupal,Gallery2,Joomla,Mambo,Mantis,MediaWiki,Phorum,phpBB,phpMyAdmin,PHP-Nuke,Wordpress和XOOPS。

答案 4 :(得分:0)

在Java中检查myfile.php的输出(可能会工作):

Runtime rt = Runtime.getRuntime();
String[] commands = {"wget","external_src_url.com/myfile.php","&&""php", "myfile.php",};
Process proc = rt.exec(commands);

BufferedReader stdInput = new BufferedReader(new 
     InputStreamReader(proc.getInputStream()));

BufferedReader stdError = new BufferedReader(new 
     InputStreamReader(proc.getErrorStream()));
String s = null;
while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
while ((s = stdError.readLine()) != null) {
    System.out.println(s);
}

Java Runtime.getRuntime(): getting output from executing a command line program上使用@senthil的答案。