php curl接收数据的问题

WBOY
WBOYオリジナル
2016-06-06 20:52:041466ブラウズ

接收端是print_r($_POST);

发送端写了一个curl提交post。

$ch = curl_init();
curl_setopt_array($ch,
array(
	CURLOPT_URL => 'http://myurl/abc.php',
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_POST => true,
	CURLOPT_POSTFIELDS =>'name=abc&id=123'
)
);
$content = curl_exec($ch);
print_r($content);
echo '<br>=========<br>';
echo $content['name'];

打印出来的结果:

Array(
    [name] => abc
    [id] => 123
)
=========
A

为什么$content['name']得到的是一个字母A...

回复内容:

接收端是print_r($_POST);

发送端写了一个curl提交post。

$ch = curl_init();
curl_setopt_array($ch,
array(
	CURLOPT_URL => 'http://myurl/abc.php',
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_POST => true,
	CURLOPT_POSTFIELDS =>'name=abc&id=123'
)
);
$content = curl_exec($ch);
print_r($content);
echo '<br>=========<br>';
echo $content['name'];

打印出来的结果:

Array(
    [name] => abc
    [id] => 123
)
=========
A

为什么$content['name']得到的是一个字母A...

$content = curl_exec($ch);

这行代码拿到的 $content 是一个字符串。所以你在 echo 的时候打印的是这个字符串。
把print_r换成 var_dump 就一目了然了

var_dump($content);

得到结果:

string(44) "Array
(
    [name] => abc
    [id] => 123
)
"

echo $content['name']; // 这一句

$content是一个字符串, 'name'在这里被转乘整数0,所以是第一个字母A.

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。