0

使用 PHP,你如何将一个带有空格的十进制数字字符串转换为一个没有空格的字符串?(当然除非它是一个 DEC 空间(32)转换)

示例:84 104 97 110 107 32 121 111 117

我已经检查了相关的问题,其中大多数只是询问用于将十进制转换为 ascii 的内置函数。我知道 chr() 和 ord() 并且我认为解决方案确实应该使用 explode() 和 implode() 以及字符串替换。我对 for 和 foreach 循环很糟糕,所以逻辑让我心烦意乱。:)

我找到的最接近的 SO 主题是这个主题,它基本上与我所要求的相反 - 使用 PHP 将 ASCII 字符转换为十进制等价物

4

1 回答 1

1

这将是该strtok函数实际上可以用于某些事情的情况。

strtok函数根据字符对字符串进行标记。在这种情况下,令牌分隔符是一个空格。每次调用strtok它都会返回字符串中的下一个标记。

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);

(欢迎你。)

于 2016-03-06T03:23:53.347 回答