Насколько я могу судить, классические 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
приведет к ошибке «переменная не определена», что гораздо более значимо.
15.11.2012