【问题标题】:Replace all characters of string to asterisks except first and last characters in PHP [duplicate]将字符串的所有字符替换为星号,除了PHP中的第一个和最后一个字符[重复]
【发布时间】:2016-04-14 21:14:43
【问题描述】:

PHP中如何将字符串中除首尾字符外的所有字符替换为星号?

例如test应该变成t**t和profanity变成p******y等等

【问题讨论】:

  • 使用substr获取第一个和最后一个字符;然后在它们之间附加(length($string) - 2) 星号。
  • 我已经更新了我的答案Here检查它!

标签: php string function


【解决方案1】:
function get_starred($str) {
    $len = strlen($str);

    return substr($str, 0, 1).str_repeat('*', $len - 2).substr($str, $len - 1, 1);
}


$myStr = 'YourName';
echo get_starred($myStr); //should show Y******e 

【讨论】:

    【解决方案2】:

    这里有一个小功能:

    function asterisks($toConvert) {
        $astNumber = strlen($toConvert) - 2;
        return substr($toConvert, 0, 1) . str_repeat("*", $astNumber) . substr($toConvert, -1);
    }
    
    $tempString= 'teststring';
    echo asterisks($tempString);
    

    【讨论】:

      【解决方案3】:
      $str = "test";
      $len = strlen($str);
      $str1 = '';
      for($i=0; $i < $len; $i++) {
         if($i != 0 && $i != ($len-1)) {
             $str1 .= '*';
         } else {
             $str1 .= $str[$i];
         }
      }
      
      echo $str1;
      

      使用上面的代码。这将满足您的要求。

      【讨论】:

        【解决方案4】:

        类似

        $split_string = str_split($start_string);
        $i = 1;
        while ( $i < count($split_string)-2 ){
            split_string[$i] = '*';
            $i++;
        }
        

        【讨论】:

          【解决方案5】:

          这将替换变量$text中的第一个和最后一个类似*bcdefghijklm*的字符;

          $text = 'abcdefghijklmn';
          $count = strlen($text)-1;
          echo str_replace(array($text[0], $text[$count]), '*', $text);
          

          【讨论】:

            猜你喜欢
            • 2014-04-07
            • 1970-01-01
            • 2014-05-13
            • 2013-09-19
            • 1970-01-01
            • 1970-01-01
            • 2018-05-28
            • 2013-06-30
            • 2018-12-03
            相关资源
            最近更新 更多