0

我继承了一些解析 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 次 foreach 和 if ?

谢谢!

4

2 回答 2

1

抽象你的功能。

文件搜索词作为参数传递给函数,然后使用它。

就像是:

function parse_xml_file($file, $terms)

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

有关详细信息,请参阅大坏手册

于 2012-04-19T20:00:35.300 回答
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>';
}
于 2012-04-19T19:57:36.463 回答