I have doubt in how to access an array which is returned as result from PHP extension using Delphi.
Basic idea is that to take User ID and Password as an input from PHP and send as an array parameter to PHP extension function and from there i want to return the same i.e. User ID and Password as an array result.
procedure TPHPExtension1.PHPExtension1Functions1Execute(Sender: TObject;
Parameters: TFunctionParams; var ReturnValue: Variant;
ZendVar: TZendVariable; TSRMLS_DC: Pointer);
var
variable : pzval;
ar : array of string;
cnt : integer;
tmp : ^ppzval;
begin
//This function reads array parameter
variable := Parameters.Items[0].ZendValue;
if variable^._type = IS_ARRAY then
begin
SetLength(ar, zend_hash_num_elements(variable^.value.ht));
for cnt := 0 to zend_hash_num_elements(variable^.value.ht)- 1 do
begin
new(tmp);
zend_hash_index_find(variable^.value.ht, cnt, tmp);
ar[cnt] := tmp^^^.value.str.val;
freemem(tmp);
end;
Hi,
I have doubt in how to access an array which is returned as result from PHP extension using Delphi.
Basic idea is that to take User ID and Password as an input from PHP and send as an array parameter to PHP extension function and from there i want to return the same i.e. User ID and Password as an array result.
I am new for PHP so it's learning curve for me.
Following is my code.
Code is very simple.
Thanks in advance.
****************************************************************
function user_submit()
{
$data[0] = $_POST['user_id'];
$data[1] = $_POST['user_pwd'];
$a = simpleinsert($data);
echo $a[0];
//or
echo $a[0];
}
****************************************************************
procedure TPHPExtension1.PHPExtension1Functions1Execute(Sender: TObject;
Parameters: TFunctionParams; var ReturnValue: Variant;
ZendVar: TZendVariable; TSRMLS_DC: Pointer);
var
variable : pzval;
ar : array of string;
cnt : integer;
tmp : ^ppzval;
begin
//This function reads array parameter
variable := Parameters.Items[0].ZendValue;
if variable^._type = IS_ARRAY then
begin
SetLength(ar, zend_hash_num_elements(variable^.value.ht));
for cnt := 0 to zend_hash_num_elements(variable^.value.ht)- 1 do
begin
new(tmp);
zend_hash_index_find(variable^.value.ht, cnt, tmp);
ar[cnt] := tmp^^^.value.str.val;
freemem(tmp);
end;
ReturnValue := ar;
end;
****************************************************************