使用 PHP 使用 SPACE 定界符将十进制转换为 ASCII
Using PHP to Convert Decimal to ASCII using SPACE delimiters
使用PHP,如何将中间有space的十进制数字符串转换为没有space的字符串?(当然除非是DECspace(32)转换)
示例:84 104 97 110 107 32 121 111 117
我已经查看了相关问题,其中大部分只是询问将十进制转换为ascii 的内置函数是什么。我知道 chr() 和 ord() 并且我认为解决方案确实应该使用 explode() 和 implode() 以及字符串替换。我对 for 和 foreach 循环很糟糕,所以逻辑打破了我的想法。 :)
我找到的最接近的 SO 主题是这个,它基本上与我的要求相反 -
Using PHP to Convert ASCII Character to Decimal Equivalent
在这种情况下 strtok
函数实际上可以用于某些事情。
strtok
函数根据字符标记字符串。在这种情况下,令牌分隔符是 space。每次你调用 strtok
它 returns 字符串中的下一个标记。
chr
函数用于将序数(十进制)数转换为其等效的 ASCII 字符。
function myParseString($str) {
$output = ''; // What we will return
$token = strtok($str, ' '); // Initialize the tokenizer
// Loop until there are no more tokens left
while ($token !== false) {
$output .= chr($token); // Add the token to the output
$token = strtok(' '); // Advance the tokenizer, getting the next token
}
// All the tokens have been consumed, return the result!
return $output;
}
$str = '84 104 97 110 107 32 121 111 117';
echo myParseString($str);
(不客气。)
使用PHP,如何将中间有space的十进制数字符串转换为没有space的字符串?(当然除非是DECspace(32)转换)
示例:84 104 97 110 107 32 121 111 117
我已经查看了相关问题,其中大部分只是询问将十进制转换为ascii 的内置函数是什么。我知道 chr() 和 ord() 并且我认为解决方案确实应该使用 explode() 和 implode() 以及字符串替换。我对 for 和 foreach 循环很糟糕,所以逻辑打破了我的想法。 :)
我找到的最接近的 SO 主题是这个,它基本上与我的要求相反 - Using PHP to Convert ASCII Character to Decimal Equivalent
在这种情况下 strtok
函数实际上可以用于某些事情。
strtok
函数根据字符标记字符串。在这种情况下,令牌分隔符是 space。每次你调用 strtok
它 returns 字符串中的下一个标记。
chr
函数用于将序数(十进制)数转换为其等效的 ASCII 字符。
function myParseString($str) {
$output = ''; // What we will return
$token = strtok($str, ' '); // Initialize the tokenizer
// Loop until there are no more tokens left
while ($token !== false) {
$output .= chr($token); // Add the token to the output
$token = strtok(' '); // Advance the tokenizer, getting the next token
}
// All the tokens have been consumed, return the result!
return $output;
}
$str = '84 104 97 110 107 32 121 111 117';
echo myParseString($str);
(不客气。)