我在 php 文件中有一个函数,它包含在另一个 php 文件中,使用 require_once
如果我从写入它的文件中调用该函数,则该函数运行良好。
但是,如果我从通过require_once
包含该文件的不同文件中调用相同的函数,则该函数无法正常工作。问题围绕着使用 putenv
和 exec
在函数中执行文件。
由于从写入的文件中以相同的方式调用函数时,exec
工作正常,但在从其他文件调用时不起作用,因此我得出的结论是问题出在我的require_once
包含部分,但我不确定替代方案是什么?
假设你有这个文件夹结构:
-file1.php //File where file2.php will be included
scripts
-file2.php //File with the function
-virus.exe //File that the function runs
在file2.php
运行函数是有效的,因为路径是正确的,您可以将其指向 "virus.exe"
或 "./virus.exe"
.
但是当你在file1.php
中包含file2.php
时,完全相同的代码将被添加到file1.php
。
file1.php
将尝试exec "./virus.exe"
,但它与file1.php
不在同一文件夹中
这就是为什么它不起作用的原因,您需要使用base_url来查找正确的文件路径。
像这样:base_url() . "scripts/virus.exe"