帮助将.asp转换为.php

时间:2010-12-20 19:38:09

标签: php asp-classic

如何从.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

%GT;

2 个答案:

答案 0 :(得分:6)

如何?你需要做的是学习PHP,然后编写它。

如果您已经了解PHP,那么我怀疑您需要调查:

  1. 您是否具有远程file_get_contents支持。 (见其他答案。)

  2. 如果不能,您是否可以使用CURL功能,尽管您应首先检查您的生产环境是否具有卷曲支持。 (如果没有,你需要纠正这个问题。)

  3. 所有这些都失败了,您需要创建一个socket connection并发送相关的HTTP标头来请求远程内容。

  4. 在上面,我几乎推荐CURL高于file_get_contents,因为它可以透明地处理重定向(如果你告诉它)并且会暴露更多的欠定位,这可能在将来证明是有用的。 / p>

答案 1 :(得分:5)

嗯,翻译的代码是(没有错误检查,只是简单的功能):

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