2011-05-17 83 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); 
?>