如何在JavaScript代码中包含php文件(top.php)?

时间:2012-06-27 06:15:24

标签: php javascript browser

如果满足条件,我想在我的javascript代码中包含一个名为top.php的php fie。这是用于检查浏览器版本的代码。我需要的是检查浏览器名称,如果它的chrome只需要显示top.php文件。但是在每个浏览器的代码中都包含该页面。

<script type="text/javascript">
    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browserName  = navigator.appName;
    var fullVersion  = ''+parseFloat(navigator.appVersion); 
    var majorVersion = parseInt(navigator.appVersion,10);
    var nameOffset,verOffset,ix;

    // In Opera, the true version is after "Opera" or after "Version"
    if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
     browserName = "Opera";
     fullVersion = nAgt.substring(verOffset+6);
     if ((verOffset=nAgt.indexOf("Version"))!=-1) 
       fullVersion = nAgt.substring(verOffset+8);
    }
    // In MSIE, the true version is after "MSIE" in userAgent
    else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
     browserName = "Microsoft Internet Explorer";
     fullVersion = nAgt.substring(verOffset+5);
    }
    // In Chrome, the true version is after "Chrome" 
    else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
     browserName = "Chrome";
     fullVersion = nAgt.substring(verOffset+7);
    }
    // In Safari, the true version is after "Safari" or after "Version" 
    else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
     browserName = "Safari";
     fullVersion = nAgt.substring(verOffset+7);
     if ((verOffset=nAgt.indexOf("Version"))!=-1) 
       fullVersion = nAgt.substring(verOffset+8);
    }
    // In Firefox, the true version is after "Firefox" 
    else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
     browserName = "Firefox";
     fullVersion = nAgt.substring(verOffset+8);
    }
    // In most other browsers, "name/version" is at the end of userAgent 
    else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
              (verOffset=nAgt.lastIndexOf('/')) ) 
    {
     browserName = nAgt.substring(nameOffset,verOffset);
     fullVersion = nAgt.substring(verOffset+1);
     if (browserName.toLowerCase()==browserName.toUpperCase()) {
      browserName = navigator.appName;
     }
    }
    // trim the fullVersion string at semicolon/space if present
    if ((ix=fullVersion.indexOf(";"))!=-1)
       fullVersion=fullVersion.substring(0,ix);
    if ((ix=fullVersion.indexOf(" "))!=-1)
       fullVersion=fullVersion.substring(0,ix);

    majorVersion = parseInt(''+fullVersion,10);
    if (isNaN(majorVersion)) {
     fullVersion  = ''+parseFloat(navigator.appVersion); 
     majorVersion = parseInt(navigator.appVersion,10);
    }

    document.write(''
     +'Browser name  = '+browserName+'<br>'
     +'Full version  = '+fullVersion+'<br>'
     +'Major version = '+majorVersion+'<br>'
     +'navigator.appName = '+navigator.appName+'<br>'
     +'navigator.userAgent = '+navigator.userAgent+'<br>'
    )
    var OSName="Unknown OS";
    if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
    if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
    if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
    if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
    document.write('Your OS: '+OSName+'<br>');
    if(browserName ==  'Chrome')
    {
    document.write("u r using chrome "+fullVersion);
    <?php include("top.php") ?> ;

    }
    else {
    alert("Not chrome");
    }
    </script>

4 个答案:

答案 0 :(得分:2)

你不能也不应该。浏览器不执行任何PHP代码。

  

我需要的是检查浏览器名称,如果它的chrome只需要显示top.php文件。但是在每个浏览器的代码中都包含该页面。

我反对在服务器端执行此类操作,但如果必须,您可以尝试通过检查请求标头来检查浏览器。

尝试检查$_SERVER['HTTP_USER_AGENT']

另请参阅:http://php.net/manual/en/function.get-browser.php

答案 1 :(得分:1)

PHP是一种服务器端语言。它在服务器内部运行。

Javascript是客户端语言。从某种意义上说,它在浏览器中运行

您不能在客户端包含aphp文件。浏览器只能理解html,js css等

您必须检查服务器阵列中的用户代理并相应地加载页面。

可以使用

  

$ _ SERVER [ 'HTTP_USER_AGENT'];或getBrowser()

答案 2 :(得分:1)

为了破译用户正在使用的浏览器,并根据结果包含单独的PHP文件,您可以使用$_SERVER['HTTP_USER_AGENT'];甚至内置的getBrowser()函数 - http://php.net/manual/en/function.get-browser.php < / p>

<?php
  $browser = get_browser(null, true);
  print_r($browser);
?>

此代码应该为您提供类似于此的数组 -

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    ...
)

然后,您可以测试以查看您的用户正在使用的浏览器,并相应地包含单独的文件。

答案 3 :(得分:0)

不可能在js文件中包含php代码。根据我的最佳方式是

将这个js脚本放在头部,而不是检查条件浏览器。

if(browser =='chrome')
{
  document.getElementById('top').style.display='block';
}
else
{
  document.getElementById('top').style.display='none';
}

<div id='top'>
    <?php require_once("top.php"); ?>
</div>