Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 模型中特定文件夹的Codeigniter路径_Php_Codeigniter - Fatal编程技术网

Php 模型中特定文件夹的Codeigniter路径

Php 模型中特定文件夹的Codeigniter路径,php,codeigniter,Php,Codeigniter,我试图从模型中找到项目中的特定文件夹 它在我的本地环境中工作得很好,但当我部署应用程序时,它就不起作用了:'( 这是模型路径: projectname/application/modules/site/models/model.php 这是文件夹路径 projectname/www/client/myfolder 现在,我如何在本地获得路径,如下所示: FCPATH."myfolder/ 当我部署它时,它不工作,并转储一个非常大的url (可能是因为它是从服务器根目录或其他地方开始的

我试图从模型中找到项目中的特定文件夹 它在我的本地环境中工作得很好,但当我部署应用程序时,它就不起作用了:'(

这是模型路径:

projectname/application/modules/site/models/model.php

这是文件夹路径

projectname/www/client/myfolder

现在,我如何在本地获得路径,如下所示:

FCPATH."myfolder/
当我部署它时,它不工作,并转储一个非常大的url (可能是因为它是从服务器根目录或其他地方开始的

/data/sites/web/hostingname/subsites/staging/www/client/myfolder
有人知道我做错了什么吗

我知道有APPPATH,但我不需要应用程序文件夹我需要与应用程序文件夹处于同一级别的www文件夹

如果有人能帮我,那就太酷了:)

非常感谢

编辑 如果执行此操作,将得到一个空数组:

    public function getSlidesForPresentation($presentation)
    {
        $directory = base_url('/myfolder') ."/". $var."/slides/";
    
        $filepaths = glob($directory . "*");
    
        $slides = array();
    
        foreach($filepaths as $filepath) {
            $slide = substr($filepath, strpos($filepath, "/client/") + 8);
    
            $slides[] = $slide;
        }
    
        return $slides;
    }


If i do this everyhting works great

public function getSlidesForPresentation($presentation)
    {
        $directory = FCPATH."myfolder/".$var."/slides/";

        $filepaths = glob($directory . "*");

        $slides = array();

        foreach($filepaths as $filepath) {
            $slide = substr($filepath, strpos($filepath, "/client/") + 8);

            $slides[] = $slide;
        }

        return $slides;
    }
到底发生了什么事

我做了一个var_转储($filepath),得到了以下结果: /data/sites/web/hostname/subsites/staging/www/client/myfolder/1/slides/01.jpg

这是映像的文件路径: 主机名/subsites/staging/www/client/myfolder/1/slides/01.jpg


所以我不明白为什么找不到图像:“(

您应该尝试使用CI的URl帮助程序

尝试使用
base\uURL('www/client/myfolder')

要使用此函数,您需要在config.php中声明您的网站基url

编辑:

 public function getSlidesForPresentation($presentation)
    {
    $directory = base_url('/myfolder/'.$var.'/slides');

    $slides = array();

    $handle = opendir($directory);

    if ($handle = opendir($directory)) {

    while (false !== ($entry = readdir($handle))) {

    $slide = substr($entry, strpos($entry, "/client/") + 8);

    $slides[] = $slide;
    }
    return $slides;
}
}

希望这能对您有所帮助。

您正在寻找
getcwd()
@Saty我尝试了这一点,并给出了与FCPATHFCPATH相同的结果。输出或日志中是否存在实际错误?@qwertzman没有错误,日志中没有任何内容,它只是找不到文件,因为该函数返回一个空数组。如果您是指具有base_url()的函数它将不起作用。在使用FCPATH的方法中,请尝试打印$directory,检查它是否存在,var_dump($filepath),并查看它是否返回false。您的方法可以工作,但我的其余函数不再工作。您可以检查它吗?我编辑了OPU,您可以发布var_dump(base_url('/myfolder')。“/”$var.“/slides/”)的结果吗?我认为您在base_url()中添加了一个额外的斜杠。不是这样的,我认为问题在于我的函数设置为在目录(文件路径)上循环,而不是在url上循环。我认为base_url也不是一种方法,因为我需要的是文件路径而不是url