我有以下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
这会给出“假”错误。问题是什么?
答案 0 :(得分:1)
获取'false'
意味着字符串不同。您可以使用调试器或var_dump()验证自己。
您的正则表达式会捕获=
符号后面的所有内容,包括前导和尾随空格以及换行符。我不认为这就是你想要的。
尝试更灵活:
if (TEMPLATE_DIR == trim($dir[1]) ){
}