2011-05-18 4 views
0

Я пытаюсь определить, совпадают ли две строки, и даже если я их распечатываю, они идентичны, но по-прежнему говорят, что они не совпадают. Я пытался бросить их обоих, как струны, и я попытался с помощью «===» вместо «==», но и не решил проблему ...Проблема с переменным сопоставлением в PHP

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 
    } 
    ... 
+1

Наверное, проблема с разрывом или пробелом. Можете ли вы сделать 'trim()' по обоим значениям и посмотреть, совпадают ли они? –

ответ

3

$ тест имеет место после Availability: может быть, вы перед отделкой необходимо обрезать струны. например

if(trim($orig->title) == trim($prep[1])) 
+0

Да, это было ... Спасибо ... (Я не могу принять еще семь минут, но я буду!) –

0

Я бы сказал, что это почти наверняка будет пространством в начале и/или конце ваших строк.

Например, вы делаете explode("Availability:",$test);, но ваша строка имеет пробел после «Доступность:» перед «Лорумом», поэтому $prep[1] будет равен «Lorum Ipsum» - с ведущим пространством.

Либо измените свой звонок explode(), либо используйте trim() в своих сравнениях.

 Смежные вопросы

  • Нет связанных вопросов^_^