【问题标题】:PHP - How do change the value of a string by + 1 [closed]PHP - 如何将字符串的值更改为 + 1 [关闭]
【发布时间】:2014-08-14 15:12:16
【问题描述】:

无论如何,在 php 中我可以将 1 添加到文本的值吗? 例子: a 进入脚本 b出来 例子: 你好=Idmmp

【问题讨论】:

  • 我不明白你的问题?
  • $text = "text" . $var_from_script_b +1; 见鬼,我不知道。向我们展示代码;完全不清楚你在问什么
  • 你的意思是想让每个字母的字符值加一吗?
  • 我没听懂你的问题。能简单解释一下吗
  • 他想把字符串中的每个字母都换成下一个字母。

标签: php character


【解决方案1】:

类似这样的东西(没有测试过):

$var = "Hello";
$newString = array();  

for ($i = 0; $i<strlen($var); $i++)  {
    $newString[] = chr(ord($str[$i]) + 1); 
}  

http://php.net/manual/en/function.ord.php

http://php.net/manual/en/function.chr.php

【讨论】:

  • 正如其他人指出的那样,您需要决定 Z 是否绕到 A,否则当您击中 Z 时会得到 {。
【解决方案2】:

这段代码比较复杂,但它分别对大写和小写进行了移位,并且正确地为字母Z进行了移位

function string_shift($string, $shift = 1) {
    // lowercase interval a-z 97-122
    // uppercase interval A-Z 65-90
    // interval length 26
    $len = strlen($string);
    for ($i = 0; $i < $len; $i++) {
        $ord = ord($string[$i]);
        $is_lower = $ord >= 97 && $ord <= 122;
        $is_upper = $ord >= 65 && $ord <= 90; 
        if ($is_lower || $is_upper) {
            $left_shift = $is_lower ? 97 : 65; 
            $new_ord = $ord + $shift - $left_shift;
            $new_ord < 0 && $new_ord += 26; 
            $string[$i] = chr($new_ord % 26 + $left_shift);
        }   
    }   
    return $string;
}

//TEST
echo string_shift('abcABCzZ', 1); // bcdBCDaA
echo string_shift('abcABCzZ', -1); // zabZAByY

【讨论】:

    【解决方案3】:

    你可以这样做:

    $my_string = "Hello";
    $letters = str_split($my_string);
    for ($i = 0; $i < count($letters); $i++) {
        $letters[$i]++;
    }
    $result = implode('', $letters);
    

    您可能还必须决定如何处理这封信 Z

    【讨论】:

    • 你不能提供一个空的分隔符来爆炸
    • @Hammerstein 谢谢,已修复。
    【解决方案4】:

    您应该首先拆分字符串中的所有字符,然后使用foreach 循环,然后增加字符。使用下面的代码

    <?php
    $string = "Hello";
    $letters = str_split($string);
    foreach($letters as $test)
    {
     $test++;
     echo $test;
    }
    ?>
    

    你必须决定你想用字母 Z 做什么,因为 z 的递增得到aa。希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 2013-06-23
      • 2014-10-08
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多