• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでトラックバック機能 HTTPリクエスト)

PHPでトラックバック機能 HTTPリクエスト

このQ&Aのポイント
  • PHPを使用してブログシステムを作成する際のトラックバック機能についての質問です。
  • トラックバックの仕組みについては理解できたが、具体的な実装方法が分からない。
  • HTTPリクエストでPOSTする方法について知りたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • unimentai
  • ベストアンサー率70% (34/48)
回答No.1

『HTTPリクエストでPOSTする』と言う所がポイントです。 つまり、通常Web上でサーバ(サイドスクリプト)として振舞っているPHPを、 クライアント、つまりWebブラウザとして動作させる必要が有ります。 その為にどうすれば良いかと言うと、PHPにはfsockopenやsocket等の ネットワーク関数が用意されていますので、これを利用します。 fsockopen の例 <?php  // ソケット接続を開く  $fp = fsockopen("www.foo.com", 80, $errno, $errstr, 30);  if ( !$fp ) {   echo "$errstr ($errno)<br />\n";  }else {   // ヘッダ生成   $header = "POST http://www.hoge.hoge/mt-tb.cgi/5 HTTP/1.1\r\n";   $header .= "Content-Type: application/x-www-form-urlencoded\r\n";   $header .= "title=Foo+Bar&url=http://www.tbtest.com/&excerpt=My+Excerpt&blog_name=Foo\r\n\r\n";   // ヘッダ送信   fwrite($fp, $header);   // レスポンス取得   while ( !feof($fp) ) {    echo fgets($fp, 512);   }   fclose($fp);  } ?> socket の例 <?php  // 送信ヘッダ作成  $header = "POST http://www.foo.com/mt-tb.cgi/5 HTTP/1.1\r\n";  $header .= "Content-Type: application/x-www-form-urlencoded\r\n";  $header .= "title=Foo+Bar&url=http://www.tbtest.com/&excerpt=My+Excerpt&blog_name=Foo\r\n\r\n";  // ソケット生成  $socket = @socket_create(AF_INET, SOCK_STREAM, 0)   or die("ソケットの生成に失敗しました。\n");  // 接続開始  @socket_connect($socket, $host, $port)   or die("接続に失敗しました。\n");  // ヘッダ送信  @socket_write($socket, $header, strlen($in))   or die("ヘッダ送信に失敗しました。\n");  // レスポンス取得  $out = @socket_read($socket, 1048576)   or die("レスポンスの取得に失敗しました。\n");  echo $out;  // ソケット破棄  socket_close($socket); ?> 以上、ご参考までに。 http://jp2.php.net/manual/ja/function.fsockopen.php http://www.php.net/manual/ja/ref.sockets.php

SHlVA
質問者

お礼

返事が遅くなってしまい申し訳ありませんでした。 ご回答ありがとうございます。 教えていただいた方法にて、試してみましたら、 思っていたようなHTTPリクエストができました!! ただ、なぜかtitleがありません、というエラーがもどってきしまいましたが。 やり方はこれであってるようなので、もう少し試行錯誤してみようと思います。 ありがとうございました。

関連するQ&A