ユーザーが携帯電話で閲覧していることが判明した場合に、ウェブサイトのモバイル バージョンにリダイレクトする簡単なスクリプトがあります。Tera-WURFL Web サービスを使用してそれを実現し、Tera-WURFL 自体以外のホスティングに配置されます。Tera-WURFL のホスティングがダウンした場合に備えて、これを保護したい。つまり、スクリプトの実行に 1 秒以上かかる場合は、スクリプトの実行を停止し、通常の Web サイトにリダイレクトするだけです。それを効果的に行う方法 (スクリプトによって CPU に過度の負担がかからないようにするため) は?
編集: TeraWurflRemoteClient クラスにはタイムアウト プロパティがあるようです。以下をお読みください。このタイムアウトの場合に通常の Web サイトにリダイレクトされるように、スクリプトに含める方法を見つける必要があります。
スクリプトは次のとおりです。
// Instantiate a new TeraWurflRemoteClient object
$wurflObj = new TeraWurflRemoteClient('http://my-Tera-WURFL-install.pl/webservicep.php');
// Define which capabilities you want to test for. Full list: http://wurfl.sourceforge.net/help_doc.php#product_info
$capabilities = array("product_info");
// Define the response format (XML or JSON)
$data_format = TeraWurflRemoteClient::$FORMAT_JSON;
// Call the remote service (the first parameter is the User Agent - leave it as null to let TeraWurflRemoteClient find the user agent from the server global variable)
$wurflObj->getCapabilitiesFromAgent(null, $capabilities, $data_format);
// Use the results to serve the appropriate interface
if ($wurflObj->getDeviceCapability("is_tablet") || !$wurflObj->getDeviceCapability("is_wireless_device") || $_GET["ver"]=="desktop") {
header('Location: http://website.pl/'); //default index file
} else {
header('Location: http://m.website.pl/'); //where to go
}
?>
そして、ここに含まれている TeraWurflRemoteClient.php のソースです。ドキュメントに記載されているように、オプションのタイムアウト引数があります。
// The timeout in seconds to wait for the server to respond before giving up
$timeout = 1;