在CakePHP中,如何对特定的文本文件进行以下操作,并对其进行缓存?

在CakePHP中,如何对特定的文本文件进行以下操作,并对其进行缓存?,cakephp,caching,str-replace,Cakephp,Caching,Str Replace,基本上目前我有一个用另一种语言编写的文本文件。它将被存储为一个元素,并在需要时被调用作为文本提供 我希望使用以下内容操作此文件: 用存储该变量名的php数组值替换所有现有变量。因此,如果变量看起来像#foo,它将变成$variables['foo'] 从整个文件中创建一个数组,使每一行成为数组中的一行 结果是 return array( 'first line of code which has a variable called ' . $variables['foo'] . 'in it

基本上目前我有一个用另一种语言编写的文本文件。它将被存储为一个元素,并在需要时被调用作为文本提供

我希望使用以下内容操作此文件:

  • 用存储该变量名的php数组值替换所有现有变量。因此,如果变量看起来像#foo,它将变成$variables['foo']
  • 从整个文件中创建一个数组,使每一行成为数组中的一行
  • 结果是

    return array(
      'first line of code which has a variable called ' . $variables['foo'] . 'in it',
      'second line...'
    );
    
    最简单的方法是什么?有没有缓存进程的方法,或者我应该将新文件保存并存储在可以访问它的地方

    谢谢大家!

  • 使用
    str_replace()
    (文档:)替换所有发生的事件

  • 按以下方式使用
    explode()

  • 缓存。
    我建议您使用,一个内置的CakePHP助手。
    要区分不同变量名的不同缓存,请确保使用可区分不同变量名的参数调用控制器函数。例如:

    public function generate_script($varname){
        // some code
    }
    

    如果在调用controller方法时不知道判别变量(例如,在controller方法内部确定),那么您应该查看

    Ok,因此您的解决方案与我的意思略有不同,但事实上也同样有效,并且可能更容易一些。至于缓存部分,您应该理解脚本中会有多个变量,所有变量都会被替换,所以我不确定这是否会起作用。不过,我会查看您建议的文档。关于缓存:您的目标之一是为每种情况找到一个唯一的缓存键。因此,您应该想出一种生成密钥的标准方法。例如:将所有变量名称按字母顺序排列,并将其视为键。按照同样的思路,您可以考虑标准化方法的调用方式,因此URL对于多个变量名也是唯一的和可缓存的。