PHP:查看网站的响应设计


PHP: Check website for responsive design

是否存在检查网站响应设计的类/脚本/可能性?可能是这样的:

if (is_responsive('http://www.site.tld')) {
   echo 'is responsive';
}
else {
   echo 'is not responsive';
}

有什么想法吗?

有两种可能的*方法:

  1. 您可以使用JavaScript来检测CSS中是否有任何媒体查询,然后使用Ajax向PHP发送true/false变量

  2. 甚至可以使用服务器端语言读取CSS文件,并使用RegEx搜索文件中的任何媒体查询。

这些方法不能保证有效,而且确实没有"标准"、"安全"或"非黑客"的方法来做到这一点,而且不能使用服务器端技术直接处理媒体查询。

您可以用来匹配@media规则的RegEx是:

  1. ^'@media's(.*?)'{$

    ^=断言字符串开头的位置
    ''@=与字符@完全匹配
    media=与字符media完全匹配
    ''s=匹配任何空白字符[''r''n''t''f]
    .*?=匹配任何字符(换行符除外)
    {=匹配字符{字面上
    $=在字符串末尾断言位置

  2. '@media's(.*?)'{

    ''@=与字符@完全匹配
    media=与字符media完全匹配
    ''s=匹配任何空白字符[''r''n''t''f]
    .*?=匹配任何字符(换行符除外)
    {=匹配字符{字面上

也可以使用i使RegEx的大小写不敏感(i只忽略[a-zA-Z]的大小写)

以下是使用RegEx:检测@media规则的四种可能方法

  1. /^'@media's(.*?)'{$/
  2. /^'@media's(.*?)'{$/i
  3. /'@media's(.*?)'{/
  4. /'@media's(.*?)'{/i

不,从技术上讲,您不能使用PHP脚本检查响应性,因为这是客户端的事情。

没有常规或完美的函数可以做到这一点。为了以编程方式进行检查,您可以解析媒体查询的样式表。

因此,需要明确的是,不建议使用它,因为媒体查询可以用于很多事情。

如果你想尝试一下,这可能会对你有所帮助:@media ?[^{]+?{

否!尤其是在PHP中。您可以尝试为媒体查询解析CSS,或者检查元素大小是否设置为绝对值。

在我看来,方法是让一些web引擎在服务器端运行,并强制它呈现具有不同window.width的页面,并检查文档宽度是否会随之改变。这样的模块可以从php执行,但不能在php中执行。-若你们并没有专用的服务器,那个么就别再尝试这些特技了。