首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP -显示包含另一个.php文件的问题

PHP -显示包含另一个.php文件的问题
EN

Stack Overflow用户
提问于 2014-12-01 15:37:54
回答 1查看 43关注 0票数 0

我只是编写简单的代码来显示基于用户borowser语言的翻译文本。看起来我做错了什么,因为当我使用sk.php时,它会显示正确的SK翻译,但当我使用cs.php时,它会遇到翻译问题,而且任何文本都会显示"s“。

我认为问题可能出在翻译文件中,所以我对sk.php进行了重复操作,并将其重命名为cs.php,但没有起到任何作用。

伙计们,这里有人能给我一个建议,哪里会有问题?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public function fetchByVinAxnmrss($con) {
     $success = false;
     if($this->vin){
        $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
        $_SESSION['lang'] = $lang;
        if(isSet($lang))
        {
            setcookie('lang', $lang, time() + (3600 * 24 * 30));
        }
        else if(isSet($_COOKIE['lang']))
        {
            $lang = $_COOKIE['lang'];
        }
        else
        {
            $lang = 'cs';
        } 
        switch ($lang) 
        {
            case 'sk':
            $lang_file = 'sk.php';
            break;
            case 'cs':
            $lang_file = 'cs.php';
            break;
            default:
            $lang_file = 'cs.php';
        }
        include_once 'languages/'.$lang_file;
     try{
        //$sql = "SELECT * FROM `axnmrs_cases` WHERE `vin` = ':vin' ORDER BY STR_TO_DATE(date_created, '%Y-%m-%d %H:%i:%s') LIMIT 30";
        $sql = "SELECT * FROM axnmrs_cases WHERE vin = :vin ORDER BY date_created DESC LIMIT 60";
        $stmt = $con->prepare( $sql );
        $stmt->bindValue( "vin", $this->vin, PDO::PARAM_STR );
        $stmt->execute();
            while ($row = $stmt->fetch()){
            echo $lang_file;    
            echo  "<dd>".$lang['YES']."</dd>"

附注:我正在调试echo $ lang_file,以查看正在打开的是哪个文件。

编辑:添加部分cs.php文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$lang = array();

//All
$lang['YES'] = 'Ano';
$lang['NO'] = 'Ne';
$lang['NOT_AVALIABLE'] = 'Není k dispozici';
$lang['CURRENCY'] = 'Měna';
EN

回答 1

Stack Overflow用户

发布于 2014-12-01 15:44:28

$lang不是数组。您已经将它变成了一个字符串,而PHP确实允许您将一个字符串视为一个数组。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$foo = 'This is a test';
        01234567890123

echo $foo[6]; // outputs s

既然你到处都能得到c,这可能是因为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$lang = 'cs';
         01

echo $lang['YES'];
becomes 
echo $lang[0];
becomes
echo 'c';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27231821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文