【发布时间】:2018-02-07 00:55:21
【问题描述】:
我试图仅在网络服务器上的特定文件被删除时才在 HTML 页面上显示下载按钮。我想我会使用 CSS display: none; 然后是一个 PHP 脚本,它有一个看起来像这样的 while 循环:
while (file_exists("/aaa/file.txt")) {
sleep(5);
}
//set display property of the invisibleLink class to block and continue
问题是我不知道最后一步该怎么做,而且我看到的关于使用 PHP 修改 CSS 的每个线程都不适用于我的用例。
【问题讨论】:
-
那是因为你的PHP是在你的服务器上执行的,而CSS是由客户端渲染的。
-
进入睡眠状态只会延迟对客户端的响应。这是没有意义的。如果该文件从未被删除,那么您的页面将永远不会得到响应并且会超时。您应该做的是,如果文件在请求时存在,则显示该按钮。如果没有,请不要显示。如果用户按下按钮,请再次检查文件的状态。如果在呈现按钮和用户返回请求之间的时间内删除了它,则只需返回错误或警告,无论您的用例如何。
-
您可以对服务器端脚本进行 ajax 调用,告诉您文件是否存在,然后根据响应添加/删除一个类
标签: php html css display file-exists