我正在使用curl调用远程C# WebService。该服务返回 0 或 1,具体取决于通过检查数据库传递给它的值。当我使用echo $result
值正确打印时。但是当我尝试比较输出值时,代码不起作用。请告知
$result = curl_exec($ch);
if ( $result == 0 )
{
echo("Valid");
}
else
{
echo("Invalid");
}
VarDump 是 --->string(103( " 0">
更新:
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//So that curl_exec returns the contents of the cURL; rather than echoing it
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
UPDATE2:C# 网络服务代码(返回类型为 int(
try { if (dr.HasRows) { c.Close(); return 0; } else { c.Close(); return 1; } }
您的问题是您实际上从 curl 请求中获取了 XML 返回。结果的实际文本为
<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://www.example.com/">1</int>
您没有看到 XML,因为您正在打印到 HTML 环境中,并且这些标记正在被吞噬(echo htmlspecialchars($result);
会让它变得明显(。您将需要解析 XML,例如使用
$xml = simplexml_load_string($result);
$result = (int)$xml;
然后,您可以使用结果值。