VBScriptの関数定義をWEB上に置いて、PCで使用する の発展版です。 ※ WEB 上に置くソースコードは、上記リンク先を参照して下さい。Msxml2.ServerXMLHTTP で読み出すコードの作成方法
Msxml2.ServerXMLHTTP は昔はバグがありましたが、今はとても優秀なオブジェクトです。ただ、相手側が静的ファイルの場合は UTF-8 扱いになるはずなので、PHP 側でキャラクタセットを明示しています。( 以下のサンプルの PHP / https://toolbox.winofsql.jp/vbs/regtrim.php は SHIFT_JIS です )
01.
REM **********************************************************
02.
REM 正規表現のトリム
03.
REM **********************************************************
04.
Function
RegTrim( strValue )
05.
06.
Dim
regEx, str
07.
08.
Set
regEx =
New
RegExp
09.
regEx.IgnoreCase =
True
10.
regEx.Pattern =
"^[ \s]+"
11.
str = regEx.Replace( strValue,
""
)
12.
regEx.Pattern =
"[ \s]+$"
13.
RegTrim = regEx.Replace( str,
""
)
14.
15.
End
Function
このコードを regtrim.vbs や regtrim.txt としてWEB上のどこかに置く場合は、UTF8N で保存しますExecuteGlobal による動的な関数の登録
読みだした後、ExecuteGlobal で文字列を実行してしまうのが特徴です。Global スコープで実行されるため、最初から定義していたのと同じ事になります。 但し、この処理を行う為に読みだされるソースコード側で注意する事があります 1) コメントにシングルクォートを使わないで REM を使う 2) 条件文で = を使わないで <> の else で表現する これらは、ExecuteGlobal が正しく VBScript の構文を解析する為に重要な準備事項になるので注意して下さい
01.
<job>
02.
<object id=
"http"
progid=
"Msxml2.ServerXMLHTTP"
/>
03.
<script language=
"VBScript"
>
04.
05.
' 関数のソースコードを読みだして、関数として定義
06.
strResult = HTTPGet(
"https://toolbox.winofsql.jp/vbs/regtrim.php"
)
07.
if not IsEmpty( strResult ) and Left( strResult, 3 ) =
"REM"
then
08.
' 関数定義の実行
09.
ExecuteGlobal strResult
10.
else
11.
MsgBox(
"処理できませんでした"
)
12.
Wscript.Quit
13.
end if
14.
15.
str = RegTrim( getResource(
"mydata"
) )
16.
MsgBox(
"/"
& str &
"/"
)
17.
18.
Function
HTTPGet( strUrl )
19.
20.
on error resume next
21.
Call
http.Open(
"GET"
, strUrl,
False
)
22.
if Err.Number <> 0 then
23.
MsgBox(Err.Description)
24.
HTTPGet = Empty
25.
Exit
Function
26.
end if
27.
on error goto 0
28.
29.
Call
http.Send()
30.
31.
HTTPGet = http.responseText
32.
33.
End
Function
34.
</script>
35.
<resource id=
"mydata"
>
36.
37.
38.
この部分のみ取り出します
39.
40.
41.
</resource>
42.
</job>