我通常使用PHP开发网站。但现在我必须使用ASP Classic,因为我的客户已经有一个网站,然后我必须维护网站。我已将所有网站移至我的新主机。但是这段代码有错误:
cPath=getPathName(Server.mappath(Request.ServerVariables("PATH_INFO")))
错误消息是:
Microsoft VBScript运行时错误'800a000d'
类型不匹配:'getPathName'
调用getName
代码时会显示一些错误。
请帮助我该怎么做。
答案 0 :(得分:1)
据我所知,经典ASP或VBScript不具备与PHP getPathName()
和getName()
函数相同的功能。
当getPathName()
给出一个字符串并且实际上我认为它不存在时,我无法理解cPath = Server.MapPath(Request.ServerVariables("PATH_INFO"))
的含义是什么,所以只有:{/ p>
getName()
该变量将包含当前正在执行的ASP文件的完整物理路径。
对于Function GetOnlyName(filePath)
Dim slashIndex
slashIndex = InStrRev(filePath, "\")
If slashIndex<1 Then
slashIndex = InStrRev(filePath, "/")
End If
If slashIndex>0 Then
ExtractFileName = Mid(filePath, slashIndex + 1, Len(filePath) - slashIndex + 1)
Else
ExtractFileName = filePath
End If
End Function
,您可以编写自定义函数:
cName = GetOnlyName(Server.MapPath(Request.ServerVariables("PATH_INFO")))
然后像这样使用它:
Option Explicit
该变量仅包含ASP文件的名称。
为了记录,为避免混淆类型不匹配错误,始终将此放在脚本之上:
Dim
然后总是使用getPathName
语句声明所有变量,就像上面的函数一样。有了这个,尝试使用{{1}}会产生“变量未定义”错误,这更有意义。