You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP格式化证书并设置每行显示76字符?

问题:PHP处理X509证书时如何让每行显示76字符?

在JavaScript中,可通过以下代码处理X509证书,使其每行显示76字符:

substr(certificateX509, '\n');
certificateX509 = certificateX509.substr(certificateX509.indexOf('\n'));
certificateX509 = certificateX509.substr(0, certificateX509.indexOf('\n-----END CERTIFICATE-----'));
certificateX509 = certificateX509.replace(/\r?\n|\r/g, '').replace(/([^\0]{76})/g, '$1\n');
console.log(certificateX509);

上述代码输出的证书每行含76个字符。

而我使用PHP处理证书时,执行以下代码:

$certificado = str_replace('-----BEGIN CERTIFICATE-----', '', $certificado);
$certificado = str_replace('-----END CERTIFICATE-----', '', $certificado);
$certificado=trim($certificado);
$certificado = str_replace("\r\n", "\n", $certificado);

得到的输出每行仅64个字符,请问如何修改PHP代码,让证书每行显示76字符?


解决方案

你需要先清除证书中的所有换行和空白字符,再按每76个字符分割插入换行。修改后的PHP代码如下:

// 一次性移除头尾的证书标记
$certificado = str_replace(['-----BEGIN CERTIFICATE-----', '-----END CERTIFICATE-----'], '', $certificado);
// 清除所有空白字符(换行、空格、回车等)
$certificado = preg_replace('/\s+/', '', $certificado);
// 按每76个字符强制分割并添加换行
$certificado = wordwrap($certificado, 76, "\n", true);

echo $certificado;

代码说明:

  • 用数组参数的str_replace简化标记移除逻辑,一次处理头尾两个标记;
  • preg_replace('/\s+/', '', $certificado)清除所有空白类字符,确保只保留证书的核心编码内容;
  • 调用PHP内置的wordwrap函数,指定每行76字符并强制分割,自动插入换行符,实现每行76字符的格式要求。

内容的提问来源于stack exchange,提问作者OneL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:55:16