Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清除drupal缓存-php脚本_Php_Drupal_Caching_Flush - Fatal编程技术网

清除drupal缓存-php脚本

清除drupal缓存-php脚本,php,drupal,caching,flush,Php,Drupal,Caching,Flush,我正在编写一个php脚本,它将使人们能够更改drupal网站的主题。到目前为止还不错,但最后一件事我想不出来。每次我提交表单时,数据库都会更改,但主题不会更改。显然,我也必须清除缓存。我在Drupal网站上找到了: 我应该用这个脚本创建一个小文件'clear.php',每当我想清除缓存时,我应该转到这个文件,然后清除缓存 但他们是我的问题。我不知道如何在脚本中调用此页面。 当然,我可以做一个按钮,将用户重定向到此页面,但我希望它在一个脚本 有什么想法吗?或者他们使用php刷新Drupal缓存的

我正在编写一个php脚本,它将使人们能够更改drupal网站的主题。到目前为止还不错,但最后一件事我想不出来。每次我提交表单时,数据库都会更改,但主题不会更改。显然,我也必须清除缓存。我在Drupal网站上找到了:

我应该用这个脚本创建一个小文件'clear.php',每当我想清除缓存时,我应该转到这个文件,然后清除缓存

但他们是我的问题。我不知道如何在脚本中调用此页面。 当然,我可以做一个按钮,将用户重定向到此页面,但我希望它在一个脚本

有什么想法吗?或者他们使用php刷新Drupal缓存的其他方法


提前谢谢

此链接可能对您有帮助

一些提示:

  • 为什么不调用
    drupal\u flush\u allcaches()在表单的_submit钩子中?那你就不需要引导了
    
  • 此外,您还可以在带有hook_菜单的自定义模块中创建带有函数回调的菜单项,然后将代码段放在其中。再次无需引导

  • 如果真的需要单独的脚本,请将其放在安装的根文件夹中,然后调用
    mysite.com/clear.php
    。如果您把它放在其他地方,您应该更改bootstrap.inc的路径(因为它是一个相对路径)

  • 当您只需要刷新其中一个缓存时,不要刷新所有缓存:尝试
    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”(注册表重建):

      我昨天试图手动清除缓存,结果就是这样。 我强烈建议继续使用以下内容:

      cache_clear_all(NULL, 'cache_page');
      OR
      drupal_flush_all_caches();
      
      在任何纯文本编辑器中打开settings.php(/sites/default/settings.php)。将此行添加到文件末尾并保存:

      $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表单。这是我们自己写的剧本。检查我对这个问题的“答案”以了解我们找到的解决方案。。。