PHP CURLでPOSTデータを送信するサンプルを作成してみました。
自分で運用しているWordPressのサイトに対してブログのコメントを送ってみます。
●POSTで送る情報
・author=testuser
・&email=test@example.com
・url=
・comment=testcomment1
・submit=commnet-send
・comment_post_ID=1
・comment_parent=0
●CURLの設定方法
上記の項目=値を”&”で結合して、$query_stringに設定し、curl_setoptでセットします。
$query_string = “author=testuser&email=test@example.com&url=&comment=testcomment1&submit=commnet-send&comment_post_ID=1&comment_parent=0”;
curl_setopt($sc, CURLOPT_POSTFIELDS, $query_string);
でPostで送信する情報を定義します。
(サンプルプログラム)
$target = "http://example.com/wp-comments-post.php"; $ref = "http://example.com/?p=12"; $query_string = "author=testuser&email=test@example.com&url=&comment=testcomment19&submit=commnet-send&comment_post_ID=12&comment_parent=0"; $sc = curl_init(); curl_setopt($sc, CURLOPT_URL, $target); curl_setopt($sc, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($sc, CURLOPT_REFERER, $ref); curl_setopt($sc, CURLOPT_POSTFIELDS, $query_string); $return = curl_exec($sc); curl_close($sc); var_dump($return);
●動作確認
WordPressの管理画面でコメント管理画面を表示すると、PHP CURLプログラムで送ったコメントが登録されている事が確認できました。