Помогите конвертировать .asp в .php - PullRequest
0 голосов
/ 20 декабря 2010

Как мне переписать это с .asp на .php?

<%
' 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

%>

Ответы [ 2 ]

6 голосов
/ 20 декабря 2010

Как? Что вам нужно сделать, это выучить PHP, а затем написать его.

Если вы уже знаете PHP, то я подозреваю, что вы захотите исследовать:

  1. Независимо от того, есть ли у вас удаленная поддержка file_get_contents. (См. Другие ответы.)

  2. В противном случае, независимо от того, можете ли вы использовать функции CURL , хотя сначала вы должны убедиться, что в вашей производственной среде есть поддержка curl. (Если этого не произойдет, вам нужно исправить это.)

  3. В противном случае вам нужно будет создать сокетное соединение и отправить соответствующие HTTP-заголовки для запроса удаленного контента.

Из вышесказанного, я бы почти рекомендовал CURL выше file_get_contents, так как он может прозрачно обрабатывать перенаправления (если вы скажете это) и предоставит больше подкреплений, что может оказаться полезным в будущем. 1023 *

5 голосов
/ 20 декабря 2010

Ну, переведенный код (без проверки ошибок, просто грязная простая функциональность):

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

Обратите внимание, что $url должен быть полностью квалифицирован ...

РЕДАКТИРОВАТЬ : для более надежного решения:

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;
...