Если вы действительно хотите сделать это, вы можете сделать это с помощью preg_replace_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
Однако это почти наверняка не нужно для всего, что вы делаете ...
См .: