0

我通常使用 PHP 开发网站。但是现在我必须使用 ASP Classic,因为我的客户已经有一个网站,然后我必须维护该网站。我已经将所有网站移至我的新主机。但是这段代码有错误:

cPath=getPathName(Server.mappath(Request.ServerVariables("PATH_INFO")))

错误信息是:

Microsoft VBScript 运行时错误“800a000d”

类型不匹配:'getPathName'

调用getName代码时显示一些错误。

请帮助我该怎么办。

4

1 回答 1

1

据我所知,经典的 ASP 或 VBScript 没有与 PHPgetPathName()和函数等效的功能。getName()

我无法理解getPathName()给定字符串时的含义,实际上我认为它不存在,所以只需:

cPath = Server.MapPath(Request.ServerVariables("PATH_INFO"))

该变量将包含当前正在执行的 ASP 文件的完整物理路径。

至于getName()你可以编写自定义函数:

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")))

并且该变量将只包含 ASP 文件的名称。

作为记录,为了避免混淆类型不匹配错误,请始终将其放在脚本之上:

Option Explicit

然后总是使用Dim语句声明所有变量,就像上面的函数一样。有了这个,尝试使用getPathName会给出更有意义的“变量未定义”错误。

于 2012-11-15T08:18:52.543 回答