2009-07-07 107 views
3

我想傳遞一個函數一個字符串,該字符串將該字符串粘貼到url上。然後進入該網址,然後將該頁面返回給我的服務器,以便我可以使用JS對其進行操作。從外部服務器獲取頁面

任何想法將不勝感激。

歡呼聲。

+1

請說明。這讓您的10k讀者感到困惑。 – Pacerier 2015-03-05 23:28:27

回答

0

你應該能夠使用fopen()爲你想要的。它可以接受URL。

echo "<script type='text/javascript' src='myjavascript.js'></script>"; 
$handle = @fopen("http://www.example.com/", "r"); 
if ($handle) { 
    while (!feof($handle)) { 
     $buffer = fgets($handle, 4096); 
     echo $buffer; 
    } 
    fclose($handle); 
} 
9

如果您fopen_wrappers啓用後,您可以使用file_get_contents()檢索頁面,然後呼應它作爲輸出之前插入JavaScript的內容。

$content = file_get_contents('http://example.com/page.html'); 
if($content !== FALSE) { 
    // add your JS into $content 
    echo $content; 
} 

這當然不會影響原來的頁面。

0

使用CURL可能是最簡單的,但我更喜歡自己做東西。這將連接到給定的地址並返回頁面的內容。但它也會返回標題,因此請注意:

function do_request ($host, $path, $data, $request, $specialHeaders=null, $type="application/x-www-form-urlencoded", $protocol="", $port="80") 
{ 
     $contentlen = strlen($data); 
     $req = "$request $path HTTP/1.1\r\nHost: $host\r\nContent-Type: $type\r\nContent-Length: $contentlen\r\n"; 
     if (is_array($specialHeaders)) 
     { 
      foreach($specialHeaders as $header) 
      { 
       $req.=$header; 
      } 
     } 
     $req.="Connection: close\r\n\r\n"; 
     if ($data != null) { 
      $req.=$data; 
     } 
     $fp = fsockopen($protocol.$host, $port, $errno, $errstr); 
     if (!$fp) { 
      throw new Exception($errstr); 
     } 
     fputs($fp, $req); 
     $buf = ""; 
     if (!feof($fp)) { 
      $buf = @fgets($fp); 
     } 
     return $buf; 
} 
+0

是的,file_get_contents()可能也更容易,但是如果fopen_wrappers未啓用,這將工作。 – Cameron 2009-07-07 19:32:45