Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 temaplate中放入变量_Php_Codeigniter_Templates - Fatal编程技术网

Php 如何在codeigniter temaplate中放入变量

Php 如何在codeigniter temaplate中放入变量,php,codeigniter,templates,Php,Codeigniter,Templates,我有一个看法: public function index() { $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if ($lang == "fr"){ $this->smarty->display('excel.tpl'); } else{ $this->smarty->display('excel_eng.tpl'); }

我有一个看法:

public function index()
{

    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    if ($lang == "fr"){
        $this->smarty->display('excel.tpl');    
    }
    else{
        $this->smarty->display('excel_eng.tpl');
    }
}
我的模板:

<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu.tpl'}
</div>

{include'components/menu.tpl'}
我想根据语言更换一个组件

怎么做?

您可以这样做:

excel.tpl:

<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu.tpl'}
</div>
<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu_eng.tpl'}
</div>
...

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

$smarty->assign('lang' , $lang); // passing lang to templates

....
<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu_$lang.tpl'}
</div>
HTML代码:

<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu.tpl'}
</div>
<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu_eng.tpl'}
</div>
...

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

$smarty->assign('lang' , $lang); // passing lang to templates

....
<div class="fullscreen background" id="landing-page-image">
    {include 'components/menu_$lang.tpl'}
</div>

{include'组件/菜单$lang.tpl'}

1.这里的第一个选项是加载语言变量并为它们提供公共模板:

$lang = 'en';//your default language
$available_langs = array('en', 'fr'); //your set of languages
$browser_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (in_array($browser_lang, $available_langs)) {
   $lang = $browser_lang; //set language according to browser
}
//assumed you keep your language variables in /app/language/lang_en.php
require_once(APPPATH.'language/lang_'.$lang.'.php');
$this->smarty->assign('lang_vars', $lang_vars);
lang_en.php的示例:

<?php
$lang_vars = array(
'some_var_1'=>'Some string',
'some_var_2'=>'Another string',
);

但这被认为是不好的做法,因为您需要支持和更改两组模板。

如何将变量放入{include'components/variable here'}??当您从一开始就使用不同的模板时,为什么要传递变量?