別サーバのデータベースからデータを取り出し、それを表示させる方法。(PHP)
※別サーバにFTPでアクセスできるのが前提です。
iframe使えば簡単なんだけど…使えない場合、使いたくない場合。
あんまりこういうシチュエーションはないかと思うけど…
別サーバのDBからデータを取得。
SELECT文とか使って取得したデータを、
echo文で表示させます。(A.php)
当サーバの「B.php」
readfile関数にて、A.phpを読み込み表示。
<?php
header("Content-type:text/html; charset=shift_jis");
$url = "別サーバのA.php";
readfile($url);
?>
PHP良く知ってる人ならもっと効率的な方法あるんだろうけど…
PHPファイルでなく、普通のHTMLにDBの情報を載せたいので、
AJAXを使う・・・prototype.jsを読み込んだ上で、
function loadHTMLFile(fName)
{
new Ajax.Request(fName, { method: "get", onComplete: displayData });
}
function displayData(httpObj)
{
$("表示させたい場所のdivタグのid名").innerHTML = httpObj.responseText;
}
// PHPファイルの呼び出し
function price(){ ・・・priceと言う名のユーザ定義関数
loadHTMLFile('B.php');
}
IFRAMEタグを使えば簡単なんだろうけど、なんだかレイアウト制御が面倒かも…
この方法でも、AJAXでソースは表示されないから、SEOを求める場面には使えない。
※PHP5.2以上から外部ドメインのincludeができないんですね。
デフォルトで「allow_url_include」が「OFF」なんだそうです。(セキュリティ対策らしい)
だから、B.phpでは、「include」ではなく、「readfile」を使ってます。