【问题标题】:how to check for mobile version of a website?如何检查网站的移动版本?
【发布时间】:2013-10-01 19:10:00
【问题描述】:

我想检查特定网站是否存在移动版本。据我了解,我们无法确定每个网站是否都有位于http://m.example.com/ 的移动版本,因此我正在通过 CURL() 请求进行测试。这是我的做法:

* I send mobile browser headers in curl request, this returns contents of 
the returning URL. 
* If it has a mobile version, then it would return contents of a mobile version site.
* I then check if the content includes @media keyword, if it exists then I assume it has a mobile version.

问题是,如果它的 css 是从外部加载的,那么我将不得不进一步向 CSS 文件发送 CURL() 请求,这会使它变得更慢。我的问题有什么具体的解决方案吗?或者我可以进一步推动这个过程吗?

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: php dom curl


    【解决方案1】:

    你的方法有点像XY Problem,问题在于它根本不可靠。

    网站有多种移动网站选择,包括:

    1.使用 CSS 媒体查询

    这种方法的问题是双重的。对于初学者,您必须扫描每个 CSS 文件和 <link> 声明。其次,该站点可以使用 JavaScript 动态地向页面引入样式表,而使用 cURL 则永远不会看到这种情况,因为它缺少 JavaScript 解析器。

    2.使用(客户端)JavaScript 进行浏览器嗅探,或使用 JavaScript 进行屏幕宽度嗅探

    同样,这个 JavaScript 永远不会被执行,所以你永远不会看到那个结果。

    3.使用服务器端代码进行浏览器嗅探

    好吧,我想您可以尝试在您的 cURL 请求中使用移动用户代理字符串,然后看看它会将您带到哪里,但所有这些方法都是不可靠且不可靠的。

    4.该页面可以从一开始就适合移动设备(感谢@Quentin)

    正如 @Quentin 在 cmets 中提到的,该页面可以是移动友好的,无需在客户端/服务器端进行任何额外检查(例如,无需媒体查询的响应式设计,只需使用基于百分比的值)。

    【讨论】:

    • 感谢您对每个场景的澄清。好吧,我找不到任何其他选项,有没有解决这个问题的方法?
    • 4.他们可能有一个简单的移动友好网站,没有任何特殊的手机外壳。
    • @Quentin 是的,我想我忘记了最基本的例子,干杯。虽然这个问题可能有解决方案,但它们将是骇人听闻的解决方法,而不是真正的解决方案。请问你为什么需要这个功能?
    • @RainFromHeaven 抱歉回复晚了。实际上,我正在开发的网站涉及与第三方网站的关联。所以我需要知道哪个联盟合作伙伴启用了移动网站。
    猜你喜欢
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多