0

条件を満たす場合、top.php という名前の php ファイルを JavaScript コードに含めたいと考えています。ブラウザのバージョンを確認するためのコードです。私が必要とするのは、ブラウザー名を確認することです。そのクロムの場合は、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

4 に答える 4

2

できませんし、すべきではありません。ブラウザは PHP コードを実行しません。

私が必要とするのは、ブラウザー名を確認することです。そのクロムの場合は、top.php ファイルを表示するだけで済みます。しかし、すべてのブラウザのこのコードには、そのページが含まれています。

サーバー側でそのようなことを行うことには反対ですが、必要に応じて、リクエスト ヘッダーを調べることで、PHP を介してブラウザーをチェックすることができます。

調べてみてください$_SERVER['HTTP_USER_AGENT']

参照: http://php.net/manual/en/function.get-browser.php

于 2012-06-27T06:17:56.087 に答える
1

ユーザーが使用しているブラウザーを解読し、その結果に応じて個別のPHPファイルを含めるには、$_SERVER['HTTP_USER_AGENT'];または組み込みgetBrowser()関数(http://php.net/manual/en/function.get-browser.php )を使用できます。

<?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
    ...
)

次に、ユーザーが使用しているブラウザーを確認し、それに応じて個別のファイルを含めるかどうかをテストできます。

于 2012-06-27T06:22:50.300 に答える
1

PHPはサーバー側の言語です。サーバー内で実行されます。

Javascript はクライアント側の言語です。ある意味では、ブラウザで実行されます

クライアント側から aphp ファイルを含めることはできません。ブラウザはhtml、js、cssなどしか理解できません

サーバー配列のユーザー エージェントを確認し、それに応じてページを読み込む必要があります。を使用できます

$_SERVER['HTTP_USER_AGENT']; または getBrowser()

于 2012-06-27T06:18:52.943 に答える
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>
于 2012-06-27T06:22:06.703 に答える