本来我还以为是数据库的字段类型给错了,老是插入数据失败,最后才知道是因为全角的问题,后来去网上找了全角转半角的函数,都不能用。。贴代码:
function SBC_DBC($str,$args2) { //半角和全角转换函数,第二个参数如果是0,则是半角到全角;如果是1,则是全角到半角
    $DBC = Array( 
        '0' , '1' , '2' , '3' , '4' ,  
        '5' , '6' , '7' , '8' , '9' , 
        'A' , 'B' , 'C' , 'D' , 'E' ,  
        'F' , 'G' , 'H' , 'I' , 'J' , 
        'K' , 'L' , 'M' , 'N' , 'O' ,  
        'P' , 'Q' , 'R' , 'S' , 'T' , 
        'U' , 'V' , 'W' , 'X' , 'Y' ,  
        'Z' , 'a' , 'b' , 'c' , 'd' , 
        'e' , 'f' , 'g' , 'h' , 'i' ,  
        'j' , 'k' , 'l' , 'm' , 'n' , 
        'o' , 'p' , 'q' , 'r' , 's' ,  
        't' , 'u' , 'v' , 'w' , 'x' , 
        'y' , 'z' , '-' , ' '  , ':' ,
  '.' , ',' , '/' , '%' , '#' ,
  '!' , '@' , '&' , '(' , ')' ,
  '<' , '>' , '"' , ''' , '?' ,
  '[' , ']' , '{' , '}' , '\' ,
  '|' , '+' , '=' , '_' , '^' ,
  '¥' , ' ̄' , '`'
    );
  $SBC = Array( //半角
         '0', '1', '2', '3', '4',  
         '5', '6', '7', '8', '9', 
         'A', 'B', 'C', 'D', 'E',  
         'F', 'G', 'H', 'I', 'J', 
         'K', 'L', 'M', 'N', 'O',  
         'P', 'Q', 'R', 'S', 'T', 
         'U', 'V', 'W', 'X', 'Y',  
         'Z', 'a', 'b', 'c', 'd', 
         'e', 'f', 'g', 'h', 'i',  
         'j', 'k', 'l', 'm', 'n', 
         'o', 'p', 'q', 'r', 's',  
         't', 'u', 'v', 'w', 'x', 
         'y', 'z', '-', ' ', ':',
   '.', ',', '/', '%', '#',
   '!', '@', '&', '(', ')',
   '<', '>', '"', '\'','?',
   '[', ']', '{', '}', '\\',
   '|', '+', '=', '_', '^',
   '$', '~', '`'
    );
if($args2==0) 
   return str_replace($SBC,$DBC,$str);  //半角到全角
if($args2==1)
   return str_replace($DBC,$SBC,$str);  //全角到半角
else
   return false;

不知道是怎么回事儿!

解决方案 »

  1.   

    就是一简单替换,你那里报什么错?我copy运行了一下是正确的
    function SBC_DBC($str,$args2) { //半角和全角转换函数,第二个参数如果是0,则是半角到全角;如果是1,则是全角到半角
        $DBC = Array(
            '0' , '1' , '2' , '3' , '4' , 
            '5' , '6' , '7' , '8' , '9' ,
            'A' , 'B' , 'C' , 'D' , 'E' , 
            'F' , 'G' , 'H' , 'I' , 'J' ,
            'K' , 'L' , 'M' , 'N' , 'O' , 
            'P' , 'Q' , 'R' , 'S' , 'T' ,
            'U' , 'V' , 'W' , 'X' , 'Y' , 
            'Z' , 'a' , 'b' , 'c' , 'd' ,
            'e' , 'f' , 'g' , 'h' , 'i' , 
            'j' , 'k' , 'l' , 'm' , 'n' ,
            'o' , 'p' , 'q' , 'r' , 's' , 
            't' , 'u' , 'v' , 'w' , 'x' ,
            'y' , 'z' , '-' , ' '  , ':' ,
      '.' , ',' , '/' , '%' , '#' ,
      '!' , '@' , '&' , '(' , ')' ,
      '<' , '>' , '"' , ''' , '?' ,
      '[' , ']' , '{' , '}' , '\' ,
      '|' , '+' , '=' , '_' , '^' ,
      '¥' , ' ̄' , '`'
        );
      $SBC = Array( //半角
            '0', '1', '2', '3', '4', 
            '5', '6', '7', '8', '9',
            'A', 'B', 'C', 'D', 'E', 
            'F', 'G', 'H', 'I', 'J',
            'K', 'L', 'M', 'N', 'O', 
            'P', 'Q', 'R', 'S', 'T',
            'U', 'V', 'W', 'X', 'Y', 
            'Z', 'a', 'b', 'c', 'd',
            'e', 'f', 'g', 'h', 'i', 
            'j', 'k', 'l', 'm', 'n',
            'o', 'p', 'q', 'r', 's', 
            't', 'u', 'v', 'w', 'x',
            'y', 'z', '-', ' ', ':',
      '.', ',', '/', '%', '#',
      '!', '@', '&', '(', ')',
      ' <', '>', '"', '\'','?',
      '[', ']', '{', '}', '\\',
      '|', '+', '=', '_', '^',
      '$', '~', '`'
        );
    if($args2==0)
      return str_replace($SBC,$DBC,$str);  //半角到全角
    if($args2==1)
      return str_replace($DBC,$SBC,$str);  //全角到半角
    else
      return false;

    echo SBC_DBC('0abcd',1);//输出0abcd
      

  2.   

    Data too long for column ' at line 1  就报这个呀。。
      

  3.   

    foolbirdflyfirst
    要不你试试我的这个sql语句?
    insert mb_templet(templetName,templetContent,addUser,addDate,re,isDel) values('似懂非懂2','<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>视频教学——魅秀美容美发网</title>','sed',now(),'',0);
    我这个是一个网页里面,就那两颗横线的问题。。老是不能解决!
      

  4.   

    我copy了这个,发现你这里的--并不是全角的,尝试在同样位置键入全角--,替换成功。
    '<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>视频教学——魅秀美容美发网 </title> '还有你的报错是Data too long for column?说明欲insert的字符长度超过了字段设置的长度。