从PHP循环中生成XML文件



我正在为常见问题解答建立生活搜索,为了这样做,我需要一个XML文档,其中将存储Livesearch建议。

问题是常见问题解答将经常更新,我不想每次触摸代码。

因此,我正在尝试制作一个PHP文件,该文件在我们打开时会生成新的XML文件。由于不同文件夹中有许多常见问题解答项目,因此我需要脚本自动在某个目录中找到所有常见问题解答。FAQ项目存储在TXT文件中,这些文件存储在使用数字作为文件名(1、2、3等(的目录中,因此我可以轻松添加/修改/删除它们。

一条路径看起来像这样: FAQS/PROVERACES/1/QUASION.TXT faqs/professionals/2/Question.txt 对于第二个常见问题项目 faqs/students/questey.txt 在其他主题中的FAQ项目。

例如,如果我想添加一个新的常见问题项目,我只会创建一个文件夹,假设" 3",然后在内部添加2个文本文件( Question.txt 答案.txt (。然后,我将运行PHP脚本,以便考虑到新的常见问题解答项目" 3"。

,XML文件将更新建议。

我能够根据txt文件的内容制作一个脚本来构建XML文件。但是,我无法"检测"所有文件夹(FAQ项目所在的位置(,并将它们添加到XML文件中。

脚本基于此页:w3schools.com/php/php_ajax_livesearch.asp

这是代码:

<?php 
foreach (glob("../faqs/professionals/*",GLOB_ONLYDIR) as $x) {
  $pages = array(); 
  $pages [] = array( 
  'title' => file_get_contents($x.'/question.txt'), 
  'url' => dirname($x),
  );   
}
  $doc = new DOMDocument(); 
  $doc->formatOutput = true; 
  $r = $doc->createElement( "pages" ); 
  $doc->appendChild( $r ); 
  foreach( $pages as $link ) 
  { 
  $b = $doc->createElement( "link" ); 
  $title = $doc->createElement( "title" ); 
  $title->appendChild( 
  $doc->createTextNode( $link['title'] ) 
  ); 
  $b->appendChild( $title ); 
  $url = $doc->createElement( "url" ); 
  $url->appendChild( 
  $doc->createTextNode( $link['url'] ) 
  ); 
  $b->appendChild( $url ); 
  $r->appendChild( $b ); 
  } 
  echo $doc->saveXML(); 
  $doc->save("links.xml") 
  ?>

此脚本工作起作用后,我将尝试使Livesearch在单击建议时在文本输入下方显示答案的内容。但这已经是另一个问题...

任何帮助将不胜感激。:(

我认为问题是,当您构建第一个$pages数组时,您使用dirname($x)。这正在以目录的目录名称为单位。因此,glob((正在返回faq/professionals/1的路径,而您采用的目录名称,您最终会使用faq/professionals

所以我认为您需要更改的只是URL的设置...

$pages [] = array(
   'title' => file_get_contents($x.'/question.txt'),
   'url' => $x
);

相关内容

  • 没有找到相关文章

最新更新