2011-05-18 3 views
0

2つの文字列が一致するかどうかを判断しようとしていますが、それらを印刷しても一致していても一致しないと言います。私は、文字列としてそれらの両方をキャストしようとした、と私は代わりに「==」の「===」を使用してみましたが、どちらも問題を解決した...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後にスペースがあります:あなた多分コンパイルする前に文字列をトリミングする必要があります。そのように

+0

はい、それでした...ありがとうございました(私は7分も受け付けませんが、私はします)。 –

0

私はあなたの文字列の最初と/または最後に空白であると確信しています。

たとえば、あなたはexplode("Availability:",$test);を実行していますが、文字列に 'Lorum'の前に 'Availability:'の後に空白があるため、$prep[1]は 'Lorum Ipsum'に等しくなります。

explode()コールを変更するか、trim()を比較してください。