2011-08-26 53 views
1

所以我在我的CentOS服務器上安裝了Java。我現在希望能夠使用PHP來運行HTMLUnit以獲取完全呈現的網頁,然後將結果返回給用戶。用PHP運行HTMLUnit

我在HTMLUnit上看到了「簡單」的例子,但我幾乎不知道Java的情況,也不知道需要去哪裏或運行甚至讓測試用例工作(即獲取Google主頁)。

public void getURL() throws Exception { 
    final WebClient webClient = new WebClient(); 
    final HtmlPage page = webClient.getPage("http://google.com"); // Pass in URL 

    // RETURN "page" 
} 

一旦測試工作,我需要能夠在需要的URL,然後「捕獲」輸出到「通行證」。

到目前爲止谷歌作爲我跑在圈子裏。有沒有人有一個簡單的例子的鏈接,然後指出如何將它與PHP集成?

謝謝!

回答

1

您可以使用PHP的shell_exec()調用啓動HTML單元控制檯行並捕獲輸出。至於代碼,這應該讓你開始:

import java.io.IOException; 
import java.net.URL; 
import java.util.List; 
import java.lang.String; 

import com.gargoylesoftware.htmlunit.Page; 
import com.gargoylesoftware.htmlunit.WebClient; 

public class myClient { 
    public static void main(String[] args) throws Exception { 
     // Create and initialize WebClient object 
     WebClient webClient = new WebClient(); 
     HtmlPage page = webClient.getPage("http://google.com"); // Pass in URL 
     Console.out.println(page.toString()); 
    } 
} 

然後,從PHP:

$html = shell_exec('/bin/javac myClient.java'); 

我不能在此刻進行測試,對於任何代碼錯誤,非常抱歉。用java

 

    import java.io.BufferedWriter; 
    import java.io.IOException; 
    import java.io.OutputStreamWriter; 
    import java.net.URL; 
    import java.util.List; 
    import java.lang.String; 

    import com.gargoylesoftware.htmlunit.Page; 
    import com.gargoylesoftware.htmlunit.WebClient; 
    import com.gargoylesoftware.htmlunit.html.HtmlPage; 

    public class GetHtml { 

     public static void main(String[] args) throws IOException { 
      WebClient webClient = new WebClient(); 
      webClient.getOptions().setThrowExceptionOnScriptError(false); 
      webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 
      webClient.getOptions().setJavaScriptEnabled(false); 
      HtmlPage page = webClient.getPage("http://google.com"); // Pass in URL 
      String originalHtml = page.getWebResponse().getContentAsString(); 
      System.out.println(originalHtml); 
     } 

    } 

從PHP獲取引起

 

    exec("java -jar ", $output); 

$輸出是您預期的數據