需要帮助将 2k 文件链接到 html [关闭]
Posted
技术标签:
【中文标题】需要帮助将 2k 文件链接到 html [关闭]【英文标题】:Need help linking 2k files into html [closed] 【发布时间】:2015-01-20 07:03:06 【问题描述】:所以我正在做一个需要大量文件链接的项目(2000)
以下是我的项目的一些细节:
-
无法直接访问“后端”
有权更改课程资料(pdf 文件)的目录结构和文件名
当前的路径和文件命名约定是一团糟(不存在)且不可预测
目前没有将课程代码与课程描述/课程材料相关联
每门课程都有 20 个课程资料(pdf 文件):
5 份学习纸 5 个学习纸答案 5 个评分作业 5年级作业答案
现在当前站点是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>
【问题讨论】:
这都是理论上的。我们需要具体的代码来观察。 当您可以使用 php 通过读取目录来创建链接时,您必须手动链接 1000 个文件是没有意义的 好的,我该怎么做? 你们不能指点我正确的方向并提供帮助,而不是投票给堆栈溢出地狱吗? html如何获得'Study Sheet Unit One'等..?您是否尝试用实际网址替换链接中的#
?人们可能会投反对票,因为您的问题确实不清楚,并且闻起来像 XY 问题。那么,你真正想要做什么,你从哪里得到what?此外,我已经看到你的演示在 PHP 上运行,所以很可能你应该按照 charlietfl 的评论指出的那样使用它。
【参考方案1】:
鉴于您在聊天中解释的具体情况,
您无权访问“后端” 您有权更改课程资料(pdf 文件)的目录结构和文件名 当前的路径和文件命名约定是一团糟(不存在)且不可预测 目前没有将课程代码与课程描述/课程材料相关联 每门课程有 20 种课程资料(pdf 文件): 5 份学习纸 5 个学习纸答案 5 个评分作业 5 年级作业答案唉,有些事情必须去做(尤其是为了将来的懒惰可维护性)。 在事情进一步失控之前,我建议从实现文件路径/文件命名约定开始。这也应该有助于创建未来的其他解决方案,然后是我建议开始的解决方案。
主要问题(和当前缺陷)是缺乏任何可自动化的关系/可预测性!
首先重组你的文件路径/文件名:
让我们创建一个文件夹作为课程资料的根目录:courses/
。
我们在课程内创建您的主要类别:
课程/数学/ 课程/英语/ 课程/科学/ 课程/社会科学/ 课程/选修课/现在对于每个课程类别(例如:课程/数学/、课程/英语等),您创建文件夹(或复制现有文件夹)并将它们(重新)命名为课程编号:
课程/数学/HS-ES-103/ 课程/数学/HS-ES-104/ 等等... 课程/英语/HS-ES-113/ 课程/英语/HS-ES-114/ 等等...现在,在每门课程(例如课程/数学/HS-ES-103、课程/英语/HS-ES-113)中,您创建(或分别重命名)4 个文件夹:
课程/类别/课程编号/ssu/ 课程/类别/课程编号/ssa/ 课程/类别/课程编号/gau/ 课程/类别/课程编号/GAA/包含课程材料(pdf 文件)。 这些应包含课程各自的 pdf 文件。 此外,在每门课程(在 4 个文件夹旁边)中,您都会创建一个包含课程元数据的文件:
课程名称(如:'ENGLISH 9 Common Core Semester 2') 年级 课程资料 课程说明这可能是 xml、json、csv、txt... 任何你发现最容易从 php 解析的内容。注意: 作为一些简单的描述,还有一个额外的好处(最好是高度可读的)文件夹结构中的未来永远不会受到伤害......
现在,手动创建课程/类别会比创建脚本更快。 大部分工作将是创建(和移动相关课程文件)或重命名课程代码文件夹并添加元数据信息文件。
最后,文件名必须按字母顺序以正确的顺序排序。unpredictable_string_1.pdf
很好。 two_unpredictable_string.pdf
不是。
如果存在具有unpredictable_string_[one|two|three|four|five].pdf
的文件夹,您可以使用命令行脚本将它们清除,该脚本将在文件名unpredictable_string_[1|2|3|4|5].pdf
。
从这里开始,很容易选择以下两种方式之一:
将(排序的)文件名重命名为可预测的字符串(因此您无需将它们传递给您的 html/json/php 等(您可以再次使用简单的命令行脚本来执行此操作)。李> 不要重命名不可预测的文件名,并让您的目录解析脚本读出实际的文件名(我不推荐这样做)。示例最终结构:
> 目录课程/数学/HS-ES-103/ 课程/数学/HS-ES-103/ssu/ 课程/数学/HS-ES-103/ssa/ 课程/数学/HS-ES-103/gau/ 课程/数学/HS-ES-103/gaa/ 课程/数学/HS-ES-103/info.txt(json/csv/xml等) > 目录课程/数学/HS-ES-103/ssu 课程/数学/HS-ES-103/ssu/HS-ES-103_ssu_1.pdf 课程/数学/HS-ES-103/ssu/HS-ES-103_ssu_2.pdf 课程/数学/HS-ES-103/ssu/HS-ES-103_ssu_3.pdf 课程/数学/HS-ES-103/ssu/HS-ES-103_ssu_4.pdf 课程/数学/HS-ES-103/ssu/HS-ES-103_ssu_5.pdf现在您已经修复了目录结构,使用例如 PHP 解析任何信息和关系是一件相对轻而易举的事。
现在您可以使用 PHP 从模板动态构建静态页面,或者让它创建一个(或每个类别一个)json 文件(或 xml、csv 等)以传递给浏览器。
重要的是要注意,在每个页面请求上解析整个目录树并不是一个想法。 最好有一个隐藏的管理页面,其中包含更新后自动更新存储缓存的功能。或者,您可以每 24 小时自动更新一次(使用通用模板循环检查缓存页面/文件的时间戳,如果超过 x 时间,则重新运行更新程序脚本)。
在 SO 中搜索解析目录、文件(csv/json 等)和缓存页面的示例。
祝你的项目好运!
【讨论】:
以上是关于需要帮助将 2k 文件链接到 html [关闭]的主要内容,如果未能解决你的问题,请参考以下文章