Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法使用<;![如果!(即8)]>;在PHP中?_Php_Javascript_Css - Fatal编程技术网

有没有办法使用<;![如果!(即8)]>;在PHP中?

有没有办法使用<;![如果!(即8)]>;在PHP中?,php,javascript,css,Php,Javascript,Css,对不起,这个标题让人困惑,我不知道怎样才能更好地描述它 无论如何,这是我目前在Cufon网站上使用的“问题”。这很有效。然而,使用InternetExplorer8时,速度会变得非常慢。因此,我决定使用: <![if !(IE 8)]> <script type="text/javascript" src="js/myriad-pro.cufonfonts.js"></script> <script type="text/javascript">C

对不起,这个标题让人困惑,我不知道怎样才能更好地描述它

无论如何,这是我目前在Cufon网站上使用的“问题”。这很有效。然而,使用InternetExplorer8时,速度会变得非常慢。因此,我决定使用:

<![if !(IE 8)]>
<script type="text/javascript" src="js/myriad-pro.cufonfonts.js"></script>
<script type="text/javascript">Cufon.replace('.example1') ('.example2') ('.example3') ('.example4') ('.example5');
</script>
<![endif]>

Cufon.replace('.example1')('.example2')('.example3')('.example4')('.example5');
这很管用,但并非适用于所有情况。脚本的某些部分(在脚本本身中调用Cufon)不起作用,Cufon仍将显示在IE8中(所有负面结果)

包括的几个脚本/部件中包含以下代码:

<?php
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
?>

基本上,您可以通过过滤来宾的用户代理来实现这一点。您可以从服务器变量中获取此信息

$ua = $_SERVER['HTTP_USER_AGENT'];
用户代理包含打开页面的来宾的所有必要信息。到目前为止,我所知道的这项技术的最简单用法是:

if (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT'])) {
    //do something
}
是的,您可以使用

但我们知道,这可以由用户更改


只需打印条件注释即可

<?php
echo "<![if !(IE 8)]>";
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
echo "<![endif]>";
?>
在PHP中,可以使用检测浏览器及其版本

$browser = get_browser(null, true);
这将返回一个包含浏览器信息的数组


请注意,这将需要browscap设置。

您希望PHP检测用户代理,并仅在版本不是IE8时发送Cufon相关脚本。尝试现有的PHP浏览器版本检测脚本-滚动您自己的脚本保证不会捕捉到一个异常…服务器端不是浏览器。只需回显所有资源并使用以查找IE并运行它。+1 for。我不知道。get_browser()唯一的问题是,如果你想广泛使用它,你必须维护一个最新的ini文件。谢谢。。。但这行得通吗?我也想到了,但我怀疑它会起作用吗?我可能错了,但这不应该破坏你的状态。PHP在服务器端执行,Apache或您使用的任何Web服务器将HTML结果提供给客户端。如果将它直接放在HTML页面中时它可以工作,那么当PHP将它回送到页面中时它应该可以工作。我刚刚添加了最后一个
$浏览器
已被弃用。一个快速(也是最后一个)问题。是否不仅可以将此规则用于IE8,还可以用于更低版本?那么对于IE8、IE7、IE6和IE5呢?
$using_ie8 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.') !== FALSE);
<?php
echo "<![if !(IE 8)]>";
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
echo "<![endif]>";
?>
$browser = get_browser(null, true);