我在php文件中有一个函数,它使用require_once
包含在另一个php文件中
如果我从写入的文件中调用该函数,则该函数运行正常。
但是,如果我从通过require_once
包含文件的其他文件中调用相同的函数,则该函数无法正常工作。问题围绕着使用putenv
和exec
执行函数中的文件。
由于exec
在从其写入的文件中以相同方式调用该函数时工作正常,但在从其他文件调用时不起作用,因此{< 1}}可以正常工作。 d得出结论问题出在我的require_once
包含部分,但我不确定替代方案可能是什么?
答案 0 :(得分:1)
假设你有这个文件夹结构:
-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"
。
但是当您在file2.php
中加入file1.php
时,相同的代码将添加到file1.php
。
file1.php
会尝试exec "./virus.exe"
,但它与file1.php
不在同一个文件夹中
这就是为什么它不起作用,你需要使用base_url来找到正确的文件路径。
类似于:base_url() . "scripts/virus.exe"