但是,如果出现如下行那样的字串呢?结果会是什么?
SD "I am [you a?] a 'student'. " + 'lalalal haha[j]ah' DDDDD

解决方案 »

  1.   

    <?
    $ss="[May/12/2006 11:12:13] \"GET /index.html HTTP/1.0\" <Accept-Range: bytes>";
    $ss=ereg_replace("[<|>|\[]","",$ss);
    $ss=ereg_replace("]","",$ss);
    echo $ss;
    $pieces = explode("\"", $ss);
    print_r($pieces);
    ?>
      

  2.   

    <?php
    $str = <<<EOT
    [May/12/2006 11:12:13] "GET /index.html HTTP/1.0" <Accept-Range: bytes>
    EOT;
    print_r(str_word_count($str, 1));
    ?> 如何要你的结果,你只能用正则了
      

  3.   

    想获得:
    May/12/2006 11:12:13
    GET /index.html HTTP/1.0
    Accept-Range: bytes
    个人觉得还是要正则吧!
      

  4.   

    别用 explode 函数,你的需求和这个功能不符。按照你的需求写正则吧
      

  5.   

    个人认为 whalefish2001(whale) 的方法应该要好点,不过他的里面可用正则应该再智能点,以后就是一个扩展了,呵呵
      

  6.   

    explode -- 使用一个字符串分割另一个字符串正则是正解
      

  7.   

    正则的“php”时间开销是不是有点大。
      

  8.   

    如果不用正则。那就把这些特殊字符也explode成数组,然后再join或者implode成原来的。
      

  9.   

    function You_need($string)
    {
    eregi("\[.*\]",$string,$Arr1);
    $Array[]=$Arr1[0];
    eregi("\".*\"",$string,$Arr2);
    $Array[]=$Arr2[0];
    eregi("<.*>",$string,$Arr3);
    $Array[]=$Arr3[0];
    return $Array;
    }
    这样是不是很麻烦?初学