現在、PHPにてブログシステムを作成中です。
ブログの特徴であるトラックバック機能について
いろいろと調べてみたのですが、あまり理解できませんでした。
http://lowlife.jp/yasusii/stories/8.html#descrip …
こちらなどで、しくみ自体はなんとなく理解できたのですが、実装の面で、実際にどういうコーディングをすればいいのかがわかりません。
HTTPリクエストでPOSTする、
らしいのですが、
上記サイトでいうと
POST http://www.hoge.hoge/mt-tb.cgi/5
Content-Type: application/x-www-form-urlencoded
title=Foo+Bar&url=http://www.tbtest.com/&excerpt=My+Excerpt&blog_n …
というものだと思うのですが、これをどこに挿入すればいいのかがわかりません。
header() にいれたり、一番最初に記述したり、
いろいろ試してみたのですが、なぜかPHPファイルをダウンロードしようとして失敗しました、というエラーがでたりします。
根本的に間違ってるのかもしれませんが、
どうかご教示いただけたらと思います。
開発環境:
WIN XP PRO
Apache 2.0.54
PHP 5.0.4
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_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_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. …
http://www.php.net/manual/ja/ref.sockets.php
返事が遅くなってしまい申し訳ありませんでした。
ご回答ありがとうございます。
教えていただいた方法にて、試してみましたら、
思っていたようなHTTPリクエストができました!!
ただ、なぜかtitleがありません、というエラーがもどってきしまいましたが。
やり方はこれであってるようなので、もう少し試行錯誤してみようと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php 完了画面の送信メールのコ...
-
メールフォームのタイトルが文...
-
指定した時間にPHPプログラムを...
-
PHPMailerのコードエラーが解決...
-
PHPからロリポップ!のメールサ...
-
ローカル環境でのメール送信
-
mb_send_mail関数が利用出来ない
-
mail関数を使った場合のReturn-...
-
こちらはただの直列処理ですか?
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
VBでメールを送る時のSMT...
-
ワードプレスサイト PHP8.0.25...
-
FTPコマンドでディレクトリごと...
-
アップロード画像数でCSSを分け...
-
二重投稿防止方法
-
PHPのif文でその処理を途中で抜...
-
入力フォームの空白や改行を制...
-
php5のrename()は日本語をリネ...
-
sqlで日付が一番古いデータの月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 完了画面の送信メールのコ...
-
さくらサーバーにて、phpからメ...
-
メールフォームのタイトルが文...
-
PHPsendmailにて送信元を変更
-
mb_send_mail関数が利用出来ない
-
PHPからロリポップ!のメールサ...
-
VBA 添付ファイルをつけてメー...
-
mailやmb_send_mail関数で、本...
-
sendmailでエラーがでます
-
PHPでの仮登録時の会員認証メー...
-
phpでメール送信できません 原...
-
mb_send_mail() 第 4、5 引数の...
-
PHPMailerのコードエラーが解決...
-
ローカル環境でのメール送信
-
PHPからメールを送る@さくらイ...
-
PHPでメールを送信するには
-
mb_send_mailについて
-
mail関数を使った場合のReturn-...
-
メールの本文をSmartyにしたい
-
サーバーによってはmb_send_mai...
おすすめ情報