2011-08-25 30 views
0

我編寫了以下Java程序來連接google.com,獲取其HTML源代碼作爲回報,在屏幕上打印整個源代碼,然後計算no。代碼中的換行符(<br>)。它工作正常。將Java代碼轉換爲PHP-URL連接和讀取響應

String QUERY = "http://www.google.com"; 

URL url = new URL(QUERY); 

URLConnection connection = url.openConnection(); 

connection.setDoInput(true); 

InputStream inStream = connection.getInputStream(); 

BufferedReader input = new BufferedReader(new InputStreamReader(inStream)); 

String line = ""; 

int count = 0; 

while ((line = input.readLine()) != null) 

    { 

    System.out.println(line); 

    if(line.contains("br")) 

     { 

     count++; 

     System.out.println(count); 

     } 

    } 

問題是,我想在PHP中編寫類似的代碼。 我知道可以使用fopen調用URL,並使用fread讀入String類型變量。

我想知道如何打印它(也許回聲?)。但更重要的是,我如何在源代碼中搜索所需的字符串,而不僅僅是計數否。而且還檢索指定搜索字符串的位置後面的字符串/字符集。

回答

2

這是一個奇怪的請求,你似乎在打印每個單獨的(而不是最後)後打印數字。另外你似乎計數每次contrains一個br只是一次線,但這應該讓你開始爲PHP:

<?php 
$count = 0; 
foreach(file("http://www.google.com") as $line) { 
    echo $line, PHP_EOL; 
    if(strpos('br', $line)) { 
     ++$count; 
    echo $count, PHP_EOL; 
    } 

} 
+0

謝謝,它讓我開始...雖然我barely.When運行這段代碼,我的瀏覽器打開谷歌,而不是檢索其HTML,並呼應'計數'。 – Nibhrit

+1

沒有。它只是逐行打印www.google.com的內容,如果你在瀏覽器中調用它(java版本似乎在cli上調用,所以我認爲你也可以在cli上使用php版本),它會解釋html。如果您希望在瀏覽器中看到純HTML代碼(無論出於何種原因),請圍繞$ line變量換行「htmlspecialchars」函數調用。 – edorian

+0

哇。這樣可行!謝謝 :) – Nibhrit