Jedoch würde ich gerne sofern es in ilch machbar wäre auch eine index_mobile.htm für mobile aufrufe in der nur wesentliche Infos bereit gestellt werden.
Nun habe ich ein wenig das große G befragt, und folgendes für mich recht passende gefunden.
<?PHP class clsMobileDetection{ //************************************************** variables ********************************************************************** /** * user-agent * @var string */ private $strUserAgent = ''; /** * DNS * @var string */ private $strDNS = ''; /** * Protocol * @var string */ private $strProt = 'http'; /** * indicator mobile device true/false * @var boolean */ private $bolMobileDevice = false; /** * mobile user-agent pattern on any position * @var string */ private $strPattern1 = "(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge\ |maemo|midp|mmp|mobile.+firefox|netfront|opera\ m(ob|in)i|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ ce|xda|xiino"; /** * mobile user-agent pattern starting with * @var string */ private $strPattern2 = "^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a\ wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r\ |s\ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1\ u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(\ i|ip)|hs\-c|ht(c(\-|\ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(\ |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(\ |\/)|klon|kpt\ |kwc\-|kyo(c|k)|le(no|xi)|lg(\ g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-|\ |o|v)|zz)|mt(50|p1|v\ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v\ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|\ )|webc|whit|wi(g\ |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)"; /** * DNS splitted by "." * @var array */ private $arrDNS = array(); /** * assembled redirect string * @var string */ private $strRedirect = ''; /** * index for analyze of DNS * @var integer */ private $intIdx; /** * simple counter * @var integer */ private $i; //************************************************** methods ************************************************************************* /** * Constructor set * * @param none * @return none */ function __construct() { $this->strUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); $this->strDNS = $_SERVER['SERVER_NAME']; if (isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on' || $_SERVER['HTTPS'] == 1)) $this->strProt .='s'; // change protocol to https, if necessary $this->detectMobileAgent(); } //************************************************************************************************************************************ /** * detection of user agents respectively bypass depneds on the parameter noMobile/mobile * * @param none * @return none */ private function detectMobileAgent() { foreach ($_GET as $key=>$value) { if (strtolower($key) == 'nomobile' && strtolower($value) == 'true') { // get parameter NoMobile=true exists => the redirection will be bypassed $this->bolMobileDevice = false; setcookie('noMobile',1,time()+(60*60*24*30)); // save the decision in a cookie for one month return; } else if (strtolower($key) == 'mobile' && strtolower($value) == 'true') { // get parameter Mobile=true exists => the redirection will be forced setcookie('noMobile','',time()-3600); // delete the cookie $this->bolMobileDevice = true; return; } } if (isset($_COOKIE['noMobile']) && $_COOKIE['noMobile'] == 1) { // cookie is set => no redirect to mobile version $this->bolMobileDevice = false; setcookie('noMobile',1,time()+(60*60*24*30)); // refresh cookie return; } if ($this->bolMobileDevice === false) { // check the user agents if (preg_match("/$this->strPattern1/",$this->strUserAgent) || preg_match("/$this->strPattern2/",$this->strUserAgent)) { $this->bolMobileDevice = true; } } if ($this->bolMobileDevice === false) { if (strpos($_SERVER['HTTP_ACCEPT'],'application/vnd.wap.xhtml+xml') !== false) { $this->bolMobileDevice = true; } } } //************************************************************************************************************************************ /** * result of the detection: mobile device true/false * * @param none * @return boolean indicator mobile device true/false */ public function IsMobile() { return $this->bolMobileDevice; } //************************************************************************************************************************************ /** * redirect to a subdomain if mobile, e.g. http://m.my-pages.com * * @param none * @return string modified DNS-part of the redirect string */ private function RedirectToSubDomain() { if (sizeof($this->arrDNS) <= 2) { // variant http://my-pages.com $intIdx = 0; } else { // variant http://www.my-pages.com $intIdx = 1; } $strRedirect = $this->strProt.'://m.'; for ($i=$intIdx;$i<sizeof($this->arrDNS);$i++) { $strRedirect .= $this->arrDNS[$i]; if ($i < sizeof($this->arrDNS)-1) $strRedirect .= '.'; } return $strRedirect; } //************************************************************************************************************************************ /** * public redirect method * * @param string variant of redirect; possible values: SUBDOM; MOBIDOM; SUBDIR * @return string modified Path-part of the redirect string */ public function RedirectMobile ($strVariante) { if ($this->IsMobile() === true) { $strRedirect = ''; $this->arrDNS = explode('.',$this->strDNS); switch (strtoupper($strVariante)) { case 'SUBDOM': $strRedirect = $this->RedirectToSubDomain();break; case 'MOBIDOM': $strRedirect = $this->RedirectToMobi();break; case 'SUBDIR': $strRedirect = $this->RedirectToSubDir();break; } if ($strRedirect <> '') { $strRedirect .= $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '') $strRedirect .= '?'.$_SERVER['QUERY_STRING']; // echo $strRedirect; header('Location: '.$strRedirect); } else { echo 'Error in RedirectMobile: only SUBDOM, MOBIDOM, SUBDIR are allowed as parameter'; } } } } $objMobile = new clsMobileDetection(); //$objMobile->RedirectMobile("SUBDOM"); // !!!!!!!!!!!!!!!!!!!!! activate your preferred variant !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //$objMobile->RedirectMobile("MOBIDOM"); //$objMobile->RedirectMobile("SUBDIR"); ?>
Kann mir da jemand etwas weiter helfen. Wie ich es einfügen könnte wüsste ich schon. Aber vielleicht hat hier jemand eine Idee an die ich noch nicht gedacht habe .
verwendete ilch Version: 1.1 P