我想通過JSON-RPC將數組從Perl傳遞到PHP。因此,這裏的構成陣列,並返回它的Perl程序:使用JSON-RPC將數組從Perl傳遞到PHP
sub queueMemberList() : Public()
{
my @qNames;
$connection = ConnectToMySql($dbName);
$query = "select membername from queue_members";
$statement = $connection->prepare($query);
print $statement->execute();
while(@data = $statement->fetchrow())
{ #$sendStr = $sendStr."+".$data[0];
push(@qNames, $data[0]);
}
return \@qNames;
}
sub ConnectToMySql
{ my ($db) = @_;
open(ACCESS_INFO, "<accessAdd") || die "Can't access login credentials";
my $dbName = <ACCESS_INFO>;
my $host = <ACCESS_INFO>;
my $userid = <ACCESS_INFO>;
my $passwd = <ACCESS_INFO>;
my $connectionInfo="dbi:mysql:$db;$host";
close(ACCESS_INFO);
chomp ($dbName, $host, $userid, $passwd);
my $db_connection = DBI->connect($connectionInfo,$userid,$passwd);
return $db_connection;
}
正如你所看到的,我已經通過了一個數組引用,就像我通常會在Perl(如果一個Perl程序都接受它,我會將其轉換回數組)。現在,這是我調用上述例程並試圖顯示數組的PHP。由於我不知道如何將其轉換回來,所以我發佈了簡單的聲明和echo
聲明。
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
require_once '/usr/src/jsonrpcphp/includes/jsonRPCClient.php';
$myJSONconn2 = new jsonRPCClient('http://localhost:42337/jsonrpc/API/testArray');
echo "Choose Member:<br>";
try
{ echo $myJSONconn2->queueMemberList();
}
catch (Exception $e)
{
echo nl2br($e->getMessage()).'<br />'."\n";
}
?>
當前輸出在瀏覽器上只顯示Array
,沒有別的。
你能幫我把它轉換回數組嗎?
編輯:正如@grebneke建議,我換成echo
與var_dump
這給了我下面的輸出:
array(2) { [0]=> string(5) "messi" [1]=> string(5) "lampard" }
,當我試圖使用它print_r
,這就是我得到:
Array ([0] => messi [1] => rahul)
這是什麼意思在PHP中?
使用'print_r'或'var_dump'來檢查PHP中的數據,它會告訴你如何繼續。 – grebneke
@grebneke - 編輯輸出的問題 - 這是什麼意思? – rahuL
看到下面的答案 – grebneke