-1

簡単なことをしたいのですが、誰かが Internet Explorer で私の Web サイトを閲覧している場合、私の Web サイトの div をフォームに表示する必要があります。そうでない場合は、別のフォームに表示する必要があります。

条件をテストするために簡単なことを試みていますが、うまくいきません。これがコードです

$IE = 0;
echo "<!--[if lte IE 8]>" ;
$IE = 1;
echo "<![endif]-->";

die("IE is: "  . " " . $IE);

Chrome を使用している間、常に IE が 1 であると表示されます。

私は何か間違ったことをしていますか?

4

2 に答える 2

1

Web 開発における基本的なことの 1 つは、サーバー上で何が起こっているのか、ブラウザーで何が起こっているのか、そしてその 2 つがどのように関連しているかを区別する必要があるということです。

PHP はサーバー上で実行され、条件付き IE コメントはブラウザーで実行されます。この 2 つの間には、ネットワーク経由で送信される HTML ファイルがあります。

スクリプトはサーバー上で実行されます。結果は次のとおりです。

<!--[if lte IE 8]><![endif]-->IE is:   1

ご覧のとおり、条件付きコメント タグの間には何もありません。

サーバー側では、ブラウザーを推測するためにユーザー エージェントに依存する必要があります。100%確実とは言えないので、推測です。このようなものを使用して、ここでインスピレーションを与えてください: http://www.useragentstring.com

$IE = (bool) strpos($_SERVER['USER_AGENT'], 'MSIE') ;
于 2013-08-30T20:25:25.827 に答える
0

PHPコードでJavaスクリプトを少し台無しにしました。ユーザーが使用するサーバーに応じて異なる html をクライアントに返したい場合は、$_SERVER['HTTP_USER_AGENT'] を確認してください。

PHPコードで使用するphpinfo()か、単にecho $_SERVER['HTTP_USER_AGENT']そこを呼び出して、さまざまなブラウザーでページを開いて、それらがどのように表示されるかを確認してください。

于 2013-08-30T20:46:14.083 に答える