Redirection vers la version mobile/pc d'une page

Soyez le premier à donner votre avis sur cette source.

Vue 9 426 fois - Téléchargée 1 001 fois

Description

Ceci est mon premier poste, alors si il y a des remarques/conseils/remarques, n'hésitez pas ;)

Ce script vous permettra de proposer à un utilisateur de pouvoir être redirigé vers la version mobile/pc de la page actuelle.

Une démo est disponible à l'adresse suivante : http://demo.developpement.comlu.com/php-redirection-lien-site-mobile/index.php

Source / Exemple :


// Programme à insérer entre les balises <head> et </head>

<?php 
    $site_type='pc'; // 'pc' ou 'mobile', permet d'indiquer si il s'agit de la version mobile ou pc de la page
?>

// Le programme en lui même, que vous pouvez mettre dans un autre fichier et l&#8217;appeler à l'aide d'un 'include'

<?php
$url_pc='http://votre-site.fr';          // URL du site classique
$url_mobile='http://votre-site-mobile.fr';      // URL de la version mobile du site

$url_before='Du texte avant';      // Texte avant le lien
$url_text_pc='Afficher la version mobile';     // Texte du lien PC
$url_text_mb='Afficher la version PC';     // Texte du lien mobile
$url_after='Du texte après';       // Texte apres le lien

$url_init=$_SERVER['PHP_SELF']; // Recupere le chemin de la page
$reg='#^(.+[\\\/])*([^\\\/]+)$#';
$url_end=preg_replace($reg, '$2', $url_init); // Permet de ne recuperer que le nom du fichier acutelle

if ($site_type=='pc') {             // Version pc
    $url=$url_before.' <a href="'.$url_mobile.$url_end.'">'.$url_text_pc.'</a> '.$url_after;
}

elseif ($site_type=='mobile') {     // Version mobile
    $url=$url_before.' <a href="'.$url_pc.$url_end.'">'.$url_text_mb.'</a> '.$url_after;
}   

?>

Conclusion :


A l'origine ce programme m'a été demandé pour le site d'une association
Programme testé sous chrome,andoid,iphone,ipad.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
14 mai 2014

A insérer au début la pageindex , avant doctype du site appelé :http://www.monsite.com

<?php
if(!isset($_SESSION)) session_start();
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(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|phone)|xda|xiino/i',$useragent)||preg_match('/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\-/i',substr($useragent,0,4)))
header('Location: http://www.monsitemobile.com');
?>

Rien de plus
Messages postés
24
Date d'inscription
vendredi 12 octobre 2012
Statut
Membre
Dernière intervention
5 juillet 2015
>
Messages postés
3
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
14 mai 2014

Humm cool , mais faut envisagé l'option des apareils de grande résolution. C'est un bon avancé, mais je crois que l'objectif du code principal est de laisser le choix a l'utilisateur de déterminer s'il veut un affichage mobile ou sur PC ,
Messages postés
33
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
23 juillet 2014

Christ je te rejoins sur la css mais parfois ce n'est pas suffisant.
un site avec des grosses images ne sera pas optimisé pour les mobiles, ca sera long à charger.
Dans ce cas la, une version mobile avec le même contenu optimisé sera plus ergonomique qu'une css spécifique au média.

"Être dans le doute, c'est être résolu." W.S.
Messages postés
33
Date d'inscription
mardi 31 janvier 2006
Statut
Membre
Dernière intervention
10 novembre 2014
1
Pour moi, comme le dit Terean, il faut détecter si on est sur un mobile, ainsi que sa résolution : une tablette à 1280*1024 doit pouvoir s'afficher comme sur un PC.

Pourquoi doubler les pages à publier ?
Double travail, charge serveur, risque d'erreur (page à jour d'un côté et pas de l'autre).
Il me semble qu'il existe un truc ancien qui devrait être utilisé : le CSS !

il suffit lors du 1er appel de la page (index ou autre) de détecter l'environnement et de construire l'en-tête html avec l'include du CSS qui correspond au terminal et rebalancer le tout au client.

Il y a bien quelqu'un qui a écrit une classe qui se charge de la détection !

Allez courage, la route et longue et le chemin semé d'embuches, mais la récompense et gratifiante.
D'un point de vue purement technique, je ne comprend pas cette source. Si le but est de rediriger ou de proposer un lien de redirection, il suffit de vérifier le user agent ($_SERVER['HTTP_USER_AGENT'])et de, rediriger/proposer un lien de redirection, en fonction de l'appareil. Le truc des appareils mobiles c'est qu'il y en a des tonnes de différents et de vérifier si ils sont dans le user agent est fastidieux. Heureusement il existe des class mise à jour régulièrement pour être exhaustif de tout les types d'appareil mobile existant (il y a une très très bonne source sur googlecode).
Du coup l'idée c'est :

include('class_detection')
detection = new class_detection();

if(detection->is_mobile() == true)
{
bla bla bla mobile
}
else
{
bla bla bla ordi fixe
}

Pareil l'idée de détecter la résolution en javascript, pour moi ça ne peut pas tenir la route sur tout les cas de figure. Que fait-on des smartphones ou tablettes qui éclatent les 1280*1024 versus les netbook ou vieux parc informatique avec encore des 17' et des 19'.

Si tu as la moindre question playerpsp hésite pas ;-)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.