等字符串比较失败

时间:2013-07-23 08:34:53

标签: php

经过几个小时的调试后,我终于确定由于某种原因在运行我的小脚本的特定网络服务器上,两个相等的字符串显然被解释为彼此不相等。

这对我来说完全没有意义,因为我尝试使用“==”和“strcmp”进行比较。虽然这个代码块在我的托管上完美运行,但是运行我的脚本的人仍然会失败。

记录的结果是......

爆炸前的数据:结果=成功;

爆炸后的数据:结果=成功

NO

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $GLOBALS["api_url"]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
$data = curl_exec($ch);
curl_close($ch);

$data1_log = "DATA BEFORE EXPLODE: " . $data;
log_activity($data1_log);

$data = explode(";",$data);

$data2_log = "DATA AFTER EXPLODE: " . $data[0];
log_activity($data2_log);

if (strcmp($data[0], "result=success") == 0)
{
    log_activity("YES");
}
else
{
    log_activity("NO");
}

2 个答案:

答案 0 :(得分:0)

为什么不尝试在修剪中使用修剪($ data [0]);并进行比较。

答案 1 :(得分:0)

使用trim()(注意第二个参数,在您的情况下接受其他字符,例如“;”)以及比较前两个字符串上的strtolower()strtoupper()

此外,如果您可以选择更改API响应,请尝试实现JSON响应,而不是返回纯字符串。它将减少内存密集度并且更易于维护。