java代码 
Sting key="maiker";
byte b[]=key.getBytes();
String s=new String(b);php中要怎么实现?
求解!

解决方案 »

  1.   

    你要实现什么?PHP 中的 string 本来就是“字节串”。PHP 中的 charactor 跟 byte 是同一个概念,不像 Java 里有 char 和 byte 两种不同的数据类型。
      

  2.   

    PHP中直接
    $key = "maiker";
    $b = $key;
    就行了。
      

  3.   


    String key="maiker";
    byte b[]=key.getBytes();
    String s=new String(b);
    $key = "maiker";
    $b = str_split($key, 1);//跟上面对应不同,在于,元素是字符,上面数组元素的是ASCII码,可以用ord转换
    $s = join('', $b);
      

  4.   

    谢谢各位的回答 
    Sting key="maiker";
    byte b[]=key.getBytes();
    String s=new String(b);但是其中的 b[] 要进行相关操作 
    不只是简单的字符串的赋值
      

  5.   

    $key    = "maiker";
    $b    = str_split($key, 1);
    //做你的操作
    foreach($b as $v)
        $newb .= $v;
      

  6.   

    本帖最后由 xuzuning 于 2010-08-18 16:13:18 编辑
      

  7.   


    byte b[]=key.getBytes();
    /*这一步得到的b数组,是个key字符串组成的元素的ASCII值*/
    /*所以php中*/
    $b    = str_split($key, 1);
    foreach($b AS $k=> $v)
    {
     $b[$k] = ord($v);//这样的数组结果,同上不过拼接字符串的时候,还要用chr($b[$i]);才能转回去
    }
      

  8.   

    我没学过Java,如#8所说。则
    Java代码  
    Sting key="maiker";
    byte b[]=key.getBytes();
    String s=new String(b);对应的php代码为
    $key = "maiker";
    $b = array_map('ord', str_split($key, 1));
    $s = join('', array_map('chr', $b));
      

  9.   

    或者
    $key="maiker";
    $b  = unpack('C*',$key);
    $s  = implode('',array_map('chr',$b));
      

  10.   

    既然用了 unpack ,那么就彻底些
    $s = eval("return pack('C*', ". join(',', $b) .");");
      

  11.   

    可以不用eval,$key="maiker";
    $b  = unpack('C*',$key);
    $s  = call_user_func_array('pack',array_merge(array('C*'),$b));