您嘗試的第一件事(條件註釋)將無法工作,因爲包括在服務器上完成,而正在生成的頁面和條件註釋只能通過瀏覽器檢查的頁面已經被下載後。
有條件的評論將被顯示在IE6排除生成的代碼,但它仍然會被服務器上運行。
此外,在你使用他們在這裏也將排除所有非IE瀏覽器中顯示的驗證碼格式的條件註釋。如果您只想影響IE,則需要重新格式化它,以便其他瀏覽器不會將內部代碼視爲註釋,方法是使用<![if !IE 6]>
語法而不是<!--[if !IE 6]>
。
該方法仍然不會停止在服務器上運行代碼。
您嘗試的第二種方法更可能與您實際想要做的更接近。但是,請注意,儘管PHP確實收到了USER_AGENT
字符串,但在大多數瀏覽器中可能會欺騙USER_AGENT,並且一些隱私/安全產品會像一些Web代理一樣主動移除它。換句話說,USER_AGENT字符串不是確定某人使用的瀏覽器的100%可靠方式。
也就是說,如果你有,你想從只對IE6正在執行exlude具體的PHP代碼,那麼它可能是唯一可行的解決方案。
這個不適合你的原因是你的代碼包括只有IE6而不是不包括它。您需要在preg_match()
之前添加「不」運算符(!
)。
順便說一句:在你的示例代碼,你有$user_agent = getenv("HTTP_USER_AGENT");
。值得指出的是,$_SERVER['USER_AGENT']
已經作爲一個變量可用,您不需要使用getenv()。
...你有* PHP腳本*在IE中失敗? PHP不關心瀏覽器。發生什麼事情,有條件的評論是不夠的? – cHao 2011-03-29 12:53:51
不 - 這不是在php中失敗的php腳本 - php爲jquery腳本設置條件,在ie6中也不會失敗,但是不是很好,我寧願添加其他東西CSS。 – Gertruder 2011-03-29 13:06:36