Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2011, 16h04   #1
Invité de passage
 
Homme
Graphiste
Inscription : août 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Pays-Bas

Informations professionnelles :
Activité : Graphiste
Secteur : Communication - Médias

Informations forums :
Inscription : août 2011
Messages : 4
Points : 0
Points : 0
Par défaut Regexp pour déterminer le type de navigateur

Bonjour à tous !

Voilà j'ai était obligé de passer en PHP5 pour mettre du xml à jour avec du php en utilisant le DOM.

Mais depuis j'ai un problème avec un script PHP servant à rediriger le visiteur selon s'il utilise un "Smartphone" ou un ordinateur (le script ne redirige plus lorsque l'on y va avec un ordi ).

Voilà le script utilisé (qui fonctionne très bien en PHP4 !) :



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
if(checkmobile())
         header('Location:http://www.eternal-graphic.com/mobile/m_detect_lang.php');
 
function checkmobile()
{
        if (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE']))
                return true;
 
        if (isset ($_SERVER['HTTP_ACCEPT']))
        {
                $accept = strtolower($_SERVER['HTTP_ACCEPT']);
                if (strpos($accept, 'wap') !== false)
                        return true;
        }
 
        if (isset ($_SERVER['HTTP_USER_AGENT']))
        {
                if (strpos ($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false)
                        return true;
 
                if (strpos ($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false)
                        return true;
 
                if (preg_match('#Android|BlackBerry|Cellphone|iPhone|iPod|hiptop|HTC|MIDP-2\.|MMEF20|MOT-V|NetFront|Newt|Nintendo Wii|Nintendo DS|Nitro|Nokia|Opera Mobi|Palm|PlayStation Portable|PSP|portalmmm|SonyEricsson|Symbian|UP.Browser|UP.Link|webOS|Windows CE|WinWAP|YahooSeeker/M1A1-R2D2|LGE VX|Maemo|phone)#', $_SERVER['HTTP_USER_AGENT']))
                        return true;
        }
 
        header('Location: http://www.eternal-graphic.com/computer ... _lang.php');
}
?>





Voilà le msg sur la page :

Citation:
Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 280 in /homepages/39/d299682238/htdocs/eternal-graphic/index.php on line 26

Warning: Cannot modify header information - headers already sent by (output started at /homepages/39/d299682238/htdocs/eternal-graphic/index.php:26) in /homepages/39/d299682238/htdocs/eternal-graphic/index.php on line 30
...pour voir de vous même : http://www.eternal-graphic.com

Un grand merci d'avance à ceux qui pourront m'aider !

...
jrmy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 16h32   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
T'as oublié une parenthèse au début de ta regexp:
Code :
#(Android|BlackBerry|Cellphone|iPhone|iPod|hiptop|HTC|MIDP-2\.|MMEF20|MOT-V|NetFront|Newt|Nintendo Wii|Nintendo DS|Nitro|Nokia|Opera Mobi|Palm|PlayStation Portable|PSP|portalmmm|SonyEricsson|Symbian|UP.Browser|UP.Link|webOS|Windows CE|WinWAP|YahooSeeker/M1A1-R2D2|LGE VX|Maemo|phone)#


Au passage, pour déterminer le browser de l'utilisateur, c'est avec get_browser
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 19h21   #3
Invité de passage
 
Homme
Graphiste
Inscription : août 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Pays-Bas

Informations professionnelles :
Activité : Graphiste
Secteur : Communication - Médias

Informations forums :
Inscription : août 2011
Messages : 4
Points : 0
Points : 0
Je suis vraiment étourdie....

Mais c'est vrai que je ne comprend comment ça fonctionné en PHP4 ???

En tout cas MERCI, ça marche très bien maintenant.
jrmy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 11h19   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Il devait au moins y avoir un warning; c'est tout.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h09.


 
 
 
 
Partenaires

Hébergement Web