要求输出字母表,然后再用*把cdef替换掉,下面是我的代码,求助我怎么把每个字母都用*替代,我的代码是把cdef替换掉了
<?php
$a=ord("a");
$z=ord("z");$i=$a; // 97
var_dump($i);$string = "a";while($i<=$z)
{
//echo chr($i);
$i++;
// var_dump($i);
$string .= chr($i);
}echo "<br />";
var_dump($string);
$str= str_replace("cdef","*",$string);
echo $str;

解决方案 »

  1.   

    有多种方法 简单的可这样$arr = array('c','d','e','f');   //就是你想替换的字母
    while($i<=$z)
    {
    //echo chr($i);
    $i++;
    // var_dump($i);
    if(in_array(chr($i),$arr))
    {
    $string .= '*';
    }
    else
    {
    $string .= chr($i);
    }
      

  2.   

    $str = preg_replace("/[cdef]/", "*", $string);
      

  3.   


    $arr = array("c" => "*", "d" => "*", "e" => "*", "f" => "*");
    $str = "abcdefg";
    echo strtr($str,$arr);
      

  4.   

    补充一下,输出字母表的代码也有问题,$string="a",这句不对,要怎么改?
      

  5.   


    $a=ord("a");
    $z=ord("z");$i=$a; // 97
    var_dump($i);$string = "a";while($i<$z)
    {
    //echo chr($i);
    $i++;
    // var_dump($i);
    $string .= chr($i);
    }echo "<br />";
    var_dump($string);$arr = array("c" => "*", "d" => "*", "e" => "*", "f" => "*");echo strtr($string,$arr);
      

  6.   

    "bcdefghijklmnopqrstuvwxyz{" b****ghijklmnopqrstuvwxyz{ 
    各位大虾,这是修改后代码的输出,为什么会有个大括号啊?
    $a=ord("a");
    $z=ord("z");$i=$a; // 97
    var_dump($i);while($i<=$z) // 1
    {
      
    echo chr($i);
     $i++;// 2
    var_dump($i);
    $string .= chr($i); // 3 a
    }echo "<br />";
    var_dump($string);// ?$str= preg_replace("/[cdef]/","*",$string);
    echo $str;
      

  7.   

    那个是我一开始的代码,是有问题的, $string="a",这句,不能这样写吧?
      

  8.   

    preg_replace("/[cdef]/","*",$string);//替换最简洁@
      

  9.   

    谢谢各位,问题解决了,完整代码如下:
    $a=ord("a");
    $z=ord("z");$i=$a; // 97
    $string="";
    while($i<=$z) 
    {
       $string .= chr($i); 
    $i++;
    }
    var_dump($string);
    echo "<br />";
    $str= preg_replace("/[cdef]/","*",$string);
    echo $str;