结合PHP函数

时间:2012-04-19 19:55:42

标签: php

我继承了一些解析xml文件的php来填充一个充满无序列表的页面,我想知道是否有办法整合php函数以提高它们的效率。

大约有25个左右的功能:

function oaAccounting(){

  // load SimpleXML
  $term = new SimpleXMLElement('training_list.xml', null, true);
  echo <<<EOF
  <ul>
EOF;

  foreach($term as $term)
  {
     if(preg_match("/accounting/i", $term->keyword)){
        echo <<<EOF
        <li>{$term->name}</li>
EOF;
     }
  }
  echo '</ul>';
}

每个人扫描xml文件以查找它正在搜索的术语/关键字,并将术语作为列表元素添加到特定于该函数的无序列表中。下一个函数执行相同的操作,但是对于不同的术语/关键字,并将其添加到单独的无序列表中。

有没有办法将所有这些结合起来以防止必须连续做25次?

谢谢!

2 个答案:

答案 0 :(得分:1)

摘要您的功能。

文件搜索字词作为参数传递给该函数,并使用该函数。

类似的东西:

function parse_xml_file($file, $terms)

然后在调用函数时使用pass $file$terms

有关详细信息,请参阅 Teh big bad manual

答案 1 :(得分:0)

这个修改过的函数接受一个参数,即要查找的单词,然后在preg_match()函数中使用它。因此,要使用它,您需要做的就是使用您正在搜索的术语来调用它。这应该替换所有硬编码函数。

function searchXML($search){

    // load SimpleXML
    $terms = new SimpleXMLElement('training_list.xml', null, true);
    echo <<<EOF
    <ul>
    EOF;
    foreach($terms as $term)
    {
        if(preg_match("/$search/i", $term->keyword)){
            echo <<<EOF
            <li>{$term->name}</li>
        EOF;
    }}
    echo '</ul>';
}