Парсинг txt и отправка результата на php гейт
Приветствую, появилась необходимость собирать данные из логов с нескольких машин, и вести статистику на сервере.
Суть следующая, есть лог файл Full.log, из него нужно выдрать все что лежит в одной из строк, после ()#4
И отправить найденную строку с помощью ниже приведенного скрипта
Код:
Set oHTTP = CreateObject("winhttp.winhttprequest.5.1")
sSource = "http://www.site.ru/gate.php?id="здесь полученные выше данные""
oHTTP.open "GET", sSource, False
oHTTP.send
На сервере будет лежать php файл, который будет получать данные из переменной id и загонять их в базу данных.
|
Образец файла «Full.log» в архиве покажите. С данной строкой, разумеется.
|
bugmenot3, не могу никаким боком загрузить файл оттуда. Выложите, пожалуйста, на RGhost.
|
bugmenot3, получил. Пробуйте:
Код:
Option Explicit
Dim strSourceFile
Dim objFSO
Dim strContent
Dim strValue
strSourceFile = "E:\Песочница\0401\Full.log"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strSourceFile) Then
With objFSO.OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
With WScript.CreateObject("VBScript.RegExp")
.Pattern = "\(\)#4(.*?)\r\n"
If .Test(strContent) Then
strValue = .Execute(strContent).Item(0).Submatches.Item(0)
WScript.Echo "Found value [" & strValue & "]."
' Здесь Ваш код по отправке найденного текста
Else
WScript.Echo "Can't find pattern [" & .Pattern & "] in content of [" & strSourceFile & "]."
End If
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
Учтите — в выложенном файле найденное значение содержит в начале пробел:
Код:
Found value [ 39383196].
Он значим для Вас, или убрать возможные пробелы с начала/конца найденного текста?
|
Извиняюсь за наглость, помогите пожалуйста эти два кода склеить, что-то у меня проблемы с синтаксисом:(
|
Пробуйте:
читать дальше »
Код:
Option Explicit
Dim strSourceFile
Dim strUrl
Dim objFSO
Dim strContent
Dim strValue
strSourceFile = "E:\Песочница\0401\Full.log"
strUrl = "http://www.site.ru/gate.php?id= "
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strSourceFile) Then
With objFSO.OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
With WScript.CreateObject("VBScript.RegExp")
.Pattern = "\(\)#4\s*?(\S.*\S)\s*?\r\n"
If .Test(strContent) Then
strValue = .Execute(strContent).Item(0).Submatches.Item(0)
WScript.Echo "Found value [" & strValue & "]."
With WScript.CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET", Replace(strUrl, " ", strValue), False
.Send
If .Status = 200 Then
WScript.Echo "Send successfully. Status: " & CStr(.Status)
Else
WScript.Echo "Error send. Status: " & CStr(.Status)
End If
End With
Else
WScript.Echo "Can't find pattern [" & .Pattern & "] in content of [" & strSourceFile & "]."
End If
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
А что с этим:
Цитата:
Цитата Iska
Учтите — в выложенном файле найденное значение содержит в начале пробел:
Код:
Found value [ 39383196].
Он значим для Вас, или убрать возможные пробелы с начала/конца найденного текста? »
|
вопросом? Я своей волей убрал. Вернуть прежнее поведение?
И, по-хорошему, надо делать «decodeURI()» для отсылаемой строки — как раз на случай пробелов, всяких «/» и т.п. Что скажете?
|
возвращать прежнее поведение не нужно, меньше пробелов, меньше непонятных проблем:)
|
Цитата:
Цитата bugmenot3
возвращать прежнее поведение не нужно, меньше пробелов, меньше непонятных проблем »
|
Лады. А как насчёт:
Цитата:
Цитата Iska
И, по-хорошему, надо делать «decodeURI()» для отсылаемой строки — как раз на случай пробелов, всяких «/» и т.п. Что скажете? »
|
На самом деле, encodeURI(), конечно ;). «Совсем плохой стал» (с), encodeURIComponent :(.
|
Ну если совсем плохой то аверно не нужно:)
|
Ну, смотрите сами. Вам виднее, что может попасться в отправляемой строке, и насколько сумеет Ваш php-интерпретатор обработать такую ситуацию.
|
Время: 00:13.
© OSzone.net 2001-