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