$str="7aaa87bbb87ccc87ddd87eee87fff8";想把7、8之间的字符打印出来

解决方案 »

  1.   


    $str = "7aaa87bbb87ccc87ddd87eee87fff8";
    $pattern = '/7(.*)8/iU';
    preg_match_all($pattern, $str, $arr);
    echo '<pre>';
    print_r($arr);/*Array
    (
        [0] => Array
            (
                [0] => 7aaa8
                [1] => 7bbb8
                [2] => 7ccc8
                [3] => 7ddd8
                [4] => 7eee8
                [5] => 7fff8
            )    [1] => Array
            (
                [0] => aaa
                [1] => bbb
                [2] => ccc
                [3] => ddd
                [4] => eee
                [5] => fff
            ))*/
      

  2.   

    我把这些字符这样打印出来..结果就无限循环了..之前也试过类似这样定义while 的条件却行...
    我想我对while的理解还不够。。希望能指点一下<?php
    $str = "7aaa87bbb87ccc87ddd87eee87fff8";
    $pattern = '/7(.*)8/iU';
    preg_match_all($pattern, $str, $arr);
    echo '<pre>';
    $i=0;
    while($arr)
    {
    print_r($arr[1][$i]);
    $i++;
    }
    ?>
      

  3.   

    我试着这样写了一下..现在想把显示出来的序号换成链接的标题,比如这段代码<?php
    ob_start('Content-type: text/html;charset=gb2312');
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://www.baidu.com/s?wd=%E5%8C%97%E4%BA%AC%E5%9C%B0%E9%93%81+%E7%8E%8B%E9%B9%8F&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
    $htmls = curl_exec($ch);
    $i=0;
    $pattern ="#baidu.com\/link(.*?)\"#is";
    preg_match_all($pattern, $htmls, $arr);
    echo '<pre>';
    $i=0;
    while(@$arr[1][$i])
    {
    print_r("<href=\"www.baidu.com\/link".$arr[1][$i].
    "\">".$i."</a><br/>");
    $i++;
    }
    ?>想把那些0123456换成该网页的标题。。用正则会不会很困难我想到的就是再进去该链接curl然后取title