是否存在检查网站响应设计的类/脚本/可能性?可能是这样的:
if (is_responsive('http://www.site.tld')) {
echo 'is responsive';
}
else {
echo 'is not responsive';
}
有什么想法吗?
有两种可能的*方法:
-
您可以使用JavaScript来检测CSS中是否有任何媒体查询,然后使用Ajax向PHP发送true/false变量
-
甚至可以使用服务器端语言读取CSS文件,并使用RegEx搜索文件中的任何媒体查询。
这些方法不能保证有效,而且确实没有"标准"、"安全"或"非黑客"的方法来做到这一点,而且不能使用服务器端技术直接处理媒体查询。
您可以用来匹配@media
规则的RegEx是:
-
^'@media's(.*?)'{$
^=断言字符串开头的位置
''@=与字符@完全匹配
media=与字符media完全匹配
''s=匹配任何空白字符[''r''n''t''f]
.*?=匹配任何字符(换行符除外)
{=匹配字符{字面上
$=在字符串末尾断言位置 -
'@media's(.*?)'{
''@=与字符@完全匹配
media=与字符media完全匹配
''s=匹配任何空白字符[''r''n''t''f]
.*?=匹配任何字符(换行符除外)
{=匹配字符{字面上
也可以使用i
使RegEx的大小写不敏感(i
只忽略[a-zA-Z]的大小写)
以下是使用RegEx:检测@media
规则的四种可能方法
/^'@media's(.*?)'{$/
/^'@media's(.*?)'{$/i
/'@media's(.*?)'{/
/'@media's(.*?)'{/i
不,从技术上讲,您不能使用PHP脚本检查响应性,因为这是客户端的事情。
没有常规或完美的函数可以做到这一点。为了以编程方式进行检查,您可以解析媒体查询的样式表。
因此,需要明确的是,不建议使用它,因为媒体查询可以用于很多事情。
如果你想尝试一下,这可能会对你有所帮助:@media ?[^{]+?{
。
否!尤其是在PHP中。您可以尝试为媒体查询解析CSS,或者检查元素大小是否设置为绝对值。
在我看来,方法是让一些web引擎在服务器端运行,并强制它呈现具有不同window.width的页面,并检查文档宽度是否会随之改变。这样的模块可以从php执行,但不能在php中执行。-若你们并没有专用的服务器,那个么就别再尝试这些特技了。