Что нового

Встройка php кода в autoit

uppdrag

Новичок
Сообщения
22
Репутация
0
Здравствуйте.
Вот хотелось бы узнать возможно ли встроить php код в autoit код на прямую?
если да то как именно..
 
Автор
U

uppdrag

Новичок
Сообщения
22
Репутация
0
открыл в справке раздел про dll и не понял как php код то встраивать :shok:
php5ts.dll - его только подключить или что? :scratch:
так, у меня есть форма:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 258, 97, 192, 124)
$Button1 = GUICtrlCreateButton("Обновить", 144, 64, 59, 25)
$Button2 = GUICtrlCreateButton("Выход", 200, 64, 51, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	...
	EndSwitch
WEnd

надо туда вставить->
Код:
<?php 
$xmlnp = 'http://www.*.ru/xml/status.xml'; 
$xmlstr = @file_get_contents($xmlnp); 
if ($xmlstr === FALSE) die('Error connect to xml: '.$xmlnp); 
$xmlnp = new SimpleXMLElement($xmlstr); 
if ($xmlnp === FALSE) die('Error parse xml: '.$xmlnp); 
 
foreach ($xmlnp->xpath('//response') as $item ) { 
        echo '<p>*: '.$item->*['*'].'</p>'; 
        echo '<p>*: '.$item->*['*'].'</p>'; 
        echo '<p>*: '.$item->servers->*['*'].'</p>' 
; 
        echo '<p>*: '.$item->*['*'].'</p>'; 
}?>
 

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Можно изложить задачу более доступно? Использовать 90% функций php можно используя длл. А для реализации конкретных задач за частую достаточно автоита.
Я не слишком хорошо знаю пхп, но на сколько я понял механику этого скрипта вполне можно переложить в автоит.
Если вы на словах объясните задачу, то возможно будет проще...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
uppdrag,
Все это можно сделать тремя функциями:
InetRead()
BinaryToString()
StringRegExp()
.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
uppdrag [?]
задача:
в инете есть файл статуса сервера. мне надо чтобы он загружался и отображался у меня на форме
Из ваших слов следует, что вы не понимаете, как происходит обмен данными "клиент <-> веб-сервер"
Поэтому, вкратце скажу следующее, загрузить файл PHP сценария (my_file.php) с сервера клиенту не удастся, да и не нужно этого делать. Вам необходимо просто взять уже готовые данные из HTML странице, и поместить их в свой GUI.
кнопкой обновить я обновляю статус (обновляются данные).
Обновить данные (на сервере), можно несколькими способами:
1. загрузить уже готовую HTML страницу с данными на сервер
2. передать данные методом GET или POST сценарию на сервере, который в свою очередь обновит данные в базе или в файле, и в последствие отобразит их на HTML странице.
 
Автор
U

uppdrag

Новичок
Сообщения
22
Репутация
0
извените, но причем тут клиент?
вы наверно о чем то не том подумали :smile:
короче я пытаюсь создать небольшую программку которая висела бы после запуска на рабочем столе и отображала бы статус игрового сервера, и приетом каждые 10-15 сек обновлалась бы:
Фот файл со стаистикой сервера:http://www.aionlegend.ru/xml/status.xml
Спросите причем тут php я скажу, что с помощью php мне отображается что надо и как надо...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
uppdrag,
Попробуйте так.
Код:
HotKeySet('{Esc}', '_Exit');Esc - выход

$iTimeOut = 5000 ; 5 sec - интервал между проверками
$sMeesage = ''
Dim $aInfo[5][3] = [[4],['game id'],['name'],['status'],['online']]

_Get_Server_Info($aInfo)
$iStart = TimerInit()
While 1
	If TimerDiff($iStart) > $iTimeOut Then
		$sMessage = _Get_Server_Info($aInfo)
		If Not @error Then
			If $sMessage Then
				Beep(300, 50)
				ToolTip('Изменились значения:' & @LF & $sMessage, 0, 0, @HOUR & ':' & @MIN & ':' & @SEC, 1)
			EndIf
		Else
			ToolTip('Ошибка!', 0, 0, @HOUR & ':' & @MIN & ':' & @SEC, 3)
		EndIf
		$iStart = TimerInit()
	EndIf
	Sleep(50)
WEnd

Func _Get_Server_Info(ByRef $a_Array)
	Local $s_URL = 'http://www.aionlegend.ru/xml/status.xml', $s_Sourse, $s_Message

	$s_Sourse = InetRead($s_URL, 17)
	If @error Then Return SetError(1)
	$s_Sourse = BinaryToString($s_Sourse, 4)
	$s_Sourse = StringRegExpReplace($s_Sourse, '.*<servers>(.*?)</servers>.*', '$1')
	For $i = 1 To $a_Array[0][0]
		$a_Array[$i][2] = StringRegExpReplace($s_Sourse, '.*' & $a_Array[$i][0] & '="(.*?)"\s.*', '$1')
		ConsoleWrite($a_Array[$i][0] & @TAB & $a_Array[$i][2] & @TAB & $a_Array[$i][1] & @LF)
		If Not $a_Array[$i][2] Then
			$a_Array[$i][1] = $a_Array[$i][2]
		Else
			If $a_Array[$i][1] <> $a_Array[$i][2] Then
				$s_Message &= $a_Array[$i][0] & ' Старое: ' & $a_Array[$i][1] & ', Новое: ' & $a_Array[$i][2] & @LF
				$a_Array[$i][1] = $a_Array[$i][2]
			EndIf
		EndIf
	Next
	Return StringTrimRight($s_Message, 1)
EndFunc   ;==>_Get_Server_Info

Func _Exit()
	Exit
EndFunc   ;==>_Exit
мне отображается что надо и как надо
Здесь конкретнее.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
uppdrag [?]
Фот файл со стаистикой сервера:http://www.aionlegend.ru/xml/status.xml
Используйте _XMLDomWrapper.au3 и будет вам счастье! ;)

с помощью php мне отображается что надо и как надо...
Ну, так кто бы сомневался! Я искренне рад за вас ;D
Однако вашим коллегам для более полного ответа тоже "надо" более полная информация!
Как вы собираетесь использовать PHP, как CGI или CLI?
 
Верх