4

假设我用 PHP/MySQL 开发了一个门户网站。我也想让它在移动设备上工作。最简单的方法是什么?

我们能否将 PHP 与任何基于移动的标记语言(如 WML 或 XHTML)一起使用,例如,我们可以在用于在普通 Web 浏览器中查看的 Web 应用程序中将 PHP 与 HTML 一起使用?

4

5 回答 5

5

PHP 与您要在其上显示应用程序的平台没有直接关系。PHP 只是提供你需要的标记类型的工具,你的页面可以在你想要的任何平台上显示。呈现适合您需求的标记取决于您自己的知识和创造力。所以换句话说,是的,当然你可以发送 WML、XML、XHTML,你可以把它命名为客户端!

无论如何,客户端对 PHP 一无所知(PHP 仅在服务器端“存在”),客户端不了解 PHP,也不需要。它理解 XHTML 或任何其他标记,这就是您必须提供的!你用什么工具来做这件事完全取决于你。PHP 是一种选择。

因此,您只需要知道要针对哪个平台/客户端呈现内容以及该平台理解哪种标记,然后将正确的标记传递给正确的平台/客户端,包括相应的 CSS、js 等。

你的应用做什么:

  1. 检测什么客户正在请求您的网站
  2. 看看您是否能够发送适当的标记
  3. 发送此标记,或者如果不可用,则发送一些默认或类似标记
于 2009-07-27T12:54:48.363 回答
1

Depends on what you understand under the term "mobile". Basically it would just mean to adapt your portal displayed data and css to the smaller display sizes and make as ZOMFG said an if statement to output your source accordingly. If you want to enable WAP browsing you have to output your data in the Wireless markup language.

于 2009-07-27T11:41:14.373 回答
1

每个页面的伪代码,(或者只是模板页面,如果你有的话)

<?php if(mobile()): ?>

   Mobile HTML and PHP
<?php else: ?>

   Desktop HTML and PHP

<?php endif; ?>

我用这个。

于 2009-07-27T11:37:16.923 回答
1

移动浏览器已经支持几乎完整的 XTHML、Javascript、Flash。

我的建议是:

  • 有一个用于移动版的轻量级 css
  • 限制一些繁重的功能
  • 验证您的代码
  • 优化,优化,优化,尽管这甚至适用于完整版本。
于 2009-07-27T16:41:18.313 回答
1

PHP 只是一种工具,它可以生成客户端(浏览器)可以理解的某种标记语言(或其他任何东西,实际上可能根本不是面向标记的)。

您的 PHP 代码必须能够生成两种不同的输出:

  • 用于计算机网络浏览器的“完整输出”(可能是 HTML)
  • 用于基于移动的浏览器的“轻量输出”(可能是 VML,也可能是 HTML,但没有一些繁重的东西)。

您必须处理的任务是区分移动用户和非移动用户;例如,这可以通过用户代理嗅探或检测客户端请求的内容来完成。

为移动平台的用户使用一个特殊的域名是一件好事;类似 mobile.example.com 的东西;例如,这样他们就可以为它添加书签并直接访问您网站的“移动版本”——如果您的检测效果不佳,这可能会很有用^^


如果您的目标是浏览器还不错的高级移动机器(如 iPhone),您可能希望向它们发送“丰富”的 HTML 页面;只需测试您的页面以验证它们是否适合这些机器的小屏幕;而且,也许你会想要发送更少的数据(比如不显示一些侧边栏,或者有一个更小的菜单,......)

顺便说一句,您所说的“移动”是指什么样的平台?那些小屏幕的旧手机,或者更多面向高级用户的手机,比如 iPhone / Android / 之类的?
实际上,这可能会产生很大的不同,因为最近的那些具有最古老的没有的很好的功能^^


无论如何,要记住一件重要的事情:

  • 您将花一些时间使网站在这些设备上运行
  • 你将不得不花更多的时间来维护它!

这意味着:做一些简单的事情,并且尽可能为移动版和非移动版网站使用相同的 PHP 代码:您复制的代码越少,您需要维护的代码就越少!

希望这几个想法(我承认不是很好排序)会有所帮助......
玩得开心!

于 2009-07-27T16:27:41.320 回答