将 public 键存储在变量 php 中

store public key in variable php

我有一个 public 键,我想将其作为字符串存储在变量中,例如:

$public_key = "-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS
HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl
X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x
NOzMpmy/Ke3u+SSHRwIDAQAB
-----END PUBLIC KEY-----";

我想要这样的东西

$public_key = "-----BEGIN PUBLIC KEY-----
              MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS
              HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl
              X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x
              NOzMpmy/Ke3u+SSHRwIDAQAB
              -----END PUBLIC KEY-----";

目前,它失败了,因为密钥不再有效,因为缩进有空格

如何处理断行和缩进?

使用 heredoc 语句对齐键。

$str = <<<'KEY'
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS
HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl
X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x
NOzMpmy/Ke3u+SSHRwIDAQAB
KEY;

或连接字符串:

$str = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS'.
       'HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl'.
       'X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x'.
       'NOzMpmy/Ke3u+SSHRwIDAQAB';

除此之外,使用函数删除换行符和空格等附加符号,或者..将密钥存储在文件中并使用 file_get_contents() 使用 chmod 保护该文件或将其存储在您的根目录之外网络服务器。

或者,您可以创建一个文件,如 key.php:

<?php
  return 'yourkey';
?>

然后您可以将其存储在 var 中,如下所示:

$var = include 'key.php';

这样,代码污染就会降到最低。