preg_match_all("|http://hi\.baidu\.com\/([^\/]*?)|",$tmp,$blog_id);

解决方案 »

  1.   

    Array
    (
        [0] => Array
            (
                [0] => http://hi.baidu.com/
                [1] => http://hi.baidu.com/
                [2] => http://hi.baidu.com/
                [3] => http://hi.baidu.com/
                [4] => http://hi.baidu.com/
                [5] => http://hi.baidu.com/
                [6] => http://hi.baidu.com/
                [7] => http://hi.baidu.com/
                [8] => http://hi.baidu.com/
                [9] => http://hi.baidu.com/
                [10] => http://hi.baidu.com/
                [11] => http://hi.baidu.com/
                [12] => http://hi.baidu.com/
                [13] => http://hi.baidu.com/
                ..........................
    似乎不对吧?菜鸟我不懂正则,一知半解。
      

  2.   

    preg_match_all("|http://hi\.baidu\.com\/([^\/]+?)|",$tmp,$blog_id);
      

  3.   

    TO:lvlfforever(那一年) 运行结果是:Array
    (
        [0] => Array
            (
                [0] => http://hi.baidu.com/s
                [1] => http://hi.baidu.com/m
                [2] => http://hi.baidu.com/m
                [3] => http://hi.baidu.com/y
                [4] => http://hi.baidu.com/y
                [5] => http://hi.baidu.com/4
                [6] => http://hi.baidu.com/4
                [7] => http://hi.baidu.com/n把第一位给取出来了.请帮我再看下,谢谢。
      

  4.   

    百度空间的帐号可以是英文字母,下划线等组成,也可以由中文汉字或汉字加字母组成试试这个正则
    '/^[' . chr(0xa1) . '-' . chr(0xff) . 'A-Za-z_]$(最少字符数目,最大字符数目)/i
      

  5.   

    TO:PleaseDoTellMeWhy(Feng里冒着傻气),好像还不对,什么也没取出来,谢谢。
      

  6.   

    谢谢bingofei(bingo),这样还是只能取出第一个运行结果是:Array
    (
        [0] => Array
            (
                [0] => http://hi.baidu.com/s
                [1] => http://hi.baidu.com/m
                [2] => http://hi.baidu.com/m
                [3] => http://hi.baidu.com/y
                [4] => http://hi.baidu.com/y
                [5] => http://hi.baidu.com/4
                [6] => http://hi.baidu.com/4
      

  7.   

    <?php
    $tmp = <<< EOT
    http://hi.baidu.com/xxxx (xxx为会员帐号,字母数字下划线汉字等不限)http://hi.baidu.com/123 (xxx为会员帐号,字母数字下划线汉字等不限)http://hi.baidu.com/xx_汉字123
    http://community.csdn.net/Expert/topic/5229/5229580.xml?temp=.2143824
    ........
    EOT;
    preg_match_all("#http://hi\.baidu\.com/((?:[\x80-\xff].|\w)+)#",$tmp,$blog_id);
    print_r($blog_id);
    ?> Array
    (
        [0] => Array
            (
                [0] => http://hi.baidu.com/xxxx
                [1] => http://hi.baidu.com/123
                [2] => http://hi.baidu.com/xx_汉字123
            )    [1] => Array
            (
                [0] => xxxx
                [1] => 123
                [2] => xx_汉字123
            ))
     
      

  8.   

    呵呵,上面给你的正则前面和后面的"号其实是正则的一部分<?php
    $url = 'http://hi.baidu.com';
    $tmp = file_get_contents($url);
    preg_match_all("/\"http:\/\/hi\.baidu\.com\/([^\/]+?)\"/is",$tmp,$blog_id);
    print_r($blog_id);
    exit;
    ?>
      

  9.   

    修改一下,包含“或者'的情况
    <?php
    $url = 'http://hi.baidu.com';
    $tmp = file_get_contents($url);
    preg_match_all("/http:\/\/hi\.baidu\.com\/([^\/]+?)[\"|\']/is",$tmp,$blog_id);
    print_r($blog_id);
    exit;
    ?>
      

  10.   

    是的,问题解决了,谢谢bingofei(bingo) 和xuzuning(唠叨) !!!!现在结帖。
      

  11.   

    <?php
    $url = 'http://hi.baidu.com';
    $tmp = file_get_contents($url);
    preg_match_all("|http://hi\.baidu\.com\/([^\s\/]*?)|iU",$tmp,$blog_id);
    print_r($blog_id);
    exit;
    ?>