【问题标题】:Extracting href links from multiple directories on a page从页面上的多个目录中提取 href 链接
【发布时间】:2012-01-18 14:40:43
【问题描述】:

我正在使用 Javascript JFlot Graph 来监控我的服务器上的 .rrd 文件列表。我在下拉菜单中将所有 .rrd 文件 href 链接硬编码到 Graph 的 JavaScript 代码中。然后我意识到硬编码它们是不好的做法。

问题来了。

我想编写一些代码,每次打开图表时,都会检查服务器或页面,查找所有 .rrd 文件,将它们提取为 href 链接,并将它们放在“某物”中,以便 JavaScript '图表的下拉菜单'可以读取它。

我研究了两种解决方案,1. 通过 JQuery 和 Ajax 使用客户端编程(我不是跨域编码)2. 通过 PHP 和 Json 使用服务器端。

我认为服务器端是更好的选择,因为它更容易并且代码不需要下载任何东西,无论它是否只需要几秒钟。

我只是想不出这个问题的解决方案。我希望我能很好地解释我的问题,欢迎提供任何建议或代码,包括任何要遵守的良好做法或是否通过从页面上的目录中提取选项 1 或从服务器收集数据来使用选项 2。

感谢您的时间和考虑,我真的很感激。

【问题讨论】:

  • 根据您的网站获得的流量,每次调用页面时生成文件列表会占用大量资源。
  • 是的,我想这么多,但是,我使用图表来获取非常详细的分析数据,重要的是我知道所有文件都是最新的。从页面而不是服务器获取数据会更好吗? (由于 apache 的工作方式,我在从页面中获取数据时遇到了问题)。

标签: php json hyperlink href


【解决方案1】:

只要所有文件都在一个目录中,您就可以使用 PHP 的 glob 函数非常轻松地生成列表:

$files = glob($storage_dir . DIRECTORY_SEPARATOR . '*.rrd');

它返回一个数组,其中每个条目都是一个文件名。您可以轻松地将其转换为 JSON 并将其发送回:

$response = json_encode($files);

【讨论】:

  • 谢谢,我现在去看看。
  • 是的,它在一个目录中。我没有正确使用您的代码,因为它不起作用,您可以向我解释如何使用它吗?谢谢。
  • glob 根据您指定的过滤器返回一个文件名数组。在这种情况下,我们要求它获取$storage_dir 定义的目录中的所有 .rrd 文件。如果此脚本由 javascript 调用并且返回的数据应为 json 格式,那么您将输出将文件名数组传递给 json_encode 的结果。
  • 谢谢。还在做这个项目。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 2019-01-14
相关资源
最近更新 更多