如何从 CodeIgniter 的文件 config.php 而不是从 CI 控制器获取 $config['imgURL_Path'] 值?

问题描述 投票:0回答:1

我想获取一些在 /application/config/config.php 中的 CodeIgnitor 中定义的常量,但是当我在 CI 控制器之外时。例如,我有一个生成图像拇指或其他内容的文件,该文件位于 CodeIgniter mvc 框架之外。因为文件 /application/config/config.php 有一个字符串:

define('BASEPATH') OR exit('不允许直接脚本访问');

我不能只做这样的事情:

include '/application/config/config.php';
$imgPath = $config['imgURL_Path'];

我尝试添加此字符串,但没有结果:

if (defined('STDIN'))
    {
        chdir(dirname(__FILE__));
    }

    if (($_temp = realpath($system_path)) !== FALSE)
    {
        $system_path = $_temp.'/';
    }
    else
    {
        // Ensure there's a trailing slash
        $system_path = rtrim($system_path, '/').'/';
    }

    // Is the system path correct?
    if ( ! is_dir($system_path))
    {
        header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
        echo 'Your system folder path does not appear to be set correctly. Please open the following file and correct this: '.pathinfo(__FILE__, PATHINFO_BASENAME);
        exit(3); // EXIT_CONFIG
    }

define('BASEPATH', str_replace('\\', '/', $system_path));
include '/application/config/config.php';
$imgPath = $config['imgURL_Path'];

我还尝试创建一个包含以下内容的文件 ci.php:

<?php
// file: ci.php
ob_start();
require_once '../index.php'; 
ob_get_clean();
return $CI;
?>

并像这样使用它:

$CI = require_once 'ci.php';
$imgPath = $CI->config->item('imgURL_Path');

但也没有运气。有什么办法可以解决吗?

php codeigniter
1个回答
1
投票

如果你想要一个 URL_path 或一个可以在任何地方访问的变量,你可以使用 helper。

1 在文件夹

helpers
中创建一个文件,假设您将其命名为
myvariable_helper.php
//确保在 .php 之前添加 '_helper'。

2 在config文件夹中打开

autoload
,然后搜索
$autoload['helper']
,将新创建的助手插入其中,如下所示:
$autoload['helper'] = array(url, myvariable)

3 保存自动加载,然后打开

myvariable_helper.php
,添加一个功能。假设您向这样的函数添加了一个 URL:

<?php

function img_path()
{
    $imgURL_Path = 'www.your_domain.com/image/upload';
    return $imgURL_Path;
}

4 使用函数名称在任何地方(甚至在 MVC 文件夹之外)调用该函数,例如:

public function index()
{
    $data['url'] = img_path(); //assign the variable using return value (which is 'www.your_domain.com/image/upload')

    $this->load->view('Your_View', $data); //just for example
}

注意: 无法从浏览器(如模型文件夹)访问此帮助程序,因此它是安全的

© www.soinside.com 2019 - 2024. All rights reserved.