2011-10-17 45 views
1

我只是新的PHP,捲曲我寫了一個小的mediawiki擴展,發送最近的變化。問題是,當是送這個數據我嘗試把它寫在一個文件,但「1」只是什麼似乎我試圖用var_dump,但沒有改變我的發送者的代碼是:我不能通過curl看到我發佈的數據?

$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); 

我認爲這是一個愚蠢的問題,但我卡住了,需要幫助。

謝謝相反的

fwrite($d,print_r($a)); 

+0

對於其他啓示,[這裏是一個類似的問題](http://stackoverflow.com/questions/6610870/insert-print-r-output-to-database)有人試圖插入'print_r( )'到數據庫中。 –

回答

1

嘗試

fwrite($d,print_r($a, true)); 

通過傳遞true爲您指示print_r捕捉第二個參數(即回報)的輸出,而不是打印出來。

或者,您可以使用var_export($a, true)而不是print_r()(對於不同的表示形式;因爲您最初嘗試使用var_dump(),所以我只提及它)。

+0

也就是說,它太簡單了,但是這個真正的選擇是什麼? – eyadof

+1

print_r默認OUTPUTS到瀏覽器。通過傳遞第二個參數,你告訴print_r返回其數據,否則。您的版本輸出print_r在完成OUTPUTTING轉儲文本後返回的'true'值。 –