在PHP执行ASP代码,请帮我把这段代码转成PHP的吧,我的QQ:56664
<%OnErrorResumeNextServer.ScriptTimeOut=9999999response.write(getHTTPPage("http://www...
<%On Error Resume Next
Server.ScriptTimeOut=9999999
response.write(getHTTPPage("http://www.03724.com/001.asp"))
function getHTTPPage(url)
dim http
set http=createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function
Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
%> 展开
Server.ScriptTimeOut=9999999
response.write(getHTTPPage("http://www.03724.com/001.asp"))
function getHTTPPage(url)
dim http
set http=createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function
Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
%> 展开
2个回答
展开全部
这段ASP代码,是ASP小偷程序常用的代码。
function getHTTPPage这个自定义函数,是通过MSXML2.XMLHTTP组件来从外部URL中获取页面内容,其中getHTTPPage=bytes2BSTR(Http.responseBody)这句里,又用到了bytes2BSTR这个自定义函数,意思是把Http这个实例获取到的页面内容用bytes2BSTR这个自定义函数转换一下编码格式。然后再赋值给getHTTPPage(注:asp的function要想返回值,就是把返回值赋值给函数名即可)
在ASP中,想要获取外部URL的页面内容,用MSXML2.XMLHTTP组件是最好的方法,但是此方法获了取的内容,会因为编码的不同而有乱码,因此需要进行编码的转换才能正确的显示出来。
你上面这段代码就是这个作用了。
而如果换成PHP,确实很简单,几句就完成了:
<?php
//使用php函数file_get_contents来读取外部URL的页面内容
$page_content=file_get_contents("http://www.03724.com/001.asp");
//输出获取到的内容
echo $page_content;
?>
PHP有些时候,确实要比ASP简单得多,也强悍得多。ASP只能通过外部的com组件(像你代码中的MSXML2.XMLHTTP组件就是一个外部的com组件,并不是ASP的内置组件)才能做到。
另外再补充一下:
上面那位兄弟的PHP代码,确实与你问的问题没有一分钱的关系。
他那段PHP代码是获取用户操作系统的类型,然后根据操作系统的类型不同来跳转到不同的页面中去。与你的问题根本不是一个东西。
function getHTTPPage这个自定义函数,是通过MSXML2.XMLHTTP组件来从外部URL中获取页面内容,其中getHTTPPage=bytes2BSTR(Http.responseBody)这句里,又用到了bytes2BSTR这个自定义函数,意思是把Http这个实例获取到的页面内容用bytes2BSTR这个自定义函数转换一下编码格式。然后再赋值给getHTTPPage(注:asp的function要想返回值,就是把返回值赋值给函数名即可)
在ASP中,想要获取外部URL的页面内容,用MSXML2.XMLHTTP组件是最好的方法,但是此方法获了取的内容,会因为编码的不同而有乱码,因此需要进行编码的转换才能正确的显示出来。
你上面这段代码就是这个作用了。
而如果换成PHP,确实很简单,几句就完成了:
<?php
//使用php函数file_get_contents来读取外部URL的页面内容
$page_content=file_get_contents("http://www.03724.com/001.asp");
//输出获取到的内容
echo $page_content;
?>
PHP有些时候,确实要比ASP简单得多,也强悍得多。ASP只能通过外部的com组件(像你代码中的MSXML2.XMLHTTP组件就是一个外部的com组件,并不是ASP的内置组件)才能做到。
另外再补充一下:
上面那位兄弟的PHP代码,确实与你问的问题没有一分钱的关系。
他那段PHP代码是获取用户操作系统的类型,然后根据操作系统的类型不同来跳转到不同的页面中去。与你的问题根本不是一个东西。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询