需要帮助将2k文件链接到html

时间:2014-11-22 01:41:38

标签: javascript php jquery html json

所以我正在开发一个需要大量文件链接的项目(2000)

以下是我项目的一些细节:

  1. 无法直接访问'后端'
  2. DO有权更改课程资料的目录结构和文件名(pdf文件)
  3. 当前路径&文件约定是一团糟(不存在)和不可预测的
  4. 目前没有任何内容将课程代码与课程说明/课程材料相关联
  5. 每门课程都有20门课程资料(pdf文件):

    5份学习表
    5个学习单答案
    5个分级作业
    5年级作业答案

  6. 现在当前网站是http://ops.emsofl.com/Index_stu.html,我正在重新创建该网站,并且需要添加文件和链接。当前目录树非常不稳定,并且不遵循任何一致的命名约定。我希望,能够尽可能地自动化这个过程。我知道我需要更改目录树和文件名以遵循一种简单的格式,但是,我不确定如何继续解析文件并通过json或其他格式自动添加它们。这真的是我需要帮助的。以下是目前使用zurb基础的课程布局的示例代码:

    <div class="tabs-content">
        <div class="content active" id="p1a">
              <ul class="ss">
              <li><a href="#">Study Sheet Unit One</a></li>
              <li><a href="#">Study Sheet Unit Two</a></li>
              <li><a href="#">Study Sheet Unit Three</a></li>
              <li><a href="#">Study Sheet Unit Four</a></li>
              <li><a href="#">Study Sheet Unit Five</a></li>
    
              </ul>
        </div>
        <div class="content" id="p1b">
          <ul class="ssa">
              <li><a href="#">Study Sheet w/ Answers Unit One</a></li>
              <li><a href="#">Study Sheet w/ Answers Unit Two</a></li>
              <li><a href="#">Study Sheet w/ Answers Unit Three</a></li>
              <li><a href="#">Study Sheet w/ Answers Unit Four</a></li>
              <li><a href="#">Study Sheet w/ Answers Unit Five</a></li>
    
              </ul>
        </div>
        <div class="content" id="p1c">
          <ul class="ga">
              <li><a href="#">Graded Assignment Unit One</a></li>
              <li><a href="#">Graded Assignment Unit Two</a></li>
              <li><a href="#">Graded Assignment Unit Three</a></li>
              <li><a href="#">Graded Assignment Unit Four</a></li>
              <li><a href="#">Graded Assignment Unit Five</a></li>
    
         </ul>
        </div>
        <div class="content" id="p1d">
          <ul class="gaa">
              <li><a href="#">Graded Assignment w/ Answers Unit One</a></li>
              <li><a href="#">Graded Assignment w/ Answers Unit Two</a></li>
              <li><a href="#">Graded Assignment w/ Answers Unit Three</a></li>
              <li><a href="#">Graded Assignment w/ Answers Unit Four</a></li>
              <li><a href="#">Graded Assignment w/ Answers Unit Five</a></li>
    
              </ul>
    

1 个答案:

答案 0 :(得分:1)

根据聊天中解释的具体情况,

  • 您无法访问&#39;后端&#39;
  • 您有权更改课程资料的目录结构和文件名(pdf文件)
  • 当前路径&amp;文件约定是一团糟(不存在)和不可预测的
  • 目前没有任何内容将课程代码与课程说明/课程材料相关联
  • 每个课程都有20门课程资料(pdf文件):
    • 5个学习单
    • 5个学习单答案
    • 5个分级作业
    • 5年级作业答案

唉,某些地方要完成(特别是对于未来的懒惰可维护性)。 在事情进一步发展之前,我建议首先实现文件路径/文件命名约定。这也应该有助于创建未来的其他解决方案,而不是我建议的解决方案。

主要观点(当前缺陷)是缺乏任何可自动化的关系/可预测性!

首先重构文件路径/文件名: 让我们创建一个文件夹,我们将其视为课程材料的根目录:courses/

在课程中,我们创建了您的主要类别:

courses/math/        
courses/english/        
courses/science/       
courses/social science/       
courses/electives/        

现在,对于每个课程类别(例如:课程/数学/,课程/英语等),您可以创建文件夹(或复制现有文件夹)并(重新)将它们命名为课程编号:

courses/math/HS-ES-103/
courses/math/HS-ES-104/
etc...
courses/english/HS-ES-113/ 
courses/english/HS-ES-114/ 
etc...

现在,在每门课程(例如课程/数学/ HS-ES-103,课程/英语/ HS-ES-113)中,您分别创建(或重命名)4个文件夹:

courses/category/course-number/ssu/
courses/category/course-number/ssa/
courses/category/course-number/gau/
courses/category/course-number/gaa/ 

包含课程资料(pdf文件) 这些应该包含课程的相应pdf文件 此外,在每个课程(4个文件夹旁边)中,您都可以创建包含课程元数据的文件:

  • 课程名称(如:&#39;英语9共同核心学期2&#39;)
  • 年级
  • 课程资料
  • 课程描述

这可能是在xml,json,csv,txt ......你发现从php解析最简单的东西。
注意:还有一个额外的好处,因为在该文件夹结构中的一些简单描述(最好是高度人类可读的)在将来不会受到伤害......

现在,手动创建课程/类别将比创建脚本更快。 大部分工作将是创建(和移动相关课程文件)或重命名课程代码文件夹并添加元数据信息文件。

最后,文件名必须按正确的顺序按字母顺序排序 unpredictable_string_1.pdf没问题。 two_unpredictable_string.pdf不是。

如果有unpredictable_string_[one|two|three|four|five].pdf的文件夹,您可以使用命令行脚本清除它们,该命令行脚本用它们各自的数字(1,2,3,4,5)替换一,二,三,四和五在文件名unpredictable_string_[1|2|3|4|5].pdf中。

从这里可以很容易地采用以下两种方式之一:

  • 将(已排序的)文件名重命名为可预测的字符串(因此您不需要将它们传递给您的html / json / php等(您可以使用简单的命令行脚本再次执行此操作)。
  • 不要重命名不可预知的文件名,并让你的目录解析脚本读出实际的文件名(我不推荐这个)。

示例最终结构:

> dir courses/math/HS-ES-103/
courses/math/HS-ES-103/ssu/
courses/math/HS-ES-103/ssa/
courses/math/HS-ES-103/gau/
courses/math/HS-ES-103/gaa/ 
courses/math/HS-ES-103/info.txt  (json/csv/xml etc.) 

> dir courses/math/HS-ES-103/ssu
courses/math/HS-ES-103/ssu/HS-ES-103_ssu_1.pdf
courses/math/HS-ES-103/ssu/HS-ES-103_ssu_2.pdf
courses/math/HS-ES-103/ssu/HS-ES-103_ssu_3.pdf
courses/math/HS-ES-103/ssu/HS-ES-103_ssu_4.pdf
courses/math/HS-ES-103/ssu/HS-ES-103_ssu_5.pdf

现在您已经修复了目录结构,使用例如PHP解析任何信息和关系是相对轻而易举的。

现在您可以使用PHP从模板动态构建静态页面,或者让它创建一个(或每个类别一个)json文件(或xml,csv等等)以传递给浏览器..

重要的是要注意,不要在每个页面请求上解析整个目录树
最好有一个隐藏的管理页面,其中包含一个在更新后自动更新存储缓存的功能。或者,您可以每24小时自动更新一次(使用通用模板循环检查缓存页面/文件的时间戳,如果时间超过x时间,则重新运行更新程序脚本)。

搜索SO以获取解析目录,文件(csv / json等)和缓存页面的示例。

祝你的项目好运!