0

0

php转换数组怎么保留换行符_php数组转换保留换行符处理方法与技巧

雪夜

雪夜

发布时间:2025-12-16 21:21:07

|

795人浏览过

|

来源于php中文网

原创

使用json_encode配合json_unescaped_line_terminators标志可保留换行符原始形态,html中需用标签包裹;或用print_r结合htmlspecialchars与输出数组结构并维持换行显示。

php转换数组怎么保留换行符_php数组转换保留换行符处理方法与技巧

如果您在将 PHP 数组转换为字符串(如 JSON、HTML 输出或日志记录)时发现原始数组中包含的换行符( )被忽略或显示为普通空格,则可能是由于序列化方式、输出上下文或转义处理不当所致。以下是保留换行符的多种处理方法:

一、使用 json_encode 并启用 JSON_UNESCAPED_UNICODE 和 JSON_UNESCAPED_LINE_TERMINATORS

默认情况下,json_encode 会将换行符转义为 字符串形式,但该转义本身仍可被正确解析;若需在 HTML 中可视化解析换行,需配合 pre 标签或 CSS white-space 属性。启用 JSON_UNESCAPED_LINE_TERMINATORS 可避免对换行符做额外转义,保持其原始字节形态。

1、定义含换行符的数组,例如:$arr = ['name' => 'Alice', 'bio' => "Line one. Line two. Line three."];

2、调用 json_encode 并传入标志位:json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_LINE_TERMINATORS);

立即学习PHP免费学习笔记(深入)”;

3、若用于 HTML 输出,将结果包裹在

 标签中以保留格式。

二、使用 print_r 配合 htmlspecialchars 和
 标签</h2>
<p>print_r 默认以可读格式输出数组结构,天然保留换行;但直接输出到 HTML 会被浏览器折叠空白符,因此需结合 htmlspecialchars 转义特殊字符,并用 <pre class="brush:php;toolbar:false;"> 包裹维持排版。</p>
<p>1、初始化目标数组,确保值中含 <strong>
</strong>,如:<strong>$data = ['msg' => "First line.
Second line.
Third line."];</strong></p>
<p>2、捕获 print_r 输出:<strong>$output = print_r($data, true);</strong></p>
<p>3、对输出内容执行 HTML 实体转义:<strong>$safe_output = htmlspecialchars($output, ENT_QUOTES, 'UTF-8');</strong></p>
<p>4、在 HTML 中输出:<strong><pre class="brush:php;toolbar:false;"><?php echo $safe_output; ?>

三、手动遍历拼接并显式保留 字符

当需将数组扁平化为单字符串且严格保留所有原始换行符时,可避免使用自动序列化函数,改用 foreach 遍历并控制分隔逻辑,对每个值不做 trim 或 str_replace 处理。

1、声明数组变量,其中字符串值明确包含 ,例如:$list = ["item1 sub1", "item2 sub2", "item3"];

Kacha
Kacha

KaCha是一款革命性的AI写真工具,用AI技术将照片变成杰作!

下载

2、初始化空字符串:$result = '';

3、使用 foreach 遍历并追加,不修改原值:foreach ($list as $v) { $result .= $v . " "; }

4、输出前确认未执行 nl2br()str_replace(" ", "", ...) 类操作,否则换行符将被移除

四、使用 var_export 并配合 str_replace 还原换行

var_export 默认将换行符表示为 '\n' 字面量(即反斜杠加 n),而非真实换行字节;需在导出后对字符串执行一次解析替换,将 '\n' 替换为实际的 字符。

1、获取数组导出字符串:$exported = var_export($arr, true);

2、执行双重转义还原:$with_real_newlines = str_replace("'\n'", " ", $exported);

3、注意:此操作仅适用于单引号包围的字符串字面量,若数组含双引号字符串或复杂嵌套,可能误替换

五、输出至文件时使用 fwrite 并指定二进制模式

当目标是将数组内容(含换行符)写入文本文件而非网页显示时,应避免经过 HTML 渲染流程,直接使用 fwrite 写入原始字节流,确保操作系统换行符( 或 )不被干扰。

1、打开文件句柄,使用 'wb' 模式:$fp = fopen('output.txt', 'wb');

2、对数组中每个元素调用 fwrite,例如:foreach ($arr as $k => $v) { fwrite($fp, $k . ': ' . $v . " "); }

3、关闭文件:fclose($fp);

4、验证文件内容时使用支持 Unix 行尾的编辑器,Windows 记事本可能无法正确显示 换行

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

455

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

335

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

760

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

221

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1566

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

649

2023.11.24

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 42.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号