2012-05-14 94 views
0

我在PHP中使用捲曲檢索一個簡單的HTML頁面:PHP:相對於絕對URL在curl'ed HTML

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://example.com/server"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
?> 

include荷蘭國際集團它在我的網站文件:

<?php include('curlingCodeAbove.php');?> 

我想用絕對URL替換curl ed HTML中的相對URL。我熟悉Change a relative URL to absolute URL,但我試圖將該解決方案插入此代碼失敗。

回答

1

我自己修復了。設置CURLOPT_RETURNTRANSFER標誌。

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://example.com/server"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$result = curl_exec($ch); 
curl_close($ch); 
$result = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#",'$1http://mydomain.com/$2$3', $result); 
echo $result 
?> 

儘管接受自己的答案可能是一種糟糕的形式,嘿,我是那個想出來的人。

0

我做的方式是搜索="/="http://www.example.com/

例如更換:

$replaces['="/'] = '="http://www.example.com/'; 
$output = str_replace(array_keys($replaces), array_values($replaces), $output); 

我沒有檢查這一點,但它應該做你所需要的。

+0

這個問題並沒有將相對URL單獨改爲絕對URL。這個答案與原始問題相關。我關心的是如何處理捲曲代碼,因爲我無法找到一種方法來修改'curl_exec'發送給第二個文件的內容,然後才顯示它? – mgold