http://www.tsingfeng.com/show-552-1.html
最近在幫客戶寫網頁程式的時候,客戶希望能夠從另一個 Server (B)的 MySQL 讀取內容並且及時更新
問題來了,就是 Server(B) 的 MySQL 並沒有對外開放連結
那要如何做到讀取資料庫內容,並及時更新呢
我採用了以下的方法 :
- 在 Server(B) 寫一個網頁程式 (news.php),讀取 Server(B) 資料庫內容,並且輸出最簡單格式的文字檔
- 在 Server(A) 寫一個網頁程式,讀取 news.php 的內容,並且加以整理成 SQL 字串,就可以順利更新 Server(A) 的資料庫了
================================================
$file_contents = file_get_contents('http://www.helloks.com/');
echo $file_contents;
================================================
不過 file_get_contents() 不是每個 Server 都能順利執行,PHP 版本 < 4.3.10 就不能使用(官方說的)
不能用 file_get_contents() 的原因,我所知的只有2個:
- PHP 版本 < 4.3.10
- 主機服務商把 php 的 allow_url_fopen 選項關閉了,使用 phoinfo() 可以查詢這些項目
我用 function_exists() 來查詢的結果 file_get_contents() 也存在於 Server 上
我無計可施,只好再一次請出Google大神,找到了一個替代法 : 使用另外一個函數 curl
原來使用 file_get_contents 函數的範例 :
================================================
$file_contents = file_get_contents('http://www.helloks.com/');
echo $file_contents;
================================================
換成curl函數的使用範例 :
================================================
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://www.helloks.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
================================================
沒有留言:
張貼留言