PHP:检查网站的响应性设计
是否有课程/脚本/可能检查网站的响应性设计?可能是这样的:PHP:检查网站的响应性设计,php,responsive-design,detection,Php,Responsive Design,Detection,是否有课程/脚本/可能检查网站的响应性设计?可能是这样的: if (is_responsive('http://www.site.tld')) { echo 'is responsive'; } else { echo 'is not responsive'; } 有什么想法吗?没有常规或完美的功能来完成这项工作。为了以编程方式进行检查,您可以解析媒体查询的样式表 所以说得清楚一点,不推荐使用它,因为媒体查询可以用于很多事情 如果您想尝试它,这可能会对您有所帮助:@media?[^
if (is_responsive('http://www.site.tld')) {
echo 'is responsive';
}
else {
echo 'is not responsive';
}
有什么想法吗?没有常规或完美的功能来完成这项工作。为了以编程方式进行检查,您可以解析媒体查询的样式表 所以说得清楚一点,不推荐使用它,因为媒体查询可以用于很多事情
如果您想尝试它,这可能会对您有所帮助:
@media?[^{]+?{
不,从技术上讲,您不能使用PHP脚本检查响应性,因为这是客户端的事情。有两种可能的*方法:
@media
规则的正则表达式有:
^\@media\s(.*)\{$
^=在字符串开头断言位置\@=匹配字符@字面上
media=与media字面上的字符匹配
\s=匹配任何空白字符[\r\n\t\f]
.*=匹配任何字符(换行符除外)
{=匹配字符{字面上
$=在字符串末尾断言位置
\@media\s(.*)\{
\@=匹配字符@字面上media=与media字面上的字符匹配
\s=匹配任何空白字符[\r\n\t\f]
.*=匹配任何字符(换行符除外)
{=匹配字符{字面上
i
使正则表达式不区分大小写(i
仅忽略[a-zA-Z]的大小写)
以下是使用正则表达式检测@media
规则的四种可能方法:
/^\@media\s(.*)\{$/
/^\@media\s(.*)\{$/i
/\@media\s(.*)\{/
/\@media\s(.*)\{/i
在我看来,应该让一些web引擎运行服务器端,强制它以不同的window.width呈现页面,并检查文档宽度是否会随之改变。这样的模块可以从php执行,但不能在php中完成。-如果您没有专用服务器,请忘了尝试这些特技。也许您可以扫描他们的sty
@media
选择器的lesheets一种方法是获取CSS并检查其中是否有媒体查询。但是,媒体查询可以用于很多事情,你必须解析它们并找出它们是否真的响应不同的屏幕大小。不,因为“响应性”是客户端的事情,而用于实现“响应性”的es不仅仅用于向网站添加“响应性”。网站响应性不一定需要媒体查询。我认为更好的答案应该是“不,这是不可能的”。这并不能保证网站是有响应的。想象一下,其中甚至有50个或更多的媒体查询,但都是空的。当然,你的两个都在那里,但如果他想这样做,这可能会对他有所帮助……你应该发出警告,如“媒体查询的存在并不意味着网站是有响应的”无论如何,我编辑了我的anwser。但这并不意味着我完全同意这是不可能的。有很多空闲时间的人可以编写一个函数,它不仅仅是检查媒体查询是否存在。你可以分析行并观察查询的单词/值。尽管如此,用户可以对单个项目使用媒体查询,但是“至少你不知道他们为小屏幕做了些什么。这是偶然发现的。虽然你的答案很老,但我很好奇……拥有一台专用服务器与此有什么关系?”克雷格把检查响应性的问题放在一边(在CSS中解析\@media是一个很好的指标,但不是最终的答案,因为html中仍然可以嵌入样式,并且对象的属性也可以从javascript更改)。为了确保您必须以不同的窗口大小呈现页面(包括运行js)(mabe还欺骗用户代理)并检查宽度是否正确更改。这不能在普通php中完成。这远远超出了共享主机服务的限制。任何低于虚拟机的内容都是不可行的,因为它占用了大量资源。