2010-12-20 23 views
0

これを.aspから.phpに書き換えるにはどうすればよいですか?ヘルプを.aspに変換するヘルプ

<% 
' Url of the webpage we want to retrieve 
thisURL = "pagerequest.jsp" 

' Creation of the xmlHTTP object 
Set GetConnection = CreateObject("Microsoft.XMLHTTP") 

' Connection to the URL 
GetConnection.Open "get", thisURL, False 
GetConnection.Send 

' ResponsePage now have the response of the remote web server 
ResponsePage = GetConnection.responseText 

' We write out now the content of the ResponsePage var 
Response.ContentType = "text/xml" 
Response.write (ResponsePage) 

Set GetConnection = Nothing 

%>

+0

re-right!= rewrite。 –

答えて

5

まあ、変換されたコード(エラーチェック、ちょうど汚れシンプルな機能性)ではありません:$urlニーズが完全に修飾するためにその

$url = 'http://server/pagerequest.jsp'; 
$text = file_get_contents($url); 
header('Content-Type: text/xml'); 
echo $text; 

注...

EDIT:より堅牢なソリューションの場合:

function getUrl($url) { 
    if (ini_get('allow_url_fopen')) { 
     return file_get_contents($url); 
    } elseif (function_exists('curl_init')) { 
     $c = curl_init($url); 
     curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
     return curl_exec($c); 
    } else { 
     $parts = parse_url($url); 
     if (!isset($parts['host'])) { 
      throw new Exception('You need a host!'); 
     } 
     $port = isset($parts['port']) ? $parts['port'] : 80; 
     $f = fsockopen($parts['host'], $port, $errno, $errstr, 30); 
     if (!$f) { 
      throw new Exception('Error: ['.$errno.'] '.$errstr); 
     } 
     $out = "GET $url HTTP/1.1\r\n"; 
     $out .= "Host: {$parts['host']}\r\n"; 
     $out .= "Connection: close\r\n\r\n"; 
     fwrite($f, $out); 
     $data = ''; 
     while (!feof($f)) { 
      $data .= fgets($f, 128); 
     } 
     list($headers, $data) = explode("\r\n\r\n", $data, 2); 
     // Do some validation on the headers to check for redirect/error 
     return $data; 
    } 
} 

使用法:

$url = 'http://server/pagerequest.jsp'; 
$text = getUrl($url); 
header('Content-Type: text/xml'); 
echo $text; 
+0

また、これが動作するには 'allow_url_fopen'を有効にする必要があります。それ以外の場合は、@ middaparkaの応答を参照してください。 –

+0

@ブラッド:なぜ私は@ middaparkaの返答をアップしたのですか? - )...私はCURLオプションでも編集します... – ircmaxell

+0

@ircmaxwell:彼の結果は最高ですが、私は私の指を救うのが大好きです私はあなたの回答にも賛成です。私はちょうどそれが誰かがこれを試して失敗する(彼らは何を探すか知っている)かどうかを言及する価値があると思った。 ;-) –

6

どのように?あなたがする必要があるのはPHPを学んでそれを書くことです。

すでにPHPを知っている場合は、私はあなたが調査したいと思う疑い:あなたは、リモートのfile_get_contentsをサポートしてい

  1. かどうか。

  2. CURL機能を使用できるかどうかにかかわらず、本番環境でカールがサポートされていることを確認する必要があります。 (そうでない場合は、これを修正する必要があります)

  3. これらのすべてに失敗した場合は、socket connectionを作成し、関連するHTTPヘッダーを送信してリモートコンテンツを要求する必要があります。上記の

、私は(あなたがそれを言うならば)、それは透過的に再指示扱うことができるよう、ほとんど、のfile_get_contents上CURLをお勧めしますし、中に有用であることが分かるかもしれない、アンダーpinningsの多くを公開します未来。