就我所知,傳統的ASP或VBScript不具備與PHP getPathName()
和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
會給出「變量未定義」的錯誤,這是更有意義的。
您可以添加更多一點,例如聲明cPath的位置。 - 類型不匹配是當您嘗試將一種類型的值填充到另一種類型的變量時發生的一般錯誤。 – Rob
@Robuust類型不匹配的原因在於'getPathName'是由VBScript自動創建的,但給出了Empty類型。由於他試圖將其用作函數,導致類型不匹配。腳本語言的奇蹟! –