2012-01-10 56 views
1

我想從使用PHP SOAP的JIRA 3.13中獲取問題詳細信息。我能夠登錄並獲得問題;然而,在我的一個領域,我無法獲得新的線路格式。所以,我得到的就是那些沒有換行字符的特定字段的文本(所有東西都只是附加到一行文本中)。截至目前,我猜測PHP也做了一些從SOAP重新格式化字符串。我之所以這樣說是因爲我使用SOAP UI進行了一些測試,並能夠使用格式獲取文本。任何人都可以幫助我以顯示格式文本的方式嗎?提前致謝。當使用php soap獲取jira問題時,新行不顯示

這是我的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; 
    } 

然而,這仍然無法與新線解決我的問題。

回答

1

是不是隻是因爲在輸出之前沒有將換行符更改爲<br/>

只需在瀏覽器中查看源代碼,應該很容易發現這種情況。

+0

我通過將它傳遞給htmlspecialchars(..)來測試輸出,並得到沒有換行格式的結果。但是,如果我將soap的__getLastResponse傳遞給htmlspecialchars(..),那麼我可以看到新的行格式。 – lwijono 2012-01-11 18:38:19

+0

我不認爲htmlspecialchars將lf轉換爲
。它用於將字符轉換爲html實體,而不是標籤。 – Fredrik 2012-01-11 18:54:50

+0

請嘗試以下代碼:http://php.net/manual/en/function.nl2br.php – Fredrik 2012-01-11 18:57:21

0

可能是文本與Unix行尾存儲在一起並顯示在Windows機器上?哪個領域有問題?

+0

描述字段。我不認爲這與windows和linux格式有關。 – lwijono 2012-01-11 18:36:25

1

您需要nl2br()轉換換行符(\n等)轉換成HTML <br>標籤:

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