begin process at 2012 05 31 00:33:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

garder uniquement les caracteres alphanumerique d'une variable recupérée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

garder uniquement les caracteres alphanumerique d'une variable recupérée

lundi 24 août 2009 à 18:02:13 | garder uniquement les caracteres alphanumerique d'une variable recupérée

ju0123456789

Bonjour,


Ma question est assez simple, je reçois 2 variables, par exemple :

$Processeur = "Intel Core 2 Duo 3.0GHz, (FSB 1333MH, cache 8Mo)..."
$Os = "Windows VISTA Business 64-Bit Edition OEM"

(par exemple, et en imaginant qu'il y a aussi les Trademark et le Registred...)

Je voudrais que le logo se place automatiquement en fonction de la variable reçue.

Dans cet exemple, je dois recevoir le "Logo Intel Core 2 Duo" et le logo "Windows VISTA Business 64Bit"

Je voudrais :
1) Retirer de la variable tous les caractères qui en sont pas alphanumériques (str_replace ?)
2) Rechercher chacun des mots afin de générer l'URL du logo (qui est bien définie dans ma BDD)

Quelqu'un pourrait-il m'aider svp ?

Merci beaucoup d'avance.


Ju'

mardi 25 août 2009 à 09:39:58 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

Tonio_35

Bonjour,

As tu regardé coté REGEX :

Code PHP :
<?php

$string = 'Intel Core 2 Duo 3.0GHz, (FSB 1333MH, cache 8Mo)...';
$string = preg_replace("[^a-zA-Z0-9]", "", $string);
echo $string;
// IntelCoreDuoGHzFSBMHcacheMo

// Ou pour garder les éspaces

$string = 'Intel Core 2 Duo 3.0GHz, (FSB 1333MH, cache 8Mo)...';
$string = preg_replace("[^a-zA-Z0-9\ ]", "", $string);
echo $string;
// Intel Core Duo GHz FSB MH cache Mo
?>




Tonio

mardi 25 août 2009 à 12:54:14 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

ju0123456789

Hello et merci de ta réponse, et effectivement la e solution sans les espaces, c'est axactement ça qui m'interesse.

arf pour moi ça ne marche pas

$os = str_replace("[^A-Z0-9\ ]"", $os);
echo $os;

(j'avais oublié de dire qu'il ne me fallait que les majuscules)

la chaine n'as pas changé. (la variable est déjà remplie par la base)

Vois-tu d'ou ça vient ?
Et c'est quoi al différence entre preg_replace et str_replace ?

Merci

Ju'

mardi 25 août 2009 à 15:31:27 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

Tonio_35

preg_replace
str_replace
Je suis pas sur que le str_replace prenne une REGEX en 1er argument...

Ca ne fonctionne pas avec str_replace ?

Tonio

mercredi 26 août 2009 à 10:14:10 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

ju0123456789

Réponse acceptée !

salut !

bon j'ai trouvé ma solution,

Code PHP :

// fonction me permettant de remplacer tous les caracteres non alphanumériques, et ensuite les mettre en majuscule
function garde_alphanumerique( $chaine )
{
$alphanumerique = "";
for( $i = 0 ; $i < strlen( $chaine ) ; $i++ )
{
$Lettre = substr( $chaine, $i, 1 );
if( ( $Lettre >= 'a' && $Lettre <= 'z' ) ||
( $Lettre >= 'A' && $Lettre <= 'Z' ) ||
( $Lettre >= '0' && $Lettre <= '9' ) )
{
$alphanumerique .= $Lettre;
}
}
return strtoupper($alphanumerique);
}


et

Code PHP :

// fonction de recherche de caracteres
function recherche( $chaine, $sous_chaine )
{
return strstr( $chaine, $sous_chaine ) != false;
}


Code PHP :
$MaVariableRecupere = garde_alphanumerique( $MaVariableRecupere );

// Exemple de filtre avec windows VISTA Business
if( recherche( $MaVariableRecupere, "VISTA" ) && recherche( $MaVariableRecupere, "BUSINESS" ) )
{
$Counter += 1;
$logo = "vista_logo_business.jpg";
echo "<IMG SRC='url_logo_vista.jpg' BORDER='0'>";
}


J'ai dû me creuser un peu, mais la solution n'était pas forcément évidente. En fait c'est toi qui m'as mis sur la voix, et ça marche très bien.

Le $Counter me permet de savoir combien de logos ont été placés, pour organiser le placement des autres logos (intel, nvidia et autres..) sur la page en fonction du nombre de logos, dans la suite de mon programme.

Donvc voilà j'ai tout ce qu'il me faut : arriver à placer un logo d'un constructeur en fonction de ce qu'il y a marqué dans la base.


Merci bcp.
Bonne journée.

Ju'

ps: tu le trouves comment mon code ?

mercredi 26 août 2009 à 10:32:51 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

kiki2sirom

Réponse acceptée !

salut,

une chose me frappe :

for( $i = 0 ; $i < strlen( $chaine ) ; $i++ )

c'est pas bon question optimisation, et ce sera préjudiciable pour des longues chaines de caractères (très longue alors...

Tu recalcules systématiquement la taille de ta chaîne à chaque tour de boucle.

fais plutôt du style

for( $i = 0 ,$taille = strlen( $chaine ); $i < $taille ; $i++ )

Il faut prendre l'habitude de le faire.

kiki

mercredi 26 août 2009 à 15:23:38 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

Tonio_35

Réponse acceptée !

Je m'étais planté dans mon code :

Code PHP :

<?php
function garde_alphanumerique( $chaine )
{
return preg_replace("/[^A-Z0-9]/i", "", strtoupper($chaine));
}
?>

J'avais pas pu le tester...

Tu peux même faire juste une fonction chercher :

Code PHP :

<?php
function recherche( $sujet, $pattern )
{
return strstr(preg_replace("/[^A-Z0-9]/i", "", strtoupper($sujet)), $pattern) != false;
}
?>


Min iPomme

mercredi 26 août 2009 à 16:13:21 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

ju0123456789

merci vous 2 pour la réponse.
Je ne savais pas qu'on pouvais mettre 2 conditions dans la 1ere conditions du for, c'est bon a savoir.


Et merci tonio pour ce résumé en 2 ligne de ce que je me suis fais ch^^ a faire en 30... lol

jeudi 27 août 2009 à 08:58:28 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

Tonio_35



Ca serais pas mal de faire un site/tuto ou cours sur l'optimisation du code php...

Bonne continuation en tout cas !

_________________________________
Min iPomme

jeudi 27 août 2009 à 10:44:20 | Re : garder uniquement les caracteres alphanumerique d'une variable recupérée

kiki2sirom

une petite précision :

ce n'est pas 2 conditions là :
for( $i = 0 ,$taille = strlen( $chaine ); $i < $taille ; $i++ )

Code PHP :
$i = 0 ,$taille = strlen( $chaine )

ici on initialise $i à 0 et on affecte la taille de ta chaîne à $taille

ils sont bien séparés par des , et non des ;

le for c'est
for(initialisation; condition de continuité ; expression 3)

La première expression (initialisation) est interprétée au premier démarrage de la boucle. Elle ne sera exécutée qu'une seule fois (et non à chaque tour de boucle). On y place généralement l'initialisation des variables. La deuxième condition est appelée condition de continuité, on la place pour dire "si cette condition est respectée, alors la boucle peut continuer". La troisième expression sera elle interprétée à la fin de chaque tour de boucle. On y place généralement l'incrémentation d'une variable, mais vous pouvez y mettre n'importe quoi, faites attention cependant aux boucles infinies. On entend par boucle infinie une boucle qui ne s'arrête jamais. Outre le fait de monopoliser le processeur, votre script ne s'arrêtera pas en fonction de la configuration de PHP.
vu sur le site vulgarisation-informatique.com



M'enfin je pense que tu avais saisi le principe.

A+
kiki


1 2

Cette discussion est classée dans : variable, uniquement, exemple, garder, logo


Répondre à ce message

Sujets en rapport avec ce message

plsieurs checkbox dans un variable [ par bricethenetman ] Slt a tous g plusieurs checkbox du genre . j'aimerais que la valeur de ces check box soit mise à la suite Garder la valeur d'une variable page après page ??? [ par jbcaiz ] voilà j'ai une requete sql SELECT qui me remplit une liste déroulante avec le nom de différents pays. Ensuite a la page suivante je fais afficher le p Variable [ par l1solent ] Salut !Excusé moi mais jdébute complementement dans le php et c'est un truc tout simple et bete pour vous je presumeen faite voila je voudrais par exe WIDTH='$variable%' [ par xactise ] Bonjour j'aimerai afficher une image donc la largeur est egale a une variable : exemple : $variable = 50;Mais sa ne fonctionne pas :Saussi une autre q Image et variable !!!!! [ par moonfire ] Salut !! Je m'occupe d'un site qui serait entièrement dynamique et je voulait sa voir comment faire un truc : en fait l'utilisateur à un formulaire Concaténer des variables [ par lyricman ] Bonjourje voudrais savoir s'il est possible de concaténer 2 variables?par leur texte mais les variablesexemple : je voudrais avoir une variable pour c avoir un nom de variable dynamique [ par nougitch ] Bonjour,Est-il possible de modifier le nom d'une variable.Si je prends l'exemple d'une boucle par exemple.Puis-je faire quelque chose du genre :for ($ Affiche uniquement un parti d'une variable.... [ par spike911 ] Bonjours, je travail en PHP et je suis débutant. J'ai une variable qui contien du texte, et je voudrait etre capable de faire afficher uniquement les garder variable en mémoire [ par services12move ] Bonjour, j'essaie de garder une variable php en mémoire. (note : après l'avoir assignée, le visiteur est susceptible de passer sur de multiples pages Session php [ par Clad49 ] Bonjour, Je créer un site en local ou les session fonctionne parfaitement ! Mais une fois sur le serveur d'un pote, si une variable de ma session po


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales