获取字符串格式的 curl 响应


Getting a curl response in string format

我正在尝试执行一个网址并获得其响应。下面是执行 curl 的代码。我希望 curl 执行在 $result 中返回一个字符串。

<?php
$fields = array
(
'username'=>urlencode($username),
'pwrd'=>urlencode($pwrd),
'customer_num'=>urlencode($customer_num)
);
$url = 'http://localhost/test200.php';
//open connection
set_time_limit(20);
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
echo $result; //I want $result to be "Successful"
?>

这是我在本地主机上的测试200.php:

<?php
$usernam = $_POST['username'];
$pass = $_POST['pwrd'];
$customer_num = $_POST['customer_num'];
echo "Successful!";
?>

我在 test200.php 中做了哪些更改?请帮忙。

你应该使用 curl 执行返回的 httpcode,而不是依赖于返回的字符串

$res = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

这里 - http://www.webmasterworld.com/forum88/12492.htm

将数据发送到test200后.php请执行适当的操作,例如将发布的值插入表中并成功

echo "Successful!";

或者在test200中打印相同的代码.php.假设您在test200中插入代码.php代码就像

<?php
$qry = "INSERT INTO `your_table` (`field_customer_name`, `field_username`, `field_password`) VALUES ($fields['customer_num'], $fields['username'], some_encrypt_fxn($fields['pwrd']))";
mysql_query($qry);
$err_flag = mysql_error($your_conn_link);
if($err_flag == '') {
  echo "Successful!";
}
else {
  echo "Failed, Error " . $err_flag;
}
?>

如果获得"成功!"的目的是检查cURL是否返回成功,那么我建议使用Prateik使用返回状态代码的答案

不知何故一个简单的打印("成功"); test200 中的语句.php运行良好。我现在得到的响应如下:HTTP 代码:0 数组 ( [0] => [1] => 成功)