PHP中的变量比较问题
我试图确定两个字符串是否匹配,即使当我打印出来时,它们是相同的,它仍然表示它们不匹配。我尝试将它们都转换为字符串,并尝试使用“==”而不是“==”,但都没有解决问题PHP中的变量比较问题,php,comparison-operators,Php,Comparison Operators,我试图确定两个字符串是否匹配,即使当我打印出来时,它们是相同的,它仍然表示它们不匹配。我尝试将它们都转换为字符串,并尝试使用“==”而不是“==”,但都没有解决问题 if(preg_match("#^Availability:#", $test)) { //just to note: $test = "Availability: Lorem Ipsum"; $nid = 1; $prep = explode("Availability:", $test);
if(preg_match("#^Availability:#", $test)) {
//just to note: $test = "Availability: Lorem Ipsum";
$nid = 1;
$prep = explode("Availability:", $test);
$orig = node_load($nid);
print $prep[1]; //Prints Lorem Ipsum
print($orig->title); //Prints Lorem Ipsum
if((string)$orig->title == (string)$prep[1]) {
print 'ok';
} else {
print 'nope'; //Always prints nope
}
...
$test在
可用性
之后有一个空格:也许您必须在编写之前修剪字符串。那样
if(trim($orig->title) == trim($prep[1]))
$test在
可用性
之后有一个空格:也许您必须在编写之前修剪字符串。那样
if(trim($orig->title) == trim($prep[1]))
我想说,几乎可以肯定字符串的开头和/或结尾都有空格 例如,您正在执行
explode(“可用性:”,$test)代码>,但您的字符串在“Availability:”之后、在“Lorum”之前有一个空格,因此$prep[1]
将等于“Lorum Ipsum”-带有前导空格
要么更改explode()
调用,要么在比较中使用trim()
。我几乎可以肯定字符串的开头和/或结尾会有空格
例如,您正在执行explode(“可用性:”,$test)代码>,但您的字符串在“Availability:”之后、在“Lorum”之前有一个空格,因此$prep[1]
将等于“Lorum Ipsum”-带有前导空格
更改explode()
调用,或者在比较中使用trim()
。可能是换行符/空白问题。您能否对两个值执行trim()
,然后查看它们是否匹配?可能是换行符/空白问题。你能对两个值进行trim()
,看看它们是否匹配吗?是的,就是这样。。。非常感谢。(我不能再接受七分钟,但我会的!)是的,就是这样。。。非常感谢。(我不能再接受七分钟,但我会的!)