• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:他サーバーにあるファイルに書き込みを行いたい。allow url fopen関連?)

他サーバーにあるファイルに書き込みを行いたい。allow url fopen関連?

このQ&Aのポイント
  • PHP5, SQLite3環境で、サーバAのPHPスクリプトからサーバBのファイルに書き込み処理をする方法について教えてください。
  • サーバAとサーバBのphp.iniの設定やファイルの書き込み権限の設定も教えてください。
  • allow url fopenなどの設定が必要で、ファイルの書き込み権限も確認が必要です。どなたか教えてください。

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

  • ベストアンサー
回答No.2

WEBAPI フロントプログラムを作成して、そのプログラムにてデータの更新処理を行ってやろう、ということですね。 両方ともPHPで行うことを想定します。 AサーバのPHPスクリプトで、「fsockopen」関数などにて、BサーバのPHPスクリプトに対して、POSTを行ってやります。 BサーバはそのPOSTしてきたデータを受け取り、各ファイルやDBなどにデータを登録する、というだけですね。 fsockopen関数は、HTTP通信を行う関数で、HTMLのフォームでPOSTするように、指定したプログラムにPOSTすることが出来ます。(POSTだけでなく、GET、HEADなどのリクエストメソッドを記述できます。) fsockopen関数の便利な使い方などは別途検索して探してみてください。 色々な実装があります。

march4
質問者

お礼

>両方ともPHPで行うことを想定します。 安心致しました。笑 >AサーバのPHPスクリプトで、「fsockopen」関数などにて、 >BサーバのPHPスクリプトに対して、POSTを行ってやります。 >fsockopen関数の便利な使い方などは別途検索して探してみてください。 わかりました! 調べてみます、ありがとうございました!^^

その他の回答 (1)

回答No.1

人力検索はてなにて、同様な内容の質問がありました。 http://q.hatena.ne.jp/1234887784 allow_url_fopenがOnになっている場合に、 <?php $fp = fopen('http://example.com/hogehoge.php'); ?> などとして、ファイルを取得できますが、 これはあくまで、HTTP(ハイパーテキストトランスファープロトコル)でのアクセスなので、phpのファイル内容を取得するのではなく、PHPの実行結果を取得することになり、 fputs/fwrite関数にて、書き込みが出来るのは、HTTPヘッダのみとなります。 その為、上記URLでの回答者が言っているように、FTP関数で接続して、ファイルをFTP経由でUPするのをPHPで行うとか、SSH2関数を使って・・・とする必要があります。 そうなると、SSHでアクセスしてLinuxコマンドを、FTPコマンドをゴリゴリ記述する必要があり、手間ばかりかかってしまいますので、 2番目の方の回答の、「・リモートサーバ側にデータをやりとりするWEBAPI等を作成してそれ経由でデータのやりとりをする」 が最も良いかなと思います。

march4
質問者

お礼

hogehoge78さん、こんばんは。 早速、はてなの質問を見てきましたが、 私が思っていたよりも、大変な作業であることが分かりました。 リモートサーバのhtmlソースの取得(file_get_contents()等)のように手軽に、 ファイル自体の読み書きも出来るのかと思っていましたが、考えが甘かったようです。 で、先ほどの質問ページの中の話に戻りますが、 1番目の回答者の方法は力業、 2番目の回答者の方法は実際的、 そんな印象でした。 ただ、残念なことに、2番目の方が挙げられている方法はどれも、 私にはよく分かりませんでした。笑 >「・リモートサーバ側にデータをやりとりするWEBAPI等を作成してそれ経由でデータのやりとりをする」 「WEBAPI等を作成」 これは具体的には、どういうことでしょうか。 APIという言葉もモヤモヤ(これについてはネットで調べました)、 作成方法もモヤモヤ(こちらについては謎のままで、作成言語はJAVAやC言語とかなのでしょうか?)、 という感じです。 場合によっては、既成のWEBAPIを利用したり?! ※ちなみに、私はPHPくらいしか扱えません。苦笑 どのくらい敷居が高いことをしようとしているのか、 それすらよく分からない状況にあります。 やっぱり、まだ私には難しいのかな~。笑

関連するQ&A