У меня есть открытый ключ, который я хотел бы сохранить в переменной в виде строки, например:
$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;
Или строки concat:
$str = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH82E/Dn37torKz/vhAkpji9ZS'.
'HCyfM7JuXCbh70F75Zh2/rEVvz38yNf6f01DNXiSpzO5eTmoXD7Blsb635AOjYbl'.
'X/WljpFbwQ2QUUDlNDAslrqXYlMzht2MCq/pjtGgk0zJx6i+HjFyV7mebeePQY/x'.
'NOzMpmy/Ke3u+SSHRwIDAQAB';
Кроме того, используйте функции для удаления дополнительных символов, таких как разрывы строк и пробелы, или .. сохраните ключ в файле и используйте file_get_contents()
Защитите этот файл с помощью chmod или сохраните его вне корневого каталога вашего веб-сервера.
Кроме того, вы можете создать файл, такой как key.php:
<?php
return 'yourkey';
?>
И тогда вы можете сохранить его в переменную следующим образом:
$var = include 'key.php';
Таким образом, загрязнение кода сведено к минимуму.
Других решений пока нет …