2013-04-24 64 views
0

我正在使用CURL調用API。該調用返回一個HTML DOM樹,我在iframe中回顯。問題是,基地網址是指我自己的網站,而不是API的網站。例如:<script type="text/javascript" src="/swf/swfobject.js"></script>將引用我的網站而不是API的。我已經看過CURL設置選項,但是我找不到我在找什麼,有人可以幫我嗎?我嘗試使用preg_replace工作,但我有很多不同的不可預知的鏈接。 (和它的方式骯髒的!)iframe中的PHP CURL更改基礎url?

代碼捲曲呼叫:

function CallAPI($method, $url, $data = false) 
{ 
    $curl = curl_init(); 

    switch ($method) 
    { 
     case "POST": 
      curl_setopt($curl, CURLOPT_POST, 1); 

      if ($data) 
       curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
      break; 
     case "PUT": 
      curl_setopt($curl, CURLOPT_PUT, 1); 
      break; 
     default: 
      if ($data) 
       $url = sprintf("%s?%s", $url, http_build_query($data)); 
    } 

    // Optional Authentication: 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    //curl_setopt($curl, CURLOPT_USERPWD, "username:password"); 

    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

    return curl_exec($curl); 
} 


$output = CallAPI($method, $url, $data); 

echo $output; 

HTML:

<iframe src="videorecorder.php" frameBorder="0" scrolling="no"></iframe> 

請幫幫我!

感謝

回答

1

CURLOPT_REFERER

curl_setopt($curl, CURLOPT_REFERER, $referer); 
+0

謝謝,但它不是爲我工作。也許我做錯了什麼。我把這一行放在switch語句之後:'curl_setopt($ curl,CURLOPT_REFERER,「http://www.google.com」);'我仍然遇到這個錯誤'GET http://www.mywebsite.com/swf/ history/history.js 404(Not Found)'而不是google.com。 – user1081577 2013-04-24 11:27:16

+0

你的問題並沒有指出你到底在做什麼。 – 2013-04-24 11:31:31

+0

我正在調用一個API,它返回一個HTML頁面,我把它放在頁面上的iframe中。在他們的服務器上,某些CSS/JS文件的鏈接是這樣引用的:'src =「/ swf/swfobject.js'在我的iframe中使用的基礎href是我網站的基礎href,但是文件arn'在我的網站上,他們是在他們的!所以基礎href應該是一樣的API。那麼我如何使用或改變它到正確的基礎href? – user1081577 2013-04-24 12:08:19