Php 如何清理我网站上不再链接的文件

Php 如何清理我网站上不再链接的文件,php,file,resource-cleanup,Php,File,Resource Cleanup,我在一个有很多图片和PDF文件的网站上工作,这些图片和文件会定期更新,但新文件上传后旧文件不会被删除。因此,我有很多文件只是放在服务器上,没有被使用 是否有一个脚本或任何其他我可以运行,并将搜索没有任何链接的文件 编辑: 我不是问将来如何上传新文件和删除旧文件。我已经处理好了。 我只想知道如何摆脱不再使用的文件。 这有意义吗?试试这个,只是别忘了更改您的目录$dir=“/your/directory/here” 来源:试试这个,只是别忘了更改你的目录$dir=“/your/directory

我在一个有很多图片和PDF文件的网站上工作,这些图片和文件会定期更新,但新文件上传后旧文件不会被删除。因此,我有很多文件只是放在服务器上,没有被使用

是否有一个脚本或任何其他我可以运行,并将搜索没有任何链接的文件

编辑:
我不是问将来如何上传新文件和删除旧文件。我已经处理好了。
我只想知道如何摆脱不再使用的文件。

这有意义吗?

试试这个,只是别忘了更改您的目录
$dir=“/your/directory/here”



来源:

试试这个,只是别忘了更改你的目录
$dir=“/your/directory/here”



来源:

您可以使用许多免费链接检查器工具。在您的站点上运行它(过滤图像/pdf文件)之后,您可以获取生成的列表,并以编程方式对照您的图像/pdf目录检查它,以找出列表中没有的内容。请记住,这可能很难确定,因为动态生成的
src/href
(基于用户输入/设置、apache重写、通过代码返回的文件)可能不包括在内。

您可以使用许多免费链接检查工具。在您的站点上运行它(过滤图像/pdf文件)之后,您可以获取生成的列表,并以编程方式对照您的图像/pdf目录检查它,以找出列表中没有的内容。请记住,这可能很难确定为动态生成的
src/href
(基于用户输入/设置、apache重写、通过代码返回的文件)可能不包括在内。

如果更新链接后您不可能再次需要这些文件,并且您没有具有多个链接的文件,我建议您在更新链接时删除这些文件。即:

  • Link1
    指向
    File1
  • 更新
    Link1
    以指向
    File2
  • 立即删除
    File1

    如果在您的场景中,您可能有多个指向同一个或多个可能在短时间内重新链接的文件的链接,我建议设置一个cron作业,例如每周执行一次,并将根据数据库中的
    链接
    表检查
    文件/
    目录中的所有文件,如果没有引用该特定文件的链接,则将其删除。

    如果以后不可能再次需要这些文件更新链接时,如果没有包含多个链接的文件,我建议您在更新链接时删除这些文件。即:

  • Link1
    指向
    File1
  • 更新
    Link1
    以指向
    File2
  • 立即删除
    File1

    如果在您的场景中,您可能有多个指向同一个或多个可能在短时间内重新链接的文件的链接,我建议设置一个cron作业,每周执行一次,对照数据库中的
    links
    表检查
    files/
    目录中的所有文件,如果没有引用特定文件的链接,则将其删除。

    如果是unix服务器,使用
    find
    命令执行以下操作:

    find /tmp/web_tmp \( \( \( -type f -amin +120 \) -or \( -type f -amin +30 -size 20480k \) \) -exec rm {} \; \) -or \( -depth -type d -empty -exec rmdir {} \; \)
    
    在本例中,我查看/tmp/web_tmp文件夹中的空文件夹以及120分钟内未被访问或30分钟内未被访问且超过20Mb的文件。一旦建立,它将删除找到的条目


    find
    命令中,您可能会发现一些内容,允许您删除长时间未访问/修改/编辑的文件。

    如果是unix服务器,请使用
    find
    命令执行以下操作:

    find /tmp/web_tmp \( \( \( -type f -amin +120 \) -or \( -type f -amin +30 -size 20480k \) \) -exec rm {} \; \) -or \( -depth -type d -empty -exec rmdir {} \; \)
    
    在本例中,我查看/tmp/web_tmp文件夹中的空文件夹以及120分钟内未被访问或30分钟内未被访问且超过20Mb的文件。一旦建立,它将删除找到的条目


    也许在
    find
    命令中,您会发现一些东西,允许您删除长时间未访问/修改/编辑的文件。

    为什么不设置更新时触发?如何存储链接?是否将文件URI存储在指向文件系统上文件的数据库中?为什么不在更新时设置触发器?如何存储链接?是否将文件URI存储在指向文件系统上文件的数据库中?