我只是新的php,curl我写了一个小的mediawiki扩展,发送最近的更改。问题是什么时候发送这个数据我试着把它写在一个文件中,但“1”只是出现我试图使用var_dump
,但我的发送者代码没有变化:
$wgHooks['RecentChange_save'][] = 'sendto';
function sendto($recentChange){
$serialized_data=serialize($recentChange);
$con=curl_init();
curl_setopt( $con, CURLOPT_HEADER, true );
curl_setopt($con,CURLOPT_URL,"http://localhost/test.php");
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($con,CURLOPT_POSTFIELDS,"data={$serialized_data}");
$result=curl_exec($con);
if($result){
return true ;
}
else
return false ;
curl_close($con);
}
,另一个代码是(recive):
$a = unserialize($_POST['data']);
$d=fopen("log.txt","w");
fwrite($d,print_r($a));//only "1" is written
fclose($d);
我认为这是一个愚蠢的问题,但我陷入困境并需要帮助。
谢谢
答案 0 :(得分:1)
而不是
fwrite($d,print_r($a));
试
fwrite($d,print_r($a, true));
通过传递true
作为第二个参数,指示print_r
捕获(即返回)输出而不是打印输出。
或者,您可以使用var_export($a, true)
代替print_r()
(对于不同的代表;我只提及它,因为您最初尝试使用var_dump()
。)