Php 如何对字符串中的所有字符进行编码

Php 如何对字符串中的所有字符进行编码,php,encoding,Php,Encoding,如何对字符串中的所有字符进行编码 例如: A=%32//或类似的内容 B=%33 我不想硬编码每个字符。我也希望能够再次解码。 是否有一个php函数用于此 谢谢。你不是说ord()和chr()吗?试试: urlencode($string); urldecode($string); 如果您真的想这样做,可以使用preg\u replace\u callback轻松完成: echo preg_replace_callback('/./', function($char) { retur

如何对字符串中的所有字符进行编码

例如: A=%32//或类似的内容
B=%33

我不想硬编码每个字符。我也希望能够再次解码。 是否有一个php函数用于此

谢谢。

你不是说ord()和chr()吗?

试试:

urlencode($string);
urldecode($string);

如果您真的想这样做,可以使用
preg\u replace\u callback
轻松完成:

echo preg_replace_callback('/./', function($char) {
    return '%' . ord($char[0]);
}, 'this is probably an unnecessary step');
// %116%104%105%115%32%105%115%32%112%114%111%98%97%98%108%121%32%97%110%32%117%110%110%101%99%101%115%115%97%114%121%32%115%116%101%112
您可以使用
chr
将其反向:

echo preg_replace_callback('/%[^%]*/', function($seq) {
    return chr(substr($seq[0], 1));
}, '%116%104%105%115');
// this
然而,无论你在做什么,这几乎肯定是不必要的

见:


PHP有很多函数来加密字符串。选择正确的一个取决于应用程序。你在加密姓名、密码、信用卡信息吗?这是一个重要的考虑因素,因为简单的字符串加密不适合敏感信息。我认为这只是对特殊字符进行编码,而不是对每个字符进行编码。。。?