Преобразование строк в массиве JSON в разрывы строк: JSON_decode и nl2br
Я не могу получить приведенный ниже массив для замены возврата каретки и перехода на новую строку с разрывом HTML <br />
JSON Array:
{ "Фрукты":"Яблоко","Veggies":"Морковь \ г \ nCelery\ г \ п \ г \nCucumbers"}
Я пытаюсь это и не везет
$html = json_decode(nl2br($json),true);
Разрывы строк видны в исходном коде самого HTML, однако я не могу получить <br />
код для замены "новых строк".
Я также попробовал это предложение, и оно тоже не сработало: замена \r\n (символы новой строки) после запуска json_encode
3 ответа
Бежать nl2br()
после декодирования JSON, а не в источнике массива JSON.
Возможно, вам стоит попробовать
$arJson = array( 'fruit' => 'apple',
'veggies' => array( 'carrot', 'celery', 'cucumbers' ) );
header( 'Content-Type: application/json' );
print json_encode( $arJson );
Который возвращает JSON
Затем используйте jQuery или вашу любимую библиотеку (даже пользовательскую), чтобы отправить запрос ajax на страницу.
$.ajax({
url: 'frtsnvgs.php',
dataType: 'JSON',
success: function( oData ) {
$.each( oData, function( key, value ) {
document.write( key + ': ' + value + '<br>' );
});
}
});
Попробуйте этот код. Это может помочь вам
$json = '{"Fruit":"Apple","Veggies":"Carrot\r\nCelery\r\n\r\nCucumbers"}';
$json = json_decode($json,true);
array_walk($json, function(&$val){$val = html_entity_decode(nl2br($val));});
echo "<pre>";
print_r($json);
echo "</pre>";
exit;
Использовать
$html = json_decode(nl2br($json,false),true);
Синтаксис:
nl2br(string,xhtml)
С участием:
xhtml
Необязательный. Логическое значение, указывающее, следует ли использовать разрывы строк, совместимые с XHTML:
TRUE
- По умолчанию. Вставки
<br />
FALSE
- Вставки
<br>
с участием
<br />
это делает ошибку json.