将常量与变量php

时间:2017-07-22 11:23:00

标签: php

我有以下PHP代码:

<?php

    define('TEMPLATE_DIR','basic');

    $info = file_get_contents('info.txt');

    preg_match('/template_dir=(.*)/',$info,$dir); // $dir[1] gives 'basic'

    if(TEMPLATE_DIR == $dir[1]){

        echo 'true';

    }else{

        echo 'false';

    };

?>

info.txt包含:

template_name=basic
template_dir=basic

这会给出“假”错误。问题是什么?

1 个答案:

答案 0 :(得分:1)

获取'false'意味着字符串不同。您可以使用调试器或var_dump()验证自己。

您的正则表达式会捕获=符号后面的所有内容,包括前导和尾随空格以及换行符。我不认为这就是你想要的。

尝试更灵活:

if (TEMPLATE_DIR == trim($dir[1]) ){
}