PHPでPOSTメソッドを使って送信する

PHPでHTMLのフォームを使って自動POSTして見ます。
どういう時に使うかというと、フォームを使わずあるページにアクセスされたら、
POSTメソッドで外部に値を渡したい時などに使います。
または添付ファイルが無い場合は簡単にPOSTできたりします。 PHPでのPOSTメソッドではstream_context_create関数とfile_get_contents関数で送付する事ができます。
$url = '';
$data = array(
    'フォームid' => '値',
    'フォームid' => '値',
);
$options = array('http' => array(
    'method' => 'POST',
    'content' => http_build_query($data),
));
$contents = file_get_contents
($url, false, stream_context_create($options));
stream_context_create関数のオプションに値を配列化して、
file_get_contentsで表示させています。
またこれはクラスを使って書く事もできます。
//スクロールがアレなので適度に改行してます。
//実装するときは直してください。

function post($url, $data = array()) {
  if (!ini_get('allow_url_fopen')) 
   throw new Exception("Not Allowed URL Open!");
  $stream = stream_context_create(
  array('http' => array(
    'method' => 'POST',
    'header' => 
     'Content-type: application/x-www-form-urlencoded',
    'content'   => http_build_query($data),
  )));
  return file_get_contents($url, false, $stream);
}

// usage 
try {
  $hoge = post('http://送信先アドレス(´・ω・)'
                , array('var1' => 'value'));
  var_dump($hoge);
} catch (Exception $e) {
  var_dump($e);
}
参考:PHPの標準関数でPOSTする方法
またファイルを添付する事もできます。
すこし勝手が分からないで下記コードで実装してみました。
//スクロールがアレなので適度に改行してます。
//実装するときは直してください。

$sendurl = "送付先アドレス";
$data = "";
$boundary = 
"---------------------".substr(md5(rand(0,32000)), 0, 10);

	$postdata['login_id'] ="値";
	$postdata['password'] ="値";

	foreach($postdata as $key => $val) {
		$data .= "--$boundary\n";
		$data .= "Content-Disposition: form-data; 
                name=\"".$key."\"\n\n".$val."\n";
	}
	$data .= "--$boundary\n"; 

	$files['upfile'] = "list.csv";

  foreach($files as $key => $file) {
    $fileContents = file_get_contents($file);
    $data .= "Content-Disposition: form-data; 
            name=\"{$key}\"; filename=\"{$file}\"\n";
    $data .= "Content-Type: image/jpeg\n";
    $data .= "Content-Transfer-Encoding: binary\n\n";
    $data .= $fileContents."\n";
    $data .= "--$boundary--\n";
  }

$params = array('http' => array(
  'method' => 'POST',
  'header' => 
  'Content-Type: multipart/form-data; boundary='.$boundary,
  'content' => $data
));

	$context = stream_context_create($params); 

	//送信する
	$contents = "";
	$contents = file_get_contents($sendurl, false, $context);

添付の場合、どうしても上手くいかない事もありますので、
その場合、生HTTPリクエストを見て実装するのが近道です。
生リクエストを見るのに便利なのは、Firfoxのプラグイン
FirefoxのLive HTTP Headers が便利です。