【问题标题】:How do I modify a determined group of chars inside a string? I need to modify them in a numerical way如何修改字符串中确定的一组字符?我需要以数字方式修改它们
【发布时间】:2020-04-08 00:25:20
【问题描述】:

如果字符大于 159,我需要减小 ansi char 值,将其减小 128。我使用了以下函数,但没有执行任何操作。有没有办法访问和修改 PHP 字符串 ala ANSI C char 中的字符?怎么样?

function ConvertChars($str)
{
    $result = "";

    for ($i = 0; $i < strlen($str); ++$i)
    {
        if ((int)$str[$i] > 159) 
            $result.= $str[$i]-128;
        else
            $result.= $str[$i];     
    }

    return $result;     
}

【问题讨论】:

  • 我很好奇你为什么要这样做。
  • 因为我正在编写一个 PHP 脚本,该脚本从一个旧游戏中读取 serverinfo 键,该游戏使用 159 以上的字符作为普通字符,但颜色不同。当您尝试在网站上显示时,这显然代表了一个问题......

标签: php string char


【解决方案1】:

要得到你想要的字符的二进制数值ord() 并做相反的事情,从它的数值生成字符到你想要的字节chr()

function ConvertChars($str)
{
    for ($i = 0, $len = strlen($str); $i < $len; ++$i)
    {
        if (ord($str[$i]) > 159) {
            $str[$i] = chr(ord($str[$i]) - 128);
        }
    }

    return $str;     
}

【讨论】:

  • 非常感谢,它有效,这正是我想要的!
  • 如果答案解决了您的问题,请务必接受,因为这有助于有类似问题的人更容易找到答案。
  • 完成,谢谢 Sherif,我还是 stackoverflow 的新手!
猜你喜欢
  • 2014-01-29
  • 2020-01-20
  • 2014-10-04
  • 2020-06-02
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多