0

PHP を使用して、間にスペースが入った 10 進数の文字列をスペースなしの文字列に変換するにはどうすればよいですか? (もちろん、DEC スペース (32) 変換でない限り)

例: 84 104 97 110 107 32 121 111 117

私は関連する質問をチェックアウトしましたが、それらのほとんどは、10 進数を ascii に変換するための組み込み関数が何であるかを尋ねているだけです。私は chr() と ord() を知っており、解決策は文字列の置換とともに、explode() と implode() を実際に使用する必要があると思います。私は for および foreach ループが苦手なので、ロジックが私の心を壊します。:)

私が見つけた最も近いSOトピックは、基本的に私が求めているものとは反対のトピックです - Using PHP to Convert ASCII Character to Decimal Equivalent

4

1 に答える 1

1

strtokこれは、関数が実際に何かに使用できる状況です。

このstrtok関数は、文字に基づいて文字列をトークン化します。この場合、トークン区切り文字はスペースです。呼び出すたびstrtokに、文字列内の次のトークンが返されます。

このchr関数は、序数 (10 進数) を対応する 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 に答える