$str=str_replace("\"","“",$str);
$str=str_replace("\"","”",$str);

解决方案 »

  1.   

    试用一下这个
    mixed str_replace ( mixed search, mixed replace, mixed subject)
    search是你要被转换的字符串或者是数组,replace是要转换得到的字符串或者数组,subject是整个字符串或者数组
    它比ereg_replace() or preg_replace(). 要快的多
      

  2.   

    phpteam(George):
        你的函数我知道,但不能实现我的功能。你可以实现第一个"换成“
    但无法将第二个 " 换成 ”。
      

  3.   

    _Shakespeare(网络骑士) :
         你的思路与phpteam(George) 一样,我的要求是第一个"替换成“,但第二个"要替换成”,好像你们的那个函数实现不了。
      

  4.   

    $str='a"b"c"d"e"f"g';
    echo preg_replace('/"([^"]+)"/U',"“\\1”",$str);
      

  5.   

    秋水得正则表达式用的太棒,但是我写的不能白写了,还是帖出来算了
    function replaceQuot($str){
    $m=1;
    for($n=0;$n<strlen($str);$n++){
    if(substr($str,$n,1)=="\""){
    if($m==0){
    $m=1;
    $str=substr($str,0,$n)."“".substr($str,$n+1);
    }else{
    $str=substr($str,0,$n)."”".substr($str,$n+1);
    $m=0;
    }
    }
    }
    return $str;
    }
      

  6.   

    发现秋水得bug,如果两个""在一起就不行了
    try:
    $str="\"adsfaadsfadsf\"adfadsfasdfasfd\"\"\"adsfasfdafds\"afds\"sdf\"";
    用上面的函数就不会
      

  7.   

    就知道有人会说,呵呵
    解决方法 +=>*
    echo preg_replace('/"([^"]*)"/U',"“\\1”",$str);不用测也知道你函数的漏洞,如果不成双出现的"呢?
      

  8.   

    秋水好厉害,hehe.如果不成对,最后一个也会转换
    不小心写反了,纠正:
    function replaceQuot($str){
    $m=1;
    for($n=0;$n<strlen($str);$n++){
    if(substr($str,$n,1)=="\""){
    if($m==1){
    $m=0;
    $str=substr($str,0,$n)."“".substr($str,$n+1);
    }else{
    $str=substr($str,0,$n)."”".substr($str,$n+1);
    $m=1;
    }
    }
    }
    return $str;
    }
      

  9.   

    qiushuiwuhen(秋水无恨) AND vivanboy(我是谁?) :  正则表达式好难看懂,不过好像比较简单。函数的实现我也写过,思路是一次替换就将第一个和最后一个分别替换成“和”,但结果是替换了,字符串又重写了一遍(显示二次)。不过你们的应该是对的。接分吧!
      

  10.   

    $str="123456789";
    $str[2]="0";
    echo $str;
      

  11.   

    qiushuiwuhen(秋水无恨)   你写的是什么意思呀?