0

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

这对我来说绝对没有意义,因为我尝试使用“==”和“strcmp”进行比较。虽然此代码块在我的主机上完美运行,但运行我的脚本的人继续让它失败。

记录的结果是...

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

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

$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");
}
4

2 回答 2

0

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

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

于 2013-07-23T08:46:30.933 回答
0

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

于 2013-07-23T08:42:22.850 回答