Why is \r\n appearing when I JSON encode an array

Viewed 332

I'm creating some arrays and turning them into JSON strings and I noticed something strange--some of the strings, when I JSON encode them, are getting \r\n added onto the front and end of the of the strings. The strings I'm encoding are pulled from HTML elements.

$arr = array(
    'licStat' => $rows2[13]->nodeValue, 
    'expDate' => dateReplace($data[5]->nodeValue), 
    'dicAct' => $rows2[11]->nodeValue
);
echo json_encode($arr);

Expected output:

{"licStat":"Expired","expDate":"1999-12-20","dicAct":"Yes"}

Actual output:

{"licStat":"\r\n Expired\r\n ","expDate":"1999-12-20","dicAct":"\r\n Yes\r\n "}
1 Answers

It seems $rows2[13]->nodeValue and $rows2[11]->nodeValue have carry return and line feeds in them.

You can use trim() to get rid of them:

$arr = array(
    'licStat' => trim($rows2[13]->nodeValue), 
    'expDate' => dateReplace($data[5]->nodeValue), 
    'dicAct' => trim($rows2[11]->nodeValue)
);
echo json_encode($arr);
Related