我正在尝试确定两个字符串是否匹配,即使当我打印出来时,它们是相同的,它仍然说它们不匹配。 我试图将它们都转换为字符串,我尝试使用"==="而不是"==",但都没有解决问题......
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后面
有一个空格 Availability
: 也许你必须在编译之前修剪字符串。 像那样
if(trim($orig->title) == trim($prep[1]))
我会说它几乎可以肯定是字符串开头和/或结尾的空格。
例如,您正在执行explode("Availability:",$test);
,但是您的字符串在"Availability:"之后有一个空格,在"Lorum"之前,因此$prep[1]
将等于" Lorum Ipsum" - 带有前导空格。
更改explode()
调用,或在比较中使用trim()
。