难道php里真的没有直接做这种处理的函数啊?!新版本中也没有吗?好麻烦~~~~~~~~:(

解决方案 »

  1.   

    //將第$n個$fromStr替換為$toStr
    function repstrn($fromStr,$toStr,$n,$parentStr) 
    {
    if(!strpos($parentStr,$fromStr)||substr_count($parentStr,$fromStr)<$n) return $parentStr;
    $i=1;
    $m=strlen($fromStr);
    for($i=1;$i<=$n;$i++){
    $k=strpos($parentStr,$fromStr);
    if($i==$n)
    $resultStr.=substr($parentStr,0,$k).$toStr;
    else
    $resultStr.=substr($parentStr,0,$k+$m);
    $parentStr=substr($parentStr,$k+$m);

    }
    return $resultStr.$parentStr;
    }隨手編寫的,可能比較臃腫,試一試
      

  2.   

    $a="020426094902";
    $b=strpos($a,"2");
    $c=substr($a,0,$b)."1".substr($a,($b+1),(strlen($a)-$b));

    $c=substr($a,0,1)."1".substr($a,2,(strlen($a)-1));
      

  3.   

    $aa=020426094902;
    $bb=explode("2",$aa);
    echo $bb[1];
    //此时显示 2609490
    $cc=str_replace("2","1",$bb[1]);
    echo $cc;
      

  4.   

    不好意思,有點bug
    改為
    //替換第$n個字符串$fromStr替換為$toStr
    function repstrn($fromStr,$toStr,$n,$parentStr) 
    {
    if(substr_count($parentStr,$fromStr)<$n)
    return $parentStr;
    $m=strlen($fromStr);
    for($i=1;$i<=$n;$i++){
    $k=strpos($parentStr,$fromStr);
    if($i==$n)
    $resultStr.=substr($parentStr,0,$k).$toStr;
    else
    $resultStr.=substr($parentStr,0,$k+$m);
    $parentStr=substr($parentStr,$k+$m);

    }
    return $resultStr.$parentStr;
    }