IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction obsolète


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 110
    Points : 71
    Points
    71
    Par défaut Fonction obsolète
    Bonjour,
    je viens d'écrire une fonction permettant de connaitre l'os d'un visiteur.
    Mais j'ai cette erreur qui s'affiche Function ereg() is deprecated in wamp...... les pointillés c'est le chemin complet. et ensuite le mon de mon système s'affiche en claire Windows Xp.
    Merci de m'aider à corriger cette erreur.

    Herzak

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    N'hesite pas a consulter la documentation.
    ereg() est, comme l'erreur l'indique, obsolète : il faut utiliser preg_match()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Depuis PHP 5.3.0, l'extension des Regex POSIX est dépréciée.

    Voir les différences entre les regex POSIX et PCRE.

    edit: grillé

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 110
    Points : 71
    Points
    71
    Par défaut c'est fait mais
    Salut c'est mais hélas,
    la fonction "preg_match" me dit si j'ai bien compris que je n'ais pas délimitateur.
    qu'est ce que je dois délimiter
    voila mon code merci de m'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php function OS( $To = '' )
     {
    	if( ! $To ) $To = $_SERVER['HTTP_USER_AGENT'];
    		$se = 'Système d\'exploitation meconnu';
     
    		$se_arr = Array
    					(
    						// -- Windows
    						'Windows NT 6.1' => 'Windows Seven',
    						'Windows NT 6.0' => 'Windows Vista',
    						'Windows NT 5.2' => 'Windows Server 2003',
    						'Windows NT 5.1' => 'Windows XP',
    						'Windows NT 5.0' => 'Windows 2000',
    						'Windows 2000' => 'Windows 2000',
    						'Windows CE' => 'Windows Mobile',
    						'Win 9x 4.90' => 'Windows Me.',
    						'Windows 98' => 'Windows 98',
    						'Windows 95' => 'Windows 95',
    						'Win95' => 'Windows 95',
    						'Windows NT' => 'Windows NT',
     
    						// -- Linux mon ami
    						'Ubuntu' => 'Linux Ubuntu',
    						'Fedora' => 'Linux Fedora',
    						'Linux' => 'Linux',
     
    						// -- Mac
    						'Macintosh' => 'Mac',
    						'Mac OS X' => 'Mac OS X',
    						'Mac_PowerPC' => 'Mac OS X',
     
    						// -- Autres distribution
    						'FreeBSD' => 'FreeBSD',
    						'Unix' => 'Unix',
    						'Playstation portable' => 'PSP',
    						'OpenSolaris' => 'SunOS',
    						'SunOS' => 'SunOS',
    						'Nintendo Wii' => 'Nintendo Wii',
    						'Mac' => 'Mac',
    					);
     
    		$To = strtolower( $To );
    		foreach( $se_arr as $a => $b )
    		{
    			if( preg_match( strtolower( $a ), $To ) ) // remplacer ereg par preg_match pour le teste
    			{
    				$se = $b;
    				break;
    			}
    		}
    		return $se;
    }?>
    Merci de votre aide
    NB: voila le nouveau message d'erreur

    Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in C:\wamp\www\blue-skyscraper1er\includes\getos.php on line 46

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est indiqué dans la documentation que Eric2a t'a indiqué.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 110
    Points : 71
    Points
    71
    Par défaut je dois enerver c sur
    Merci pour votre aide, je viens de lire la doc. Et aussitôt je remarque qu'avec la fonction "preg_match" non délimitée mon os n'est pas reconnu. Aussi je ne réussit pas à délimiter. Je ne sais pas si je le fais mal mais voilà comment je procède.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<?php if( preg_match[/( strtolower( $a ), $To )/] ) // remplacer ereg par preg_match pour le teste ?>
    comme erreur c'est un jolie PARSE ERROR
    ne me lapidé pas pitié ....

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu devrais vraiment reprendre la documentation precisemment, ce que tu as écris ne ressemble à rien : tes crochets n'ont rien à faire la et ca n'a pas sens de mettre ton pattern en minuscules.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 110
    Points : 71
    Points
    71
    Par défaut
    Merci t'inquiète je relis et cette fois en douce.
    j'ai délimité mon champ et le message d'erreur me fait savoir qu'il me manque deux paramètres en plus, pourtant la doc ne m'en parle pas.
    Merci de m'aider s'il vous plait

  9. #9
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $pattern=preg_quote($a,'/');
    if (preg_match('/'.$pattern.'/i', $To))
    Le motif (protégé par la fonction preg_quote) entouré de délimiteurs (ici '/') est suivi de l'option de recherche i nous permettant d'effectuer une recherche insensible à la casse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. les fonctions obsolètes et non secure
    Par Trankille dans le forum Bibliothèque standard
    Réponses: 4
    Dernier message: 14/03/2011, 14h17
  2. reseau fonctions obsoléte!?.
    Par jesslegende dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/04/2010, 21h24
  3. [Aedituus] Fonction obsolète
    Par jeje63 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/10/2009, 17h50
  4. [PHP 5.3] Ne pas afficher les warnings des fonctions obsolètes
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 29/09/2009, 15h59
  5. Migration MySql 4 - Php 5 : connaitre fonctions obsolètes
    Par chris-ren dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/02/2006, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo