清除drupal缓存-php脚本
我正在编写一个php脚本,它将使人们能够更改drupal网站的主题。到目前为止还不错,但最后一件事我想不出来。每次我提交表单时,数据库都会更改,但主题不会更改。显然,我也必须清除缓存。我在Drupal网站上找到了:清除drupal缓存-php脚本,php,drupal,caching,flush,Php,Drupal,Caching,Flush,我正在编写一个php脚本,它将使人们能够更改drupal网站的主题。到目前为止还不错,但最后一件事我想不出来。每次我提交表单时,数据库都会更改,但主题不会更改。显然,我也必须清除缓存。我在Drupal网站上找到了: 我应该用这个脚本创建一个小文件'clear.php',每当我想清除缓存时,我应该转到这个文件,然后清除缓存 但他们是我的问题。我不知道如何在脚本中调用此页面。 当然,我可以做一个按钮,将用户重定向到此页面,但我希望它在一个脚本 有什么想法吗?或者他们使用php刷新Drupal缓存的
我应该用这个脚本创建一个小文件'clear.php',每当我想清除缓存时,我应该转到这个文件,然后清除缓存
但他们是我的问题。我不知道如何在脚本中调用此页面。
当然,我可以做一个按钮,将用户重定向到此页面,但我希望它在一个脚本
有什么想法吗?或者他们使用php刷新Drupal缓存的其他方法
提前谢谢 此链接可能对您有帮助
- 为什么不调用
drupal\u flush\u allcaches()代码>在表单的_submit钩子中?那你就不需要引导了李>
- 此外,您还可以在带有hook_菜单的自定义模块中创建带有函数回调的菜单项,然后将代码段放在其中。再次无需引导
- 如果真的需要单独的脚本,请将其放在安装的根文件夹中,然后调用
。如果您把它放在其他地方,您应该更改bootstrap.inc的路径(因为它是一个相对路径)mysite.com/clear.php
- 当您只需要刷新其中一个缓存时,不要刷新所有缓存:尝试
cache\u clear\u all('theme\u registry','cache',TRUE)代码>
- 塔达,做了:)
只需在我的脚本中粘贴以下内容:
$deletecachesql=“从缓存中删除”; $deletecachequery=mysql\u query($deletecachesql)或die(“错误”).mysql\u error(); $deletecacheresult=mysql\u fetch\u数组($deletecachequery)代码> 脚本确实清除了缓存,但我不确定这是否是一件好事。网站还告诉我删除:
- 从缓存中删除李>
- 从缓存菜单中删除李>
- 从缓存中删除过滤器李>
- 从缓存页面删除李>
- 删除看门狗李>
这样做明智吗?要像这样清除(删除)缓存?请小心使用mysql语句以编程方式清除缓存 这可能会破坏您的整个drupal注册表,最终可能会在drupal引导上出现一个空白页,因此即使drush也可能失败 解决此问题的唯一方法是再次使用“registry_rebuild”(注册表重建): 我昨天试图手动清除缓存,结果就是这样。 我强烈建议继续使用以下内容:
在任何纯文本编辑器中打开settings.php(/sites/default/settings.php)。将此行添加到文件末尾并保存:cache_clear_all(NULL, 'cache_page'); OR drupal_flush_all_caches();
$settings['rebuild_access'] = TRUE;
谢谢你的链接,但我不想让用户被迫使用drupal菜单。只是一个脚本,他可以在一个漂亮的HTML/CSS文件中运行,以控制他的drupal网站。因此,没有模块和管理员菜单,…好的,一些有用的提示!!谢谢!只是想给你一个好印象。FOLDER=(dDrupal,fChangetheme.php,fClear.php),其中d-代表目录,f-代表文件。我只是在脚本中回显到clear.php文件的链接?我不理解这种表示法,也不知道您是如何操作的:)但是,是的,可以是链接,或者如果您使用非drupal表单进行操作。(似乎如此)。也许在刷新缓存后,你可以用drupal\u go\u\u重定向用户是的,它不是drupal表单。这是我们自己写的剧本。检查我对这个问题的“答案”以了解我们找到的解决方案。。。