$a = "ShowMsg=QQ%E4%BC%9A%E5%91%98%EF%BC%8C%E3%81%90.%26%23039%3BHHH%26nbsp%3B%5C%26nbsp%3B%26nbsp%3B%26nbsp%3Bm&NickName=%E3%81%90.%26%23039%3BHHH%26nbsp%3B%5C%";想得到ShowMsg=和NickName之间的字符串。substr不好用了

解决方案 »

  1.   

    preg_match('/ShowMsg=(.*)NickName/',$a,$arr);
    echo $arr[1];
      

  2.   

    $a = "ShowMsg=QQ%E4%BC%9A%E5%91%98%EF%BC%8C%E3%81%90.%26%23039%3BHHH%26nbsp%3B%5C%26nbsp%3B%26nbsp%3B%26nbsp%3Bm&NickName=%E3%81%90.%26%23039%3BHHH%26nbsp%3B%5C%";
    parse_str($a,$array);
    print_r($array);Array
    (
        [ShowMsg] => QQ浼氬憳锛屻亹.'HHH \   m
        [NickName] => 銇?'HHH \%
    )
      

  3.   

    刚才上不来CSDN。自己解决了
    $a =  "ShowMsg=QQ%E4%BC%9A%E5%91%98%EF%BC%8C%E3%81%90.%26%23039%3BHHH%26nbsp%3B%5C%26nbsp%3B%26nbsp%3B%26nbsp%3Bm&NickName";
    $b = '';
    preg_match('/ShowMsg=(.+)NickName/iU', $a, $b );
    echo $b[1];谢谢各位大哥
      

  4.   

    是一对一对的,
    以&分为数组。然后再以=分为数组。那么想怎么拿就怎么拿。
      

  5.   


    parse_str($a);
    echo $ShowMsg;
      

  6.   

    parse_str!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!