在这段代码中,我们想用shell读取文件的第7行,如果值为"set",我们想将复选框的状态更改为checked。
<input type="radio" name="myName" value="myValue" <?php
if( shell_exec("./read_from_db 7")=="set") echo ' checked="checked"'
?>
似乎这段代码不工作。即使文件的第7行是"set",也没有选中单选按钮。为什么呢?代码有什么问题?
来自shell_exec
的结果是给你一些额外的东西。
尝试使用trim,因此:
if( trim(shell_exec("./read_from_db 7"))=="set") echo ' checked="checked"'
下面是一个测试:
var_dump(shell_exec('echo set'));
echo '<br>';
var_dump(trim(shell_exec('echo set')));
echo '<br>';
$v1 = shell_exec('echo set') == 'set';
$v2 = trim(shell_exec('echo set')) == 'set';
var_dump($v1);
echo '<br>';
var_dump($v2);
和输出:
字符串(4)"set "
字符串(3)"套"
bool (false)
bool(真正的)
你可以看到,即使原始代码中没有空格,它也在那里添加了一些东西。我猜它是某种换行符或类似的东西