Page 1 sur 1

problem d'expressions régulières

Posté : 12 avr. 2007, 12:50
par Davee
Bonjour,
voilà, j'aimerais enlever des caractères en début et fin de chaîne, mais j'ai des problèmes avec certains meta-caractères.
$combKey= preg_replace('/^(,+)$/', '', $combimp);
Avec l'un ou l'autre des deux meta '^' et '$' l'expression marche mais pas avec les deux.
Comment résoudre ça?

Merci d'avance.

David.

Posté : 12 avr. 2007, 13:21
par jojolapine
montre nous tout d'abord "l'allure" de tes chaines au départ, et comment tu souhaites qu'elles deviennent...

Posté : 12 avr. 2007, 13:58
par Davee
Je vais essayer de faire simple.
Des données (listes de mots) arrivent de formulaires type="checkbox" sous forme de tableau
ARRAY([0]=>mot(1) [n]=>mot(n)...)
Et, d'autres données arrivent de formulaire: type="text" (séparé par une virgule).
mot(1),mot(n),....

Toutes ces données sont concaténées en une chaine de caractères pour être nettoyé de tous les parasites espace ou caractères spciaux pour ne garder que les mots séparés par une virgule.
Il ne faudrait pas qu'il y ait de virgule au début ni à la fin car j'explose ensuite cette chaîne et il ne faut pas qu'il y ait de champs vide.

bon je met le code:
$check = (isset($_POST["check"]) && is_array($_POST["check"]))? $_POST["check"] : array();  
$list= (isset($_POST["list"])) ? $_POST["list"]:1;

$comba = implode (',', $check).','.$list;
$combb= preg_replace('/(,+)$/', '', $comba);
$combc= strtolower( str_replace(' ','',$combb));
$combd=explode (',',$combc);
$unikComb= array_unique ($combd);
$combKey=implode (',',$unikComb);
echo $combb.'<br>';
print_r ($combd);
echo '<br>';
print_r ($unikComb);
echo '<br>';
echo $combKey.'<br>';
J'espère que c'est assez claire. j'ai fait de mon mieux.

Merci.
David

Posté : 12 avr. 2007, 14:05
par jojolapine
allez hop, pour t'éviter de réinventer la roue:
http://fr.php.net/manual/fr/function.trim.php

Posté : 12 avr. 2007, 14:17
par Davee
Ha ben oui, ben là,
C'est très drôle ce qui vient de ce passer. Très drôle ! :?

:D En tout les cas merci.
David.

Posté : 12 avr. 2007, 14:20
par jojolapine
pourquoi c'est drole ? :roll:
En tout cas n'oublie pas de cliquer sur le bouton résolu en haut à gauche du sujet ;-)

Posté : 12 avr. 2007, 14:25
par Davee
parce qu'en fait c'était tout simple et que je suis parti sur des plans de comètes à n'en plus finir.
si je met pas résolu tout de suite c'est parce que j'aurais peut-être une question sur le sujet encore, mais je n'y manquerais pas.

Merci
David.