我正在尝试将 AngularJS 与 php 后端结合起来。现在我正在尝试使用 php 生成一个 json 以将其返回到 angular 的 http 请求。到目前为止,我创建了这个 php.ini。
$dbhost = "localhost";
$dbport = "5432";
$dbname = "fixevents";
$dbuser = "postgres";
$dbpass = "123";
$connect = pg_connect("host=" . $dbhost . " port=" . $dbport . " dbname=" . $dbname . " user=" . $dbuser . " password=" . $dbpass);
$query = "SELECT contact_firstname, contact_lastname, contact_id, contact_email FROM contact WHERE user_id = 1";
$result = pg_query($connect, $query);
$comma = '';
$json = '[';
while ($row = pg_fetch_array($result)) {
$json .= $comma . '{';
$json .= 'contact_firstname:"' . addslashes($row['contact_firstname']) . '",';
$json .= 'contact_lastname:"' . addslashes($row['contact_lastname']) . '",';
$json .= 'contact_id:' . addslashes($row['contact_id']) . ',';
$json .= 'contact_email:[';
$contact_email = explode(',,,', addslashes($row['contact_email']));
$comma_email = '';
foreach($contact_email as $email) {
$json .= $comma_email . '"' . $email . '"';
$comma_email = ',';
}
$json .= ']';
$json .= '}';
$comma = ',';
}
$json .= ']';
echo $json;
但是我读了一些比我更聪明的评论:) 他们说手动创建 json 不是最好的主意。谁能告诉我如何生成这个 json 是一种更时尚的方式?我看到了一些关于 json_endode 和数组的东西,但我不知道如何在列表中添加一个列表。我有一个列表,在每个列表项中我都有另一个包含电子邮件的列表,因为一个联系人可以有更多的电子邮件。我现在生成的 JSON 看起来像这样
[{contact_firstname:"Daniel",contact_lastname:"Pacuraru",contact_id:1,contact_email:["pacurarudaniel@gmail.com","hello@pacurarudaniel.com"]},{contact_firstname:"Someone",contact_lastname:"Else",contact_id:2,contact_email:["someone.else@gmail.com"]}]
谢谢你,丹尼尔!
编辑
$myjson = array();
while($row = pg_fetch_array($result)) {
$json = array(
'contact_firstname' => addslashes($row['contact_firstname']),
'contact_lastname' => addslashes($row['contact_lastname']),
'contact_id' => addslashes($row['contact_id']),
'contact_email' => explode(',,,', addslashes($row['contact_email']))
);
array_push($myjson, $json);
}
echo json_encode($myjson);