2011-02-07 24 views
0

OK、私は関係なく、例の値を比較した結果を返す関数を、持っている、すなわち:

function fncResult ($expVal, $actVal) 
{ 
    $negNulls=array("-5","-10","-15","-20","-25"); 
    if (!in_array($expVal, $negNulls)) 
    { 
     if(strtolower($expVal)==strtolower($actVal)) 
     { 
      echo " 
      <td class='match' title='The values match.'>Match</td> 
     </tr>"; 
     } 
     else 
     { 
      echo " 
          <td class='notMatch' title='The values do not match.'>Not Match<br />No Match</td> 
         </tr>"; 
     } 
    } 
    else 
    { 
     echo " 
      <td class='null' title='The value in the XML was a negative null.'>Negative Null</td> 
     </tr>"; 
    } 
} 

それは、ときにそれを除き、時間の約99%に動作します:Interfacility転送は=ここINTERFACILITY転送が機能ですこれに来る:

//--Type of service requested 
     echo " 
      <tr> 
       <td>E02_04</td> 
       <td>Type of Service Requested</td> 
       <td>36. &lt;Nature of Call&gt;</td> 
       <td>$fldServReq</td> 
       <td>".fncGrabNemsis("E02_04",$fldServReq,$local)."</td> 
       <td>".fncIsSet($CZ_E02_04[1])."</td>"; 
     fncResult(fncGrabNemsis("E02_04",$fldServReq,$local),fncIsSet($CZ_E02_04[1])); 

それはより複雑に見えますが、それは本当にただstrtolower($ expVal)== strtolower($ actVal)、比較したものです。私が比較している値をエコーすると、 "interfacility transfer"と "interfacility transfer"と "No Match" ... WTF?最初の値がXML(UTF-8)から来ていて、2番目がDB(?)から来ているからです。これは単純な作業のために何をすべきかわからず、信じられないほど欲求不満です。助けてくれてありがとう!

+4

[strcasecmp](http://uk3.php.net/manual/en/function.strcasecmp.php)を使ってみませんか? –

+0

空白がある可能性があります。 'var_dump'を実行し、長さが等しいかどうかをチェックするか、入力に対して最初に' trim'を試してください。 – netcoder

+2

このコードはすべて、そのデータが供給されていないと役に立たない。文字エンコーディングに問題がある可能性が高いようです。 – meagar

答えて

0

文字列に空白がありますか?おそらくtrim()と一緒にstrtolower()と一緒に入れ子にしているのでしょうか?これをHTML出力で見ている場合は、ソースを見て、そこにHTMLエンティティがないことを確認してください(つまり、 "interfacility transfer"と "interfacility transfer"と "interfacility & nbsp; transfer"は同じではありませんがHTMLでレンダリングされたものと同じように見えます)。

最終的な選択肢は、mb_strtolowerに「アップグレード」し、エンコードの問題であるかどうかを確認することです。

+0

トリム()が私のために働いてくれてありがとう! – jreed121

0

expvalとactvalのバイトを出力します(たとえば、urlencode)。まったく同じように見えるさまざまな文字があります(通常のスペースと非区切りのスペース、またはcesおよびroman 100など)。

関連する問題