当使用php-soap获取jira问题时,不会显示新行


New line does not display when getting jira issue using php soap

我正在尝试使用PHP SOAP从JIRA 3.13获取问题详细信息。我能够登录并获得问题;然而,在我的一个字段上,我无法获得新行格式。所以,我得到的只是没有换行符的特定字段的文本(所有内容都只是附加到一行文本中)。到目前为止,我猜php也对SOAP中的字符串进行了一些重新格式化。我之所以这么说,是因为我对SOAPUI进行了一些测试,并且能够通过格式化来输出文本。有人能帮我找到一种显示带有格式的文本的方法吗?提前谢谢。

这是我的php代码:

try {
    $soap   = new SoapClient("<<JIRA URL>>");
    $auth   = $soap->login($formUsername, $formPassword);
    if ($auth)
    {
        $result0 = $soap->getIssue($auth,'<<JIRA ISSUE ID>>');
        $result = (array) $result0;
        foreach ($result as $key => $a)
        {
            $z = $z . '<br/>' . $key . ' = ' . $a;
        }
        echo $z;
    }
}
catch(Exception $e){
    $string = urlencode($e->getMessage());
    header("Location: login.php?message=".$string);
    die();
}

我只是意识到我不需要把它转换成数组。只需执行以下操作:

    foreach ($result0 as $key => $a)
    {
        $z = $z . '<br/>' . $key . ' = ' . $a;
    }

然而,这仍然不能解决我对新线路的问题。

这不是因为在输出linefeed之前没有将其更改为<br/>吗?

只要在浏览器中查看源代码,就可以很容易地发现是否是这种情况。

您需要nl2br()将换行符('n等)转换为HTML <br>标记:

foreach ($result0 as $key => $a)
{
    $z = $z . '<br/>' . $key . ' = ' . nl2br($a);
}

可能是文本以Unix行结尾存储,并且您正在Windows机器上显示?哪个领域出现问题?