Extraire chiane entre deux caractères spécia

ouafa -  
ouafasuin Messages postés 26 Statut Membre -
Bonjour,

je suis en php et j'aimerais extraire une chaine de caractère entre 2 caractères spéciaux. Les noms de mes fichiers sont de type ecoute_24852545_4545 et jaimerai trier ces fichiers par rapport au premier numéro entre les deux traits "_"
est-ce que je peux trouver un fi=onction en php qui permet de faire cette extraction pour pouvoir faire mon tri ?

Merci d'avance!
A voir également:

6 réponses

Steefif Messages postés 526 Statut Membre 19
 
tu veux absolument faire ce tri en php? ou en VB ca te convient?
0
macgawel Messages postés 676 Statut Membre 89
 
Bonjour.

Bienvenue dans le monde merveilleux des expressions régulières !

Ou alors,il y a la fonction explode($separateur, $machaine) qui te renvoie un tableau.
0
ouafa
 
salut,

merci, oui j'ai essayé avec la fonction explode mais le poblème c'est que j'ai 2 fois le caractère "_" et ça me fait le tri en fonction du 2 ème alors que moi je veux le faire en fonction du premier
0
macgawel Messages postés 676 Statut Membre 89 > ouafa
 
Ce serait utile de lire la doc, quand tu utilises une fonction PHP que tu ne connaît pas (et de faire un petit test avec une page de base, pour cerner le fonctionnement de la fonction)...

Extrait de la doc :
Description

array explode(string separator ,string string ,[int limit ])

explode retourne un tableau qui contient les éléments de la chaîne string, séparés par separator.
[...]
Exemple avec explode

<?php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
?>

Dans l'exemple donné, $pieces est un tableau qui contient ("piece1", "piece2", "piece3", "piece4", "piece5", "piece6")...
0
ouafa
 
slt steefif

oui il me le faut en php.
merci
0
ouafa
 
Merci mais j'ai déja lu la doc et vu tous ces exemples, et normalement d'après la définition de la fonction explode, elle doit me renvoyer un tableau qui contient toutes les chaines séparées par "_" mais je ne vois pas pourquoi pourquoi çe ne marche qu'avec le 2ème "_"
0
macgawel Messages postés 676 Statut Membre 89
 
explode("_", "ecoute_24852545_4545") devrait te retourner
("ecoute", "24852545", "4545").

S'il ne le fait pas, c'est peut-être que le caractère n'est pas le même (?).
Tu peux essayer avec split, et une expression régulière (genre tu sépare sur les caractères non alphanumériques)...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ouafa
 
Est-ce que tu peux me dire stp comment séparer les caractères non alphanumériques, je vois comment le faire
Merci
0
macgawel Messages postés 676 Statut Membre 89
 
En lisant !

Ou en cherchant (sur Google par exemple). Dans la première page de résultats tu trouves la réponse sans même quitter google...
0
ouafasuin Messages postés 26 Statut Membre
 
Svp est-ce que qlp peut m'aider... voila le code que j'utilise pour faire mon tri à partir de chaines de carac de type

ecoute_24852545_4545 mais ça me donne rien du tout..., le explode non plus, je comprend plus rien, des idées svp!!

function browse($dir, $pDeb)
{
if($handle = opendir($dir))
{
while(false !== ($file = readdir($handle)))
{

$getDeb = split("_", $file);

$countDeb = count($getDeb);
$fDeb = $countDeb - 1;
$myDeb = $getDeb[$fDeb];

if (($myDeb == $pDeb) && ($file != ".") && ($file != ".."))
{$files[] = $file;}
}
}
return $files;
closedir($handle);
}

function mafonction($dir)
{

$gDeb = "248506491 248506496 248506494";

$ExpDeb = explode(" ", $gDeb);

foreach($ExpDeb as $findDeb)
{

$getFile = @browse($dir, $findDeb);
....

}
0