wurfl/wurfl-dbapi

WURFL OnSite DB API

1.6.1.0 2015-08-11 20:08 UTC

This package is not auto-updated.

Last update: 2024-09-10 03:21:26 UTC


README

ScientiaMobile WURFL API,数据库版(之前称为Tera-WURFL) http://www.scientiamobile.com/ http://www.tera-wurfl.com/

关于ScientiaMobile WURFL API数据库版

数据库版WURFL API是一个支持MySQL、Microsoft SQL Server和MongoDB数据库后端的PHP库,使用无线通用资源文件(WURFL)来检测移动设备的功能。此API由ScientiaMobile公司版权所有,最初由ScientiaMobile公司的首席运营官Steve Kamerman编写。

有关Tera-WURFL的更多信息以及下载最新版本,请访问:http://www.tera-wurfl.com/

许可证 此程序是免费软件:您可以按照自由软件基金会发布的GNU Affero通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何更高版本。

请参阅与此软件包一起分发的COPYING文件,以获取适用的GNU Affero通用公共许可证的完整文本。

如果您无法遵守AGPL许可证的条款,ScientiaMobile公司提供商业许可证,详情请访问 http://www.ScientiaMobile.com/

安装

  1. 将文件复制到可以从互联网访问的web服务器上的目录中。为了说明,我将引用此位置为 http://yourserver.com/Tera-Wurfl/,本地目录为/var/www/Tera-Wurfl/。
  2. 打开网页浏览器并访问: http://yourserver.com/Tera-Wurfl/admin/install.php,你应该会看到带有大量错误的“Tera-WURFL安装”页面。以下步骤将向您展示如何纠正这些错误。您可以通过刷新此页面来验证您的更改是否生效。

配置文件 3. 将TeraWurflConfig.php.example复制到TeraWurflConfig.php,然后对其进行编辑。每个设置都在注释中进行了说明。您唯一需要修改的是数据库信息(用户、密码、数据库名称等)。

文件权限 4. 默认情况下,DATADIR设置为“data/”。此目录包含wurfl.xml文件、您的补丁文件和日志文件。此目录及其中的所有内容都需要由运行您的web服务器的用户可访问(可读+可写)。在Linux中通常是“apache”、“www-data”或“nobody”。(chown -R apache:apache ./data/)5. 通过刷新浏览器验证安装页面上的权限错误是否已修复。

数据库选项 6. 为Tera-WURFL创建一个新的数据库和用户,该用户在新数据库上至少具有以下权限:SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER、CREATE TMP TABLE、CREATE ROUTINE、ALTER ROUTINE、EXECUTE 7. 在配置文件中设置DB_HOST、DB_USER、DB_PASS和DB_SCHEMA。8. 通过刷新浏览器验证安装页面上的数据库错误是否已修复。如果数据库表尚不存在,则当您加载WURFL文件时,将为您创建这些表。

加载 Tera-WURFL 数据库 9。如果对安装页面上的结果满意,可以使用 WURFL 数据加载数据库。数据可以来自以下三个来源:a. 您本地的 WURFL 文件 这会将 DATADIR/wurfl.xml 文件加载到您的数据库中。b. 当前发布的 WURFL 这将从官方 WURFL 网站下载当前的 wurfl.xml 文件并将其加载到您的数据库中。c. 当前未发布的 CVS WURFL 这将从官方 WURFL 网站下载当前未发布的 CVS wurfl.xml 文件并将其加载到您的数据库中。10. 服务器加载/下载 WURFL 期间会有延迟,然后您应该看到如下内容

数据库更新成功

总时间:10.211848974228 解析时间:0.43991899490356 验证时间:2.7456870079041 排序时间:1.3005568981171 补丁时间:0.44084501266479 数据库时间:3.9245390892029 缓存重建时间:1.3603019714355 查询次数:294 PHP 内存使用:213.19 MB

WURFL 版本:www.scientiamobile.com - 2011-06-06 WURFL 设备:13714 补丁 新设备:3036 补丁 合并设备:2

更新完成!

如果有错误,最可能是连接到 WURFL 网站的问题或尝试将临时下载的文件写入 DATADIR 目录的权限问题。此外,许多用户报告了“内存分配”错误 - 要修复此错误,请查找配置文件中的“OVERRIDE_MEMORY_LIMIT”。如果没有错误,请点击“返回管理工具”。

管理页面 11.通过点击“统计信息、设置、日志文件”来验证 WURFL 是否已加载。您应该看到 MERGE 和 INDEX 表中有数据。当设备访问您的网站时,CACHE 表将填充缓存数据,并且只有在您从主管理页面点击“清除设备缓存”时才会清除。12.点击“Tera-WURFL 测试脚本”来测试安装。您可以输入任何用户代理来在 WURFL 中搜索它。如果您启用了缓存(默认),第一次搜索用户代理时,您将看到 Tera-WURFL 执行以找到匹配项的总查询次数(除非没有找到匹配项)。如果有匹配项,设备将被缓存,下次您再次搜索它时,您将看到“总查询次数:1(在缓存中找到)”。由于设备的全部功能已被缓存,Tera-WURFL 只需要执行 1 次查询。如果您返回到管理员页面并查看设置,您将看到 CACHE 现在有几行。您可以通过从主页“缓存浏览器”中点击您的用户代理来验证设备是否正确缓存。

安全 13.如果一切正常,您应该删除 admin/install.php 文件。14.使用适用于您的 Web 服务器软件的特定方法来保护“admin”目录。对于 Apache,这意味着可以使用 .htaccess 文件:http://www.mobilefish.com/developer/apache/apache_quickguide_htaccess.html#protect

示例 这里有一个非常简单的示例

// Include the Tera-WURFL file
require_once('./TeraWurfl.php');

// instantiate the Tera-WURFL object
$wurflObj = new TeraWurfl();

// Get the capabilities of the current client.
$wurflObj->getDeviceCapabilitiesFromAgent();

// see if this client is on a wireless device (or if they can't be identified)
if(!$wurflObj->getDeviceCapability("is_wireless_device")){
	echo "<h2>You should not be here</h2>";
}

// see what this device's preferred markup language is
echo "Markup: ".$wurflObj->getDeviceCapability("preferred_markup");

// see the display resolution
$width = $wurflObj->getDeviceCapability("resolution_width");
$height = $wurflObj->getDeviceCapability("resolution_height");
echo "<br/>Resolution: $width x $height<br/>";

完整的功能列表可在以下位置找到:http://wurfl.sourceforge.net/help_doc.php#product_info 如果您使用 $wurflObj->getDeviceCapability("cap_name"),您可以直接使用 WURFL 网站上的功能名称,否则您可以从 wurfl 对象的功能数组中直接访问它,如下所示:$wurflObj->capabilities['group_name']['cap_name']

请参阅测试脚本(check_wurfl.php)以获取使用示例。

支持 科学家移动(ScientiaMobile)提供商业支持许可证,可在 http://www.ScientiaMobile.com/ 获取。请将您的问题提交给科学家移动论坛 http://www.ScientiaMobile.com/forum。您还可以在遗留的 Tera-WURFL 论坛上找到有用的信息:http://www.tera-wurfl.com/forum