2011-05-17 81 views
0

我需要任何鏈接有一個「a href =」標記當點擊通過捲曲接收。我無法硬編碼這些鏈接,因爲它們來自動態網站,因此可能是任何事情。我將如何實現這一目標?php捲曲點擊鏈接

謝謝

編輯:讓我解釋更多。我的電腦上有一個應用程序,它使用Web前端。它編目文件,並給出選擇重命名刪除等。我想添加一個公共視圖,但如果我把它放在線上,然後任何人都可以刪除重命名文件。如果我捲曲頁面,我可以通過使用不同的CSS來刪除菜單欄和編輯選項。這部分全部有效。唯一不起作用的部分是,如果我點擊頁面上的鏈接,它會將我引導回原始鏈接地址,並在菜單欄返回時擊敗該點。我需要它來捲曲點擊鏈接。希望更有意義..

這是我的代碼,獲取原始鏈接和捲髮,並更改CSS指向我自己的CSS。它將java腳本指向原始文件,因爲我不需要更改它。我現在需要做的頁面上的「A HREF」鏈接,當點擊來自捲曲調用,而不是去原目的地

<?php 


$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, 'http://192.168.0.14:8081/home/'); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
$curl_response = curl_exec($ch); 
curl_close($ch); 

//Change link url 

$link = $curl_response; 

$linkgo = '/sickbeard_public'; 
$linkfind = 'href="'; 
$linkreplace = 'href="' . $linkgo ; 

$link = str_replace($linkfind, $linkreplace, $link); 

//Change js url 
$js = $link; 

$jsgo = 'http://192.168.0.14:8081'; 
$jsfind = 'src="'; 
$jsreplace = 'src="' . $jsgo ; 

$js = str_replace($jsfind, $jsreplace, $js); 


//Fix on page link errors 
$alink = $js; 
$alinkgo = 'http://192.168.0.14:8081/'; 
$alinkfind = 'a href="/sickbeard_public/'; 
$alinkreplace = 'a href="' . $alinkgo ; 

$alink = str_replace($alinkfind, $alinkreplace, $alink); 

//Echo page back 
echo $alink; 

?> 
+1

你希望做代理? – 2011-05-17 09:22:33

+0

請將代碼粘貼到代碼塊中... – 2011-05-17 09:41:01

回答

0

你可以使用正則表達式

// insert general warning about how parsing HTML using regex is evil :-) 
preg_match('/href="([^"]+)"/', $html, $matches); 
$urls = array_slice($matches, 1); 

// Now just loop through the array and fetch the URLs with cUrl... 
0
抓住所有的網址

雖然我無法想象爲什麼你會這樣做,我認爲你應該使用Ajax。 在每個標籤上附加一個事件,並將它們發送到服務器上發生捲曲魔術的腳本。 無論如何,你應該解釋爲什麼你需要用curl來獲取數據。

+0

這個代碼的代碼如何?調用curl腳本「curllink.php」 – Michael 2011-05-17 09:44:15

0

至於我能理解你的問題,你需要獲得通過捲曲URL的內容...所以這裏是解決方案

<a href="<?php print $my_url; ?>" id="my_link">Click here to get via curl </a> 

隨後與上述<a>標籤附加一個事件,例如在JQuery中

$("#my_link").click(function(){ 
    var target_url = $(this).attr("href"); 
    //Send an ajax call to some of your page like cURL_wrapper.php with target_url as parameter in get 
}); 

然後在cURL_wrapper.php做follwoing

<?php 
//Get the $target_url here from $_GET[]; 
$ch = curl_init($your_domain"); 
$fp = fopen("$target_url", "r"); 

curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
?>