0

我是 symfony 2.3 的新手,我在从控制器运行独立的 php 文件时遇到问题。我想从 shell_exec() 运行该文件并在我的代码中使用它的输出。但我不知道在哪里找到我想要运行的文件的正确方法。我的控制器代码如下

namespace my\apiBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

use Symfony\Component\HttpFoundation\Request;

Class newController extends Controller
{
 public function getlibAction($text)
 {
    $out = shell_exec("php script/data.php");
    /*
    my rest code to take data from output

    */

    $response = new Response();
    $response->headers->set('Content-Type', 'text/html');
    $response->setContent($out);
    return $response;
 }
}

我已将包含“data.php”的“script/”文件夹复制到“my/apiBundle/Resources/public/”,但我无法访问它。我尝试在“my/apiBundle/”中独立复制它,但仍然没有成功。

我不知道我应该找到它。请帮我解决这个问题。提前致谢..

4

1 回答 1

2

您可以通过以下方式获取当前文件(您的控制器)的完整路径:

dirname(__DIR__)

基于此,您可以获得父目录,如:

dirname(dirname(__DIR__))

依此类推,直到您到达所需的路径。

例如,我在 Resources 目录 (src/Company/Project/Bundle/Resources/libs/recaptchalib.php) 中一个名为 libs 的文件夹下找到了 recaptcha 库,我在控制器上需要它,如下所示:

require_once dirname(__DIR__).'/Resources/libs/recaptchalib.php';

您可以使用 shell_exec 命令执行类似的操作。

希望能帮助到你。

于 2013-11-06T23:05:26.413 回答