注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

前端开发那点事儿

冒犯之处,敬请谅解。

 
 
 

日志

 
 
 
 

PHP 让人犯糊涂的preg_match_all  

2012-12-27 14:58:55|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
需求:获取XML文件中的转到其他号码动作指向的号码
<?xml version="1.0" encoding="utf-8"?>
<ivr_cfg>
         <ivr_tree>
          <ivr_tree_id>2</ivr_tree_id>
          <ivr_tree_name>11</ivr_tree_name>
          <ivr_tree_node type="root">
           <node_id>root</node_id>
           <node_name>root</node_name>
          <ivr_tree_children>
     <ivr_tree_node>
      <node_id>n_2827149</node_id>
      <node_name>TIME</node_name>
      <input_error>1</input_error>
     </ivr_tree_node>
</ivr_tree_children>
</ivr_tree_node>
    <ivr_tree_node>
  <node_id>n_2827149</node_id>
  <node_name>TIME</node_name>
</ivr_tree_node>
<ivr_tree_node>
 <node_id>n_4426575</node_id>
 <node_name>DATA</node_name>
</ivr_tree_node>
</ivr_tree>
  <ivr_tree_node_list>
   <ivr_tree_node>
    <node_id>root</node_id>
    <node_name>root</node_name>
    <node_type>1</node_type>
   <enter_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</enter_node_prompt>
<input_timeout>30</input_timeout>
<max_error_times>3</max_error_times>
<need_terminator>1</need_terminator>
<terminator>#</terminator>
<max_dtmf_length>127</max_dtmf_length>
<receive_dtmf_when_playing>1</receive_dtmf_when_playing>
<action_after_input_error>
<action_type>1</action_type>
<action_target>n_2827149</action_target>
</action_after_input_error>
<ivr_tree_node_actionmaps>
<ivr_tree_node_actionmap>
<actionmap_id>m_9267273</actionmap_id>
<actionmap_dtmf_codes>1</actionmap_dtmf_codes>
<action>
<action_type>3</action_type>
<action_target>3333</action_target>

<wait_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</wait_node_prompt>
</action>
<action_after_success>
<action_type>5</action_type>
</action_after_success>
<action_after_failed>
<action_type>4</action_type>
</action_after_failed>
<exit_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</exit_node_prompt>
</ivr_tree_node_actionmap>
<ivr_tree_node_actionmap>
<actionmap_id>m_4031373</actionmap_id>
<actionmap_dtmf_codes>5</actionmap_dtmf_codes>
<action>
<action_type>3</action_type>
<action_target>334455</action_target>
<wait_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</wait_node_prompt>
</action>
<action_after_success>
<action_type>4</action_type>
</action_after_success>
<action_after_failed>
<action_type>5</action_type>
</action_after_failed>
<exit_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</exit_node_prompt>
</ivr_tree_node_actionmap>
<ivr_tree_node_actionmap>
<actionmap_id>m_3649903</actionmap_id>
<actionmap_dtmf_codes>3</actionmap_dtmf_codes>
<action>
<action_type>3</action_type>
<action_target>9000</action_target>
<wait_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</wait_node_prompt>
</action>
<action_after_success>
<action_type>5</action_type>
</action_after_success>
<action_after_failed>
<action_type>5</action_type>
</action_after_failed>
<exit_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</exit_node_prompt>
</ivr_tree_node_actionmap>
</ivr_tree_node_actionmaps>
</ivr_tree_node>
  <ivr_tree_node>
<node_id>n_2827149</node_id>
<node_name>TIME</node_name>
<node_type>2</node_type>
<ivr_tree_node_actionmaps>
<ivr_tree_node_actionmap>
<actionmap_id>m_6767273</actionmap_id>
<rule_date>2012-12-04/2012-12-20</rule_date>
<rule_week>1/5</rule_week>
<rule_time>00:15:00/03:15:00</rule_time>
<action>
<action_type>3</action_type>
<action_target>112233</action_target>
<wait_node_prompt>
<prompt_type>NO-VOICE</prompt_type>
</wait_node_prompt>
</action>
<action_after_success>
<action_type>5</action_type>
</action_after_success>
<action_after_failed>
<action_type>5</action_type>
</action_after_failed>
</ivr_tree_node_actionmap>
</ivr_tree_node_actionmaps>
</ivr_tree_node>
<ivr_tree_node>
<node_id>n_4426575</node_id>
<node_name>DATA</node_name>
<node_type>4</node_type>
</ivr_tree_node>
</ivr_tree_node_list>
  <resources>
   <voice_resource_list>
    <voice_resource>
     <voice_resource_id>r_2782898</voice_resource_id>
     <voice_resource_name>11</voice_resource_name>
     <voice_resource_type>1</voice_resource_type>
     <voice_resource_filename>TTS_IVR_wk.wav</voice_resource_filename>
    </voice_resource>
   <voice_resource>
 <voice_resource_id>r_6009522</voice_resource_id>
 <voice_resource_name>33</voice_resource_name>
 <voice_resource_type>4</voice_resource_type>
 <voice_resource_filename>TTS_IVR_kk.avi</voice_resource_filename>
</voice_resource>
</voice_resource_list>
 </resources>
 <variables/>
</ivr_cfg>
  


 //获取所有ACD组号码
    function listGroup($id){
        $dataArr = array();
        $numberArr = array();
        $sql = $this->dbConn->sql_select('vsivrflowtree', " id = $id", 0, 'filename');
        $queryId = $this->dbConn->query($sql);
        $record = $this->dbConn->fetch_array($queryId);
        $file = $record['filename'];
        clearstatcache();
        $content = file_get_contents('./ivrtree/' . $file);
        if($content){
            preg_match_all('|<action_type>3[.\n\S\s]+</action_target>|U',$content,$matchArr);
            if(count($matchArr) && count($matchArr[0])){
                foreach($matchArr[0] as $tmpMatch){
                    preg_match_all('/<action_target>\d+<\/action_target>/',$tmpMatch,$recordArr);
                    if($recordArr[0][0]){
                        $numberArr[] = str_replace(array('action_target','<','/','>'),'',$recordArr[0][0]);
                    }
                }
                $sql = 'select group_concat(groupnum) numbers from vsacdgroup where groupnum in (' . implode(',',$numberArr) . ')';
                $result = $this->dbConn->row_query_one($sql);
                $dataArr = $result['numbers'];
            }
        }
        return $dataArr;
    }
  评论这张
 
阅读(429)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017