PHP如何将文本转为二进制?
时间:2026-02-09 12:45:46 439浏览 收藏
本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《PHP 文本转二进制方法详解》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

本文详解 PHP + HTML 文本转二进制脚本无法执行的常见原因(如文件扩展名错误),并提供可直接运行的完整修复代码、部署要点与安全建议。
你提供的 PHP 脚本逻辑本身是正确的:它通过 ord() 获取字符 ASCII 值,再用 decbin() 转为二进制,并以空格分隔。但页面中显示原始 PHP 代码(如 未被解析)、表单提交无响应——这几乎可以确定是服务器未解析 PHP,而非代码缺陷。
? 核心原因:文件未被 PHP 引擎处理
最常见的原因是:文件保存为 .html 或 .htm 后缀(如 converter.html),而非 .php。Web 服务器(如 Apache、Nginx)默认只对 .php 扩展名启用 PHP 解析器。若命名为 converter.html,服务器会直接将 PHP 标签作为纯文本发送给浏览器,导致源码可见、逻辑不执行。
✅ 正确做法:
- 将文件重命名为 converter.php;
- 确保通过 本地 PHP 开发环境(如 XAMPP、WAMP、MAMP)或支持 PHP 的 Web 服务器 访问(例如 http://localhost/converter.php),切勿双击 HTML 文件打开(此时走 file:// 协议,PHP 完全不生效)。
✅ 修复后的完整代码(增强健壮性)
<?php
$input = '';
$binary = '';
// 使用 isset() + !empty() 双重校验,避免未定义索引警告
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit']) && !empty($_POST['input'])) {
$input = trim($_POST['input']);
// 逐字符转二进制(补足8位,提升可读性)
for ($i = 0; $i < strlen($input); $i++) {
$ascii = ord($input[$i]);
$binary .= str_pad(decbin($ascii), 8, '0', STR_PAD_LEFT) . ' ';
}
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>文本转二进制转换器</title>
<style>
body { font-family: -apple-system, sans-serif; margin: 2rem; }
textarea, input[type="submit"] { padding: 0.5rem; font-size: 1rem; }
.result { background: #f5f5f5; padding: 1rem; margin-top: 1rem; border-radius: 4px; }
</style>
</head>
<body>
<h1>? 文本 → 二进制 转换器</h1>
<form method="post">
<label for="input">请输入要转换的文本:</label><br>
<textarea id="input" name="input" rows="4" cols="50" placeholder="例如:Hello"><?php echo htmlspecialchars($input); ?></textarea><br><br>
<input type="submit" name="submit" value="→ 转换为二进制">
</form>
<?php if (!empty($binary)): ?>
<div class="result">
<p><strong>输入:</strong>"<?php echo htmlspecialchars($input); ?>"</p>
<p><strong>二进制(8位补零):</strong><br><?php echo htmlspecialchars($binary); ?></p>
</div>
<?php endif; ?>
</body>
</html>⚠️ 关键注意事项
- 安全防护:使用 htmlspecialchars() 输出用户输入内容,防止 XSS 攻击;
- 输入清理:trim() 去除首尾空格,!empty() 避免空提交;
- 格式优化:str_pad(decbin($ascii), 8, '0', STR_PAD_LEFT) 补齐 8 位(标准 ASCII 字节),结果更规范(如 'A' → '01000001');
- 环境验证:在终端运行 php -v 确认 PHP 已安装;创建 info.php 写入 ,通过浏览器访问验证服务器是否正常解析 PHP。
? 总结:90% 的“PHP 代码显示为源码”问题,根源在于文件扩展名错误或未经 Web 服务器执行。务必使用 .php 后缀 + 本地服务器环境。代码逻辑只需微调即可稳健运行——无需重写,重命名即解决。
理论要掌握,实操不能落!以上关于《PHP如何将文本转为二进制?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
相关阅读
更多>
-
502 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
最新阅读
更多>
-
329 收藏
-
354 收藏
-
208 收藏
-
418 收藏
-
176 收藏
-
461 收藏
-
389 收藏
-
232 收藏
-
177 收藏
-
154 收藏
-
100 收藏
-
351 收藏
课程推荐
更多>
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习