下面这段怎么才能截取出来汉字呢,而且还要对英文做判断,因为Registrant :下面有时是英文,有时是汉字!是英文把英文截取出来,是汉字的话就把汉字截取出来!Registrant :  浠绘澀涓

解决方案 »

  1.   

    有可能是英文 也有可能是汉字,那么就是只有英文 和汉字两种情况了$str = 'Registrant :
    浠绘澀涓';
    preg_match('/Registrant :(.*+)/is', $str, $match);
    echo $match[1];
      

  2.   

    Registrant : 浠绘澀涓�Domain Name Server : f1g1ns1.dnspod.netf1g1ns2.dnspod.net
      

  3.   

    呵呵,是我的疏忽,完整的应该是这样的!Registrant :  浠绘澀涓�Domain Name Server :  f1g1ns1.dnspod.netf1g1ns2.dnspod.net
      

  4.   


    $str = <<<html
    Registrant :浠绘澀涓�Domain Name Server :f1g1ns1.dnspod.netf1g1ns2.dnspod.nethtml;preg_match('/Registrant :(.*)Domain/is', $str, $match);
    echo trim($match[1]);
      

  5.   

    代码返回的就是这样的,一会我贴出来正常的。但是这种格式的怎么写正则呢,PhpNewnew兄台辛苦了,可能是我还没说明白呢,要将这个正则具有灵活性,不管后面有什么都能将“浠绘澀涓”给取出来!单单写“domain”的话不太灵活。
      

  6.   

    Registrant : 任杭中Domain Name Server : f1g1ns1.dnspod.netf1g1ns2.dnspod.net
      

  7.   

    那你可以用一个变量啊,问题是你不指定这个 你的domain也是英文 计算机能通灵才能知道你这个domain的英文是结束.
      

  8.   

    浠绘澀涓�gbk环境中乱码,那显然是 utf-8 编码的了
    那么就简单了
    $s =<<< TXT
    Registrant :  任杭中Domain Name Server :  f1g1ns1.dnspod.netf1g1ns2.dnspod.netRegistrant :  ABCD EFGDomain Name Server :  f1g1ns1.dnspod.net
    TXT;preg_match_all('/Registrant :\s+[\w ]+/su', $s, $r);
    print_r($r);Array
    (
        [0] => Array
            (
                [0] => Registrant :  任杭中
                [1] => Registrant :  ABCD EFG
            ))
      

  9.   

    呵呵,误会啊,我这个是查询whois的,用whois网站43端口返回信息,返回到网页,但是用你的方法是这样的效果:
    Domain Name : qianyan001.com Registrant : 浠绘澀涓� Domain Name Server : f1g1ns1.dnspod.net f1g1ns2.dnspod.net 鏌ョ湅瀹屾暣whois璇峰埌:http://whois.ename.net/qianyan001.com For more information,please go to: http://whois.ename.net/qianyan001.com whois.ename.comArray ( [0] => Array ( ) )