【发布时间】:2019-02-27 16:21:27
【问题描述】:
我进行了一些研究,但找不到问题的明确答案。这就是我所拥有的:
<?php
session_start();
$gen_num = file_get_contents($_SESSION['filename']);
$inp_num = $_POST['form-input'];
if($gen_num === $inp_num){
echo "Yes! The numbers match!";
} else {
echo "No, the numbers do not match…";
}
?>
'filename' 是一串数字,'form-input' 来自之前提交的 HTML 表单。
为什么字符串相同时 IF 测试会失败?
编辑 简单的修复是修剪 $gen_num。另外,我没有足够明确地说“文件名”是一个 .txt 文件,其中包含一串数字以及一些看不见的特殊字符。
感谢您的帮助!
【问题讨论】:
-
你能
var_dump()告诉我们你得到了什么吗? -
您是否尝试过仅使用 == 进行比较? php.net/manual/en/language.operators.comparison.php
-
试试
trim($gen_num) === trim($inp_num),因为特殊字符的出现可能是问题所在。 -
“文件名”的位置有一串数字...所以没有
.txt?我很确定它 file_get_contents 返回 false 然后 -
trim() 有效!我想有一些空白/特殊字符弄乱了它。谢谢大家的快速回复
标签: php if-statement string-comparison