0

USER_AGENTブラウザー (文字列を使用) とプラットフォーム (PHP-Mobile-Detect を使用)の両方をプログラムで検出する条件付きシステムをセットアップしようとしています。私の現在のセットアップは、おおよそ次のようになります。

<DOCTYPE html>
<html>
<head>
<?php
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
?>
    <?php if($detect->isiPad()) {
        echo '<link rel="stylesheet" href="/style/iPad.css" type="text/css">';
    }

    else 
    {
        echo '<meta charset="UTF-8">
        <link rel="stylesheet" href="/style.css" type="text/css">;
        if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
            {
                echo '<link rel="stylesheet" href="../style/splash-webkit.css" type="text/css">';
            }
        //and so on for other browsers
        [etc]'
    }

ここで発生する明らかな問題は、 間の競合'です。echounderは、私が望むようにタグelseの最後で終わるのではなく、最初の宣言にあるように、コードに最初に現れる場所で終わります。この問題を回避するにはどうすればよいですか?<style>'USER_AGENT

4

2 に答える 2

5

'この行の末尾にaがありません:

<link rel="stylesheet" href="/style.css" type="text/css">;

それを次のように置き換えます。

<link rel="stylesheet" href="/style.css" type="text/css">';

ただし、一重引用符と二重引用符をうまく使用しています。ただし、同じ引用符を使用する必要がある場合、.でいつでもエスケープできます\。たとえば、これも機能します。

echo '<meta charset=\'UTF-8\'>';
于 2012-08-24T12:25:07.543 に答える
2

これを試してから教えてください

else 
{
echo '<meta charset="UTF-8"><link rel="stylesheet" href="/style.css" type="text/css">';
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)
{
echo '<link rel="stylesheet" href="../style/splash-webkit.css" type="text/css">';
}
//and so on for other browser
}
于 2012-08-24T12:27:51.337 に答える