【发布时间】:2016-03-25 02:20:14
【问题描述】:
好的,所以我剃了光头,但是如果我有头发,我就不需要剃须刀了,因为我今晚会把它全部撕掉。凌晨 3 点就过去了,00:30 看似简单的解决方案已变得遥不可及。
请看下面的代码摘录..
$psusername = substr($list[$count],16);
if ($psusername == $psu_value){
$answer = "YES";
}
else {
$answer = "NO";
}
$psusername 保存值“normann”,该值取自基于文本的文件 (url.db) 中的 URL
$psu_value 还包含值“normann”,该值是从用户计算机上设置的 cookie(或浏览器地址栏中的参数 - URL)中检索到的。
但是,我相信您可以猜到我的问题,变量 $answer 包含上述测试中的“NO”。
我所知道的所有 PHP 都是从 Google 搜索和你们这里获得的,所以我不是专家,这可能很明显。
也许这是一个小学生的错误,但我不知道我做错了什么。我的假设是数据类型不同。最终,我想比较这两个变量并在它们包含相同信息时得到 TRUE 结果(即 normann = normann)。
因此,如果你们非常聪明的伙伴能够指出为什么两个变量会响应看似相同但实际上不同的信息,这对我来说将是非常有用的一课,让我的用户非常高兴。
【问题讨论】:
-
尝试 var_dump 两个变量,看看它们是否真的相同
-
好的,在 TextPad 十六进制视图中查看了这个,我可以看到我从 URL 中提取的用户名包含两个额外的字符,所以 normann.. (0D 0A)。所以看来我没有正确使用 substring 函数,我需要知道如何从起点提取到最后一个字母数字字符。
-
啊哈.. 多亏了十六进制视图,我能够更高效地搜索解决方案,并在 SO 上找到它——你们太聪明了。此语句解决了我的问题: $psusername = preg_replace("/[^[:alnum:]]/u", '', $psusername);