我不知道是否可能,但我们将不胜感激。
以下是我项目的目录结构(它位于核心php中)
application/
application/sub_application_1
application/sub_application_2
application/sub_application_3
..
application/sub_application_n
因此,有许多子应用程序中有多个php文件,在这些文件中编写了各种url重定向代码,url参数只使用base64_encode()
进行编码。此外,在所有文件中还包含一个唯一的配置文件。
现在,我想使用我自己的函数来编码/加密整个应用程序中的所有url参数。因此,不是进入每个文件并添加我自己的编码和解码功能,我可以在单个文件中编写一些代码,这些代码包含在所有文件中(在我的情况下是配置文件),它将处理所有url参数在整个应用程序中编码和解码?
提前致谢。
示例:
假设我在application/sub_application_1/index.php
中有一个php文件,在该文件中会写一个超链接,将页面重定向到application/sub_application_1/product_details.php
。
以下是当前代码
<a href="./product_details.php?product_id=<?php echo base64_encode($_product_id); ?>"> View Product </a>
所以,我想在每个超链接上加载我的加密函数,比如
<a href="./product_details.php?product_id=<?php echo my_encryption(base64_encode($_product_id)); ?>"> View Product </a>
因此,有一种繁琐的方法可以进入每个目录和每个文件,并在每个url参数上添加我的函数以进行加密,并类似于该特定文件进行解密。
任何其他方式,在单个文件中编写一些代码也可以这样工作?
答案 0 :(得分:0)
这里可能会有一定数量的手工工作,但有些想法可以尝试:
您可以使用命令行将现有链接替换为所需的格式。如果所有base64_encode()
个链接都将包含在my_encryption()
中,那么我建议您将base64_encode()
调用移至您的函数。然后,您可以搜索并替换相关链接以替换为您自己的链接。像这样:
find application/*/*.php -type f -print0 | xargs -0 sed -i "s/base64_encode/my_encrpytion/g"
我强烈建议在运行之前备份您的文件,因为它没有经过测试,而且我对您的代码了解不多
如果您无权访问或不想使用命令行,您可以在命令行中执行相同的操作,但在编辑器中,如Notepad ++。打开所有相关文件,然后替换所有文件中的内容。根据您是否有其他base64_encode()
来电,将确定您是否可以直接替换文本或必须使用正则表达式。例如,正则表达式方法看起来像这样:
如果你想替换整个链接(也就是product_details.php?product_id
部分,你可以将这一点移到上面的搜索/替换中并将其放入你的my_encryption
函数中。然后在更改之后现有文件,将来你可以写:
<a href="<?php echo my_encryption('xxx'); ?>">My Link</a>