应该从物质调用函数的路径


Should the path you call a function from matter

我在 php 文件中有一个函数,它包含在另一个 php 文件中,使用 require_once

如果我从写入它的文件中调用该函数,则该函数运行良好。

但是,如果我从通过require_once包含该文件的不同文件中调用相同的函数,则该函数无法正常工作。问题围绕着使用 putenvexec 在函数中执行文件。

由于从写入的文件中以相同的方式调用函数时,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"