2012-09-17 79 views
0

有一個網站會在您每次加載頁面時輸出一組新的數字,以實現更安全的登錄,並且我試圖自動化該過程。現在,由於該網站實際上並未將其放入html格式,而只是在第一行顯示輸出。解析非html網站

例:

DChar = 'c2adf7354aa1f505b8a96b81017e8837';

我該如何解析並使用它將它保存爲一個字符串?! DOM功能不起作用,因爲它不是一個真正的網站,只是一個輸出。我一直在用javascript嘗試它,但如果你能想出一種PHP或XML的方式,那就一樣好。還有一件事,在PHP中你會認爲你可以使用

file_get_contents('html');

但由於某些原因,它不會連接到運行javascript的服務器,輸出我想分析的內容。 PHP無法將服務器連接到服務器?我最好的猜測是爲什麼它至少不起作用。

感謝您提前提供的所有幫助!

+0

如果他們不讓你進入系統,那麼爲什麼你試圖分叉系統? – swapnesh

+0

我有點困惑:我得到,你試圖檢索沒有HTML內容的頁面,而只是一行文本,但我不明白你想用什麼語言來檢索該頁面。 – icktoofay

+0

@swapnesh爲了方便我很懶:P –

回答

1

如果這是一個正常的網頁,您可以手動輸入到地址欄中,並且我明白您要做什麼,那麼使用PHP,您應該可以使用file_get_contents(「url-for-the-page」 );

然後你可以使用像這樣的正則表達式preg_match("'([^']*)", $string, $results);來選擇單引號內的部分。

如果它是一個「正常」的網頁,不明白爲什麼這種方法不起作用,它在過去對我來說工作得很好。

話雖如此,你說它不適合你。如果您需要更多控制權,您可以嘗試PHP cURL。這裏是一個從cURL網站取得的例子,它把一個HTML頁面放入一個php變量中。

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://www.myurl.com/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
$result=curl_exec ($ch); 
curl_close ($ch); 
?> 

請記住,如果自的file_get_contents()函數沒有工作,似乎這是地方爲安全起見,它可能是一個複雜得多(或者是一個壞主意)做什麼你之後並且可能更容易遵循安全流程。

0

試試這個:

<?php 
$site = 'SITE_URL_HERE'; 

$data = file_get_contents($site); // may use curl also. 

// suppose $data="DChar='c2adf7354aa1f505b8a96b81017e8837';", 
// and you want the value within the quotes. 

$data = explode("'", trim($data)); 

// result is in $data[1] 
?> 

希望它能幫助。