Published in: CSS
URL: http://minimaldesign.net/downloads/tools/css-override
For the why and the what, make sure you check out my blog article Never hack your CSS files again, you’ll get a much better idea what this is for.
update: I added support for the iPhone in version 1.0.2. More info in my blog post about serving iPhone specific CSS.
Requirements
A website hosted on a server that has PHP
Basic knowledge of FTP, HTML, and CSS
Installation
Download, unzip, and open in a text editor
Modify line 22 ($css_dir = '/_css/';) to point to your CSS files on your server. The default points to a folder called “_css” located at the root of your website, where your index file is
Upload to your server
Create CSS files inside the CSS folder defined in step 2 (names available)
Add this code in your HTML (make sure you put it under the main CSS)
That’s it… You’re done!
<?php /***************************************************************** This part added by minimal design http://minimaldesign.net/ Just remove whatever browser conditional you don't need, change the file uri to your css files, and add this in each header of your pages UNDER the main CSS file call (if not, it won't override the default): <?php css_add(); ?> of course, you also need something like that on top: <?php require_once('./path_to_this_file/browser.php'); ?> ******************************************************************/ function css_add() { $css_dir = './_css/'; // change that to where your CSS files are $br = new Browser; if ($br->Platform == 'Windows' && $br->Name == 'MSIE') { if ($br->Version >= 7) { $css_file = 'add_ie7'; } if ($br->Version >= 6 && $br->Version < 7) { $css_file = 'add_ie6'; } if ($br->Version < 6) { $css_file = 'add_ie5'; } } elseif ($br->Platform =='iPhone') { $css_file = 'add_iphone'; } elseif ($br->Name =='Firefox') { $css_file = 'add_firefox'; } elseif ($br->Name =='Opera') { $css_file = 'add_opera'; } elseif ($br->Name =='Safari') { $css_file = 'add_safari'; } elseif ($br->Name =='OmniWeb') { $css_file = 'add_omniweb'; } $file_name = $css_dir.$css_file.'.css'; if (file_exists($file_name)) { echo("<link href="".$file_name."" rel="stylesheet" type="text/css" media="screen" />rr"); } } /***************************************************************** File name: browser.php Author: Gary White Last modified: November 10, 2003 ************************************************************** Copyright (C) 2003 Gary White This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details at: http://www.gnu.org/copyleft/gpl.html ************************************************************** Browser class Identifies the user's Operating system, browser and version by parsing the HTTP_USER_AGENT string sent to the server Typical Usage: require_once($_SERVER['DOCUMENT_ROOT'].'/include/browser.php'); $br = new Browser; echo "$br->Platform, $br->Name version $br->Version"; For operating systems, it will correctly identify: Microsoft Windows MacIntosh Linux Anything not determined to be one of the above is considered to by Unix because most Unix based browsers seem to not report the operating system. The only known problem here is that, if a HTTP_USER_AGENT string does not contain the operating system, it will be identified as Unix. For unknown browsers, this may not be correct. For browsers, it should correctly identify all versions of: Amaya Galeon iCab Internet Explorer For AOL versions it will identify as Internet Explorer (AOL) and the version will be the AOL version instead of the IE version. Konqueror Lynx Mozilla Netscape Navigator/Communicator OmniWeb Opera Pocket Internet Explorer for handhelds Safari WebTV *****************************************************************/ class browser{ var $Name = "Unknown"; var $Version = "Unknown"; var $Platform = "Unknown"; var $UserAgent = "Not reported"; var $AOL = false; function browser(){ $agent = $_SERVER['HTTP_USER_AGENT']; // initialize properties $bd['platform'] = "Unknown"; $bd['browser'] = "Unknown"; $bd['version'] = "Unknown"; $this->UserAgent = $agent; // find operating system if (eregi("win", $agent)) $bd['platform'] = "Windows"; // added by minimal design on Sunday, July 8, 2007 for iPhone support elseif (eregi("iPhone", $agent)) $bd['platform'] = "iPhone"; elseif (eregi("mac", $agent)) $bd['platform'] = "MacIntosh"; elseif (eregi("linux", $agent)) $bd['platform'] = "Linux"; elseif (eregi("OS/2", $agent)) $bd['platform'] = "OS/2"; elseif (eregi("BeOS", $agent)) $bd['platform'] = "BeOS"; // test for Opera if (eregi("opera",$agent)){ $val = stristr($agent, "opera"); if (eregi("/", $val)){ $val = explode("/",$val); $bd['browser'] = $val[0]; $val = explode(" ",$val[1]); $bd['version'] = $val[0]; }else{ $val = explode(" ",stristr($val,"opera")); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; } // test for WebTV }elseif(eregi("webtv",$agent)){ $val = explode("/",stristr($agent,"webtv")); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for MS Internet Explorer version 1 }elseif(eregi("microsoft internet explorer", $agent)){ $bd['browser'] = "MSIE"; $bd['version'] = "1.0"; $var = stristr($agent, "/"); if (ereg("308|425|426|474|0b1", $var)){ $bd['version'] = "1.5"; } // test for NetPositive }elseif(eregi("NetPositive", $agent)){ $val = explode("/",stristr($agent,"NetPositive")); $bd['platform'] = "BeOS"; $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for MS Internet Explorer }elseif(eregi("msie",$agent) && !eregi("opera",$agent)){ $val = explode(" ",stristr($agent,"msie")); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for MS Pocket Internet Explorer }elseif(eregi("mspie",$agent) || eregi('pocket', $agent)){ $val = explode(" ",stristr($agent,"mspie")); $bd['browser'] = "MSPIE"; $bd['platform'] = "WindowsCE"; if (eregi("mspie", $agent)) $bd['version'] = $val[1]; else { $val = explode("/",$agent); $bd['version'] = $val[1]; } // test for Galeon }elseif(eregi("galeon",$agent)){ $val = explode(" ",stristr($agent,"galeon")); $val = explode("/",$val[0]); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for Konqueror }elseif(eregi("Konqueror",$agent)){ $val = explode(" ",stristr($agent,"Konqueror")); $val = explode("/",$val[0]); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for iCab }elseif(eregi("icab",$agent)){ $val = explode(" ",stristr($agent,"icab")); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for OmniWeb }elseif(eregi("omniweb",$agent)){ $val = explode("/",stristr($agent,"omniweb")); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; // test for Phoenix }elseif(eregi("Phoenix", $agent)){ $bd['browser'] = "Phoenix"; $val = explode("/", stristr($agent,"Phoenix/")); $bd['version'] = $val[1]; // test for Firebird }elseif(eregi("firebird", $agent)){ $bd['browser']="Firebird"; $val = stristr($agent, "Firebird"); $val = explode("/",$val); $bd['version'] = $val[1]; // test for Firefox }elseif(eregi("Firefox", $agent)){ $bd['browser']="Firefox"; $val = stristr($agent, "Firefox"); $val = explode("/",$val); $bd['version'] = $val[1]; // test for Mozilla Alpha/Beta Versions }elseif(eregi("mozilla",$agent) && eregi("rv:[0-9].[0-9][a-b]",$agent) && !eregi("netscape",$agent)){ $bd['browser'] = "Mozilla"; $val = explode(" ",stristr($agent,"rv:")); eregi("rv:[0-9].[0-9][a-b]",$agent,$val); $bd['version'] = str_replace("rv:","",$val[0]); // test for Mozilla Stable Versions }elseif(eregi("mozilla",$agent) && eregi("rv:[0-9].[0-9]",$agent) && !eregi("netscape",$agent)){ $bd['browser'] = "Mozilla"; $val = explode(" ",stristr($agent,"rv:")); eregi("rv:[0-9].[0-9].[0-9]",$agent,$val); $bd['version'] = str_replace("rv:","",$val[0]); // test for Lynx & Amaya }elseif(eregi("libwww", $agent)){ if (eregi("amaya", $agent)){ $val = explode("/",stristr($agent,"amaya")); $bd['browser'] = "Amaya"; $val = explode(" ", $val[1]); $bd['version'] = $val[0]; } else { $val = explode("/",$agent); $bd['browser'] = "Lynx"; $bd['version'] = $val[1]; } // test for Safari }elseif(eregi("safari", $agent)){ $bd['browser'] = "Safari"; $bd['version'] = ""; // remaining two tests are for Netscape }elseif(eregi("netscape",$agent)){ $val = explode(" ",stristr($agent,"netscape")); $val = explode("/",$val[0]); $bd['browser'] = $val[0]; $bd['version'] = $val[1]; }elseif(eregi("mozilla",$agent) && !eregi("rv:[0-9].[0-9].[0-9]",$agent)){ $val = explode(" ",stristr($agent,"mozilla")); $val = explode("/",$val[0]); $bd['browser'] = "Netscape"; $bd['version'] = $val[1]; } // clean up extraneous garbage that may be in the name $bd['browser'] = ereg_replace("[^a-z,A-Z]", "", $bd['browser']); // clean up extraneous garbage that may be in the version $bd['version'] = ereg_replace("[^0-9,.,a-z,A-Z]", "", $bd['version']); // check for AOL if (eregi("AOL", $agent)){ $var = stristr($agent, "AOL"); $var = explode(" ", $var); $bd['aol'] = ereg_replace("[^0-9,.,a-z,A-Z]", "", $var[1]); } else { $bd['aol'] = null; } // finally assign our properties $this->Name = $bd['browser']; $this->Version = $bd['version']; $this->Platform = $bd['platform']; $this->AOL = $bd['aol']; } } ?>
You need to login to post a comment.
