如何撰写浏览器特定的代码用PHP
所以,你要编写代码,只出现在某些浏览器...有许多理由要这么做。 我第一次亲自需要做到这一点时,我试图嵌入一个MP3的某页。 出于某种原因,我无法写的代码,这样的MP3将发挥我的浏览器测试(即,火狐和Opera ) ,并验证在同一时间。 如果我没有记错,这是Internet Explorer的是造成问题的原因。 该解决方案我来到了被使用的PHP没有找到当用户使用IE浏览器,然后嵌入了MP3在非有效的代码如果是这种情况。
这个解决方案导致了MP3播放总是正确的网页总是验证,因为在W3C校验从未将自己伪装为IE浏览器。 这也许不是最道德的方式达到W3C的遵守,但它的作品。
还有一次我记得写的浏览器需要具体的代码是当我有问题的IE 6没有显示我的。 PNG图像正确。 余googled左右,并发现了几个办法来解决这个问题,但他们两人最终搞乱的总体层位置在我的网页。 不是故障排除这个问题,我去的快速解决方案,并决定将显示。图像时,用户的IE 6了。 如果用户有其他浏览器了。 png的问题我想这太糟糕了。
如何做到这一点:
首先您需要写一些代码行,以找出您的用户浏览器。 这是怎么做,用PHP :
- 'HTTP_USER_AGENT' ]; $ visitorsOS = $ _SERVER [ ' HTTP_USER_AGENT ' ] ;
这里有三个例子,说明$ visitorsOS可以像
- Mozilla/4.0 (兼容; MSIE 6.0 ;的Windows NT 5.1 ; SV1 ; 。 NET中使用CLR 1.0.3705 ; 。 NET中
- Opera/9.51 ( Windows NT的5.1 ; ü ;特等)
- Mozilla/5.0 (窗户; ü ;的Windows NT 5.1 ;恩美;右: 1.9 ) Gecko/2008052906火狐
第一个用户的Internet Explorer 6 ,第二歌剧院9.51 ,第三次的Firefox 。
现在,我们知道更多的信息比我们真正需要的访问者的计算机,我们需要把这些信息很好地利用。 说你要编写代码,将只显示如果用户在运行任何版本的Internet Explorer 。 在这种情况下,你会做出这样的事情:
(’MSIE’,$visitorsOS)){ 如果 ( eregi ( ' MSIE ' , $ visitorsOS ) ) (
代码将只显示如果用户IE浏览器已
)
其他(
代码将出现在所有其他情况下
)
我使用eregi ,一个区分大小写的正则表达式匹配,而非额日格,一个区分大小写的正则表达式匹配。 我不记得,如果我这样做的妄想,或者,如果我真的发现了一个情况下, Internet Explorer中,就把自己定为msie 。 在这两种情况下eregi不会伤害任何因此它是我使用。 想要写的代码特定版本的IE浏览器将只需要一个小的变化。 不是... ( eregi ( ' MSIE ' ... )我会用像( eregi ( ' MSIE 6.0 ' ... )如果我想的代码,只有出现MSIE 6.0 。






















