0

我想检查特定网站是否存在移动版本。据我了解,我们无法确定每个网站是否都有位于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() 请求,这会使它变得更慢。我的问题有什么具体的解决方案吗?或者我可以进一步推动这个过程吗?

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

4

1 回答 1

3

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

该网站为移动网站提供了多种选择,其中包括:

1. 使用 CSS 媒体查询

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

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

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

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

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

4. 该页面从一开始就可以是移动友好的(感谢@Quentin)

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

于 2013-10-01T10:56:43.240 回答