我在搞一个项目,需要用api接口去另外一个网站发送请求,然后返回下面的数据[RESPONSE]
code = 211
description = Domain name not available
EOF主要是在“code = 211”,根据不同的发送请求,code=后面的数据有多种可能。
比如也可能是“code = 210”等。那我怎么把上面的字符串中间的“code = 211”提取出来?因为我要判断code的值,然后作出不同的处理方法

解决方案 »

  1.   

    你把那串东西保存成本低ini文件,然后就可以用parse_ini_file了。
    或者你就直接正则分析吧。
      

  2.   

    $str = "code = 211";
    parse_str($str);
    echo $code;
      

  3.   


    code不一定就=211,也有可能从200-500之间的任何一个数字的
      

  4.   

    $txt = <<< TEXT
    [RESPONSE] 
    code = 211 
    description = Domain name not available 
    EOF 
    TEXT;preg_replace("/(.+)=(.+)/me", '$$1=trim("$2")', $txt);echo $code; //211
    echo $description; //Domain name not available
      

  5.   

    一看就是ini文件,我觉得这个方法省时省力.
      

  6.   

    1.保存成ini文件
    2.正则分析
    -->这两种,哪个效率高?速度快?
      

  7.   

    还是用正则。因为这个是查询域名状态,如果写入.ini文件,那同时有几十个人同时查询,都写入文件,这样感觉不好。
      

  8.   

    $str = <<<STR
    [RESPONSE]
    code = 211
    description = Domain name not available
    EOF 
    STR;$reg = '/\[RESPONSE\][\r\n]{1,2}code\s*=\s*(?<num>\d{1,3})[\r\n]{1,2}description\s*=\s*[\w ]+?[\r\n]{1,2}?EOF/';preg_match_all($reg, $str, $matches);print_r($matches['num']);