使用Java从网站读取php文件?

时间:2012-10-30 11:05:27

标签: java php execute

我知道您可以使用Java从以下网站执行php文件:

URLConnection conn = new URL("http://localhost/file.php").openConnection();
conn.connect();

但是有可能让Java将php文件作为文本文件读取吗? (可能通过使用BufferedReader)

谢谢。

1 个答案:

答案 0 :(得分:2)

如果您的意思是阅读php来源,那么答案是否定的 - 您无法在典型的网络服务器配置中阅读php来源。在大多数情况下,允许它是非常不安全的 - 密码和其他常量通常存储在php源代码中。

但是,如果您只是想读出执行php文档的结果,就像浏览器一样,您可以使用类似的内容;

URL u = new URL("http://www.example.com/my/php/doc.php");
URLConnection c = u.openConnection();
InputStream r = c.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(r));
for(String line; (line = reader.readLine()) != null;) System.out.println(line);

要通过http读取远程php文档的来源,需要将网络服务器配置为解析&执行该文件,而不是盲目地将其作为纯文本文件提供。

这可以通过几种方式实现;

  1. 卸载php - 没有php引擎,没有代码执行。
  2. 更改文件扩展名 - apache实际上只是按文件扩展名识别文件,因此在很多情况下将其更改为.phpsource都可以解决问题。
  3. 更改apache配置 - 全局或通过.htaccess可以更改单个目录的Web服务器配置。您可能希望执行php_flag engine offRemoveHandler .php
  4. 之类的操作

    请注意,只有第一个,可能第二个上面的方法不会打开服务器中的潜在安全漏洞。所以要谨慎使用。