forked from perevoznyk/php4delphi
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathUnit1.pas
127 lines (110 loc) · 3.15 KB
/
Unit1.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
{*******************************************************}
{ PHP4Delphi }
{ PHP - Delphi interface }
{ Author: }
{ Serhiy Perevoznyk }
{ serge_perevoznyk@hotmail.com }
{ http://users.chello.be/ws36637 }
{*******************************************************}
{ $Id: Unit1.pas,v 7.0 04/2007 delphi32 Exp $ }
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, PHP4AppIntf;
type
TForm1 = class(TForm)
Memo1: TMemo;
btnExecuteScript: TButton;
btnExecuteCode: TButton;
btnClose: TButton;
btnExecuteAndSave: TButton;
procedure btnExecuteScriptClick(Sender: TObject);
procedure btnCloseClick(Sender: TObject);
procedure btnExecuteCodeClick(Sender: TObject);
procedure btnExecuteAndSaveClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
RequestID : integer;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.btnExecuteScriptClick(Sender: TObject);
var
S : String;
L : integer;
FileName : string;
FilePath : string;
begin
Memo1.Lines.Clear;
RequestID := InitRequest;
RegisterVariable(RequestID, 'x','2');
RegisterVariable(RequestID, 'y','3');
RegisterVariable(RequestID, 'z','0');
FilePath := ExtractFilePath(ParamStr(0));
FileName := IncludeTrailingBackslash(FilePath) + 'test.php';
ExecutePHP(RequestID, PAnsiChar(FileName));
L := GetResultText(RequestID, nil, 0);
if L > 0 then
begin
SetLength(S, L);
GetResultText(RequestID, PChar(S), L);
end;
memo1.Lines.Text := S;
L := GetVariableSize(RequestID, 'z');
if L > 0 then
begin
SetLength(S, L);
GetVariable(RequestID, 'z', PChar(S), L);
ShowMessage('After execution z = ' + S);
end;
DoneRequest(RequestID);
end;
procedure TForm1.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.btnExecuteCodeClick(Sender: TObject);
var
S : String;
L : integer;
begin
Memo1.Lines.Clear;
RequestID := InitRequest;
RegisterVariable(RequestID, 'x','2');
RegisterVariable(RequestID, 'y','3');
RegisterVariable(RequestID, 'z','0');
ExecuteCode(RequestID, '$z = $x + $y; echo "Result "; echo $z;');
L := GetResultBufferSize(RequestID);
if L > 0 then
begin
SetLength(S, L);
GetResultText(RequestID, PChar(S), L);
end;
memo1.Lines.Text := S;
L := GetVariableSize(RequestID, 'z');
if L > 0 then
begin
SetLength(S, L);
GetVariable(RequestID, 'z', PChar(S), L);
ShowMessage('After execution z = ' + S);
end;
DoneRequest(RequestID);
end;
procedure TForm1.btnExecuteAndSaveClick(Sender: TObject);
begin
Memo1.Lines.Clear;
RequestID := InitRequest;
RegisterVariable(RequestID, 'x','2');
RegisterVariable(RequestID, 'y','3');
RegisterVariable(RequestID, 'z','0');
ExecuteCode(RequestID, '$z = $x + $y; echo "Result "; echo $z;');
SaveToFile(RequestID, 'result.txt');
memo1.Lines.LoadFromFile('result.txt');
DoneRequest(RequestID);
end;
end.