使用 JSON 在 php 数组中打印换行符

Print a newline in a php array with JSON

我一直在研究如何在 php 数组中打印新行。当我回应数据时,它是这样的:

Data Criação do Registo - 2014-12-23Bloco Operatório - TrueTipo de Internamento - UrgenteTipo de Internamento Cirurgia - com cirurgiaGlasgow Hospital - 15 (O-4 V-5 M-6)

我希望它看起来像这样,但我似乎找不到实现它的方法。

Data Criação do Registo - 2014-12-23
Bloco Operatório - True
Tipo de Internamento - Urgente
Tipo de Internamento Cirurgia - com cirurgia
Glasgow Hospital - 15 (O-4 V-5 M-6)

这是我的代码:

$query1 = "SELECT TO_CHAR(DATACRIACAO,'YYYY-MM-DD') AS DATACRIACAO, NPROCESSO, BLOCOOPERATORIO, TIPOINTERNAMENTO, TIPOINTERNAMENTOCIRURGIA, GLASGOW_HOSPITAL 
FROM PATIENT_TIMELINE_ADMISSAO WHERE NPROCESSO =629844";

$result1 = oci_parse($connect, $query1);
oci_execute($result1);

while($res1 = oci_fetch_array($result1)) {
 $infotimeline['description']= 'Data Criação do Registo - '.$res1['DATACRIACAO'].
 'Bloco Operatório - '.$res1['BLOCOOPERATORIO'].'Tipo de Internamento - '.$res1['TIPOINTERNAMENTO'].
 'Tipo de Internamento Cirurgia - '.$res1['TIPOINTERNAMENTOCIRURGIA'].
 'Glasgow Hospital - '.$res1['GLASGOW_HOSPITAL'];
}
$data = str_replace(array('[', ']','{','}'), '', htmlspecialchars(json_encode($infotimeline), ENT_NOQUOTES));
echo $data;

编辑:我还补充说这段代码在 pptimeline.php 文件中,我将其作为 header header('Content-Type: application/json'); 制作成 json 文件。然后信息打印在我的 basic.php 文件中,该文件位于顶部 <!DOCTYPE html>

我还添加了完整的代码以防有帮助 - pptimeline and basic.php

试试下面的代码行:

while($res1 = oci_fetch_array($result1)) {
    $infotimeline['description'] = 'Data Criação do Registo -          '.$res1['DATACRIACAO']. '<br/>'.
    'Bloco Operatório - '.$res1['BLOCOOPERATORIO'].'Tipo de Internamento -     '.$res1['TIPOINTERNAMENTO'].'<br/>'.
    'Tipo de Internamento Cirurgia - '.$res1['TIPOINTERNAMENTOCIRURGIA'].'<br/>'.
    'Glasgow Hospital - '.$res1['GLASGOW_HOSPITAL'];
}
$data = str_replace(array('[', ']','{','}'), '', htmlspecialchars(json_encode($infotimeline), ENT_NOQUOTES));
echo $data;

User <br> 在您要打印的每一行之间:即。

'Data Criação do Registo - '.$res1['DATACRIACAO'].
 '<br>Bloco Operatório - '.$res1['BLOCOOPERATORIO'].'<br>Tipo de Internamento - '.$res1['TIPOINTERNAMENTO'].
 '<br>Tipo de Internamento Cirurgia - '.$res1['TIPOINTERNAMENTOCIRURGIA'].
 '<br>Glasgow Hospital - '.$res1['GLASGOW_HOSPITAL'];

首先:您需要根据需要格式化字符串 - 只需插入换行符。 "\n"
第二:要在浏览器中显示所有这些 - 使用 nl2br,它将所有换行符转换为 <br/> 标记。
你应该在逃脱html个实体之后

$query1 = "SELECT TO_CHAR(DATACRIACAO,'YYYY-MM-DD') AS DATACRIACAO, NPROCESSO, BLOCOOPERATORIO, TIPOINTERNAMENTO, TIPOINTERNAMENTOCIRURGIA, GLASGOW_HOSPITAL 
FROM PATIENT_TIMELINE_ADMISSAO WHERE NPROCESSO =629844";

$result1 = oci_parse($connect, $query1);
oci_execute($result1);

while($res1 = oci_fetch_array($result1)) {
 $infotimeline['description']= 
 'Data Criação do Registo - '.$res1['DATACRIACAO']."\n".
 'Bloco Operatório - '.$res1['BLOCOOPERATORIO']."\n".
'Tipo de Internamento - '.$res1['TIPOINTERNAMENTO']."\n".
 'Tipo de Internamento Ciru - '.$res1['TIPOINTERNAMENTOCIRURGIA']."\n".
 'Glasgow Hospital - '.$res1['GLASGOW_HOSPITAL'];
}
$data = str_replace(array('[', ']','{','}'), '', htmlspecialchars(json_encode($infotimeline), ENT_NOQUOTES));
$data = nl2br($data);
echo $data;

如果有人遇到类似问题,我就是这样解决的。我重新编写了代码,并以某种方式打印了这样的新行。

$query1 = "SELECT TO_CHAR(DATACRIACAO,'YYYY-MM-DD') AS DATACRIACAO, NPROCESSO, BLOCOOPERATORIO, TIPOINTERNAMENTO, TIPOINTERNAMENTOCIRURGIA, GLASGOW_HOSPITAL 
FROM PATIENT_TIMELINE_ADMISSAO WHERE NPROCESSO =".$nprocesso."";

$result1 = oci_parse($connect, $query1);
oci_execute($result1);

while($infotimeline = oci_fetch_array($result1)) 
    {
        $timel[] = $infotimeline;
    }
foreach ($timel as $infotimeline){
$data =
'"id":"pptimeline"'.','.
'"title":"Pervasive Patient Timeline - Doente nº '.$infotimeline["NPROCESSO"].'"'.','.
'"description":"'.'<p>'.'Data Criação do Registo - '.$infotimeline["DATACRIACAO"].'</p>'.
'<p>'.'Bloco Operatório - '.$infotimeline['BLOCOOPERATORIO'].'</p>'.
'<p>'.'Tipo de Internamento Cirurgia - '.$infotimeline['TIPOINTERNAMENTOCIRURGIA'].'</p>'.
'<p>'.'Glasgow Hospital - '.$infotimeline['GLASGOW_HOSPITAL'].'</p>'.'"'.','.
'"focus_date":"2015-02-20"'.','.
'"initial_zoom":10'
;
}
echo $data;