Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Langages serveur
Langages serveur Forum d'entraide sur la programmation avec les langages serveurs ASP, ASP.NET, Java, PHP.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/10/2012, 12h03   #1
Nheavy
Membre à l'essai
 
Femme
Étudiant
Inscription : août 2011
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 51
Points : 21
Points : 21
Par défaut Trier une liste

Bonjour,

J'ai une liste générée dynamiquement que j'aimerais trier croissante, elle est de la forme suivante :

Code :
1
2
3
4
5
6
7
<option value="../dossier/1_V.php">1 - Titre</option>
<option value="../dossier/4_V.php">4 - Titre</option>
<option value="../dossier/2_V.php">2 - Titre</option>
<option value="../dossier/5_V.php">5 - Titre</option>
<option value="../dossier/3_V.php">3 - Titre</option>
<option value="../dossier/7_V.php">7 - Titre</option>
<option value="../dossier/6_V.php">6 - Titre</option>
Comment puis-je faire en PHP pour réorganiser ces lignes de manière à ce que les "option' soient dans un ordre croissant ?
Nheavy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2012, 13h55   #2
Vil'Coyote
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 701
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 701
Points : 5 383
Points : 5 383
c'est lors de la génération de ta liste qu'il faudrait faire le tri. tu la génère comment ?
__________________
la vie n'est pas cirrhose des foies ...
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2012, 14h10   #3
Nheavy
Membre à l'essai
 
Femme
Étudiant
Inscription : août 2011
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 51
Points : 21
Points : 21
Je renseigne les différentes variables dans un formulaire,
ensuite j'envoie le tout vers le script PHP suivant :

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*  LISTE  */			  
$liste_url = $_SERVER["DOCUMENT_ROOT"].$liste;
$liste_content = file_get_contents($liste_url);
 
if (preg_match('#'.$matcher.'#', $liste_content)) { 
	$optionwrite = (preg_replace('[<option(.*)'.$matcher.'(.*)/option>]', $option, $liste_content)); 
	}
	else { $optionwrite = $liste_content.$option."\n"; }
 
	$fichier = fopen ($liste_url , "w+");
 
	fwrite ($fichier , $optionwrite); 
 
	fclose ($fichier);

Petite explication :
  • je récupère le contenu de ma liste dans la variable $liste_content,
    • si l' "option" associé existe déjà, je le remplace par le nouveau et réécrit ma liste ainsi,
    • si non je rajoute l' "option' à la fin de ma liste.
Dans tous les cas, je crash ma liste existante pour la réécrire.
Nheavy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 11h36   #4
Vil'Coyote
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 701
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 701
Points : 5 383
Points : 5 383
vue que tu utilises une méthode de lecture / écriture, il faudrait une fois ton fichier modifier le relire en stockant les données dans un tableau, trier ton tableau et remplacer les données de ton fichier par celle de ton tableau. tu n'aura pas de fonction de tri auto malheureusement.

si ta liste était alimentée depuis une base de données il suffirait d'effectuer le tri sur ta requête mais là ce n'est pas le cas. tu ne peux donc pas trier ton fichier mais seulement les données que tu t'exportes.
__________________
la vie n'est pas cirrhose des foies ...
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 12h25   #5
Nheavy
Membre à l'essai
 
Femme
Étudiant
Inscription : août 2011
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 51
Points : 21
Points : 21
Lorsque tu dit :

Citation:
il faudrait une fois ton fichier modifier le relire en stockant les données dans un tableau
Ça veut dire qu'il faudrait que je découpe ma liste en variable pour utiliser array ? Je ne vois pas ce que c'est que le tableau en fait.
Nheavy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 15h45   #6
Vil'Coyote
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 701
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 701
Points : 5 383
Points : 5 383
un tableau et un array
__________________
la vie n'est pas cirrhose des foies ...
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2012, 17h17   #7
Nheavy
Membre à l'essai
 
Femme
Étudiant
Inscription : août 2011
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 51
Points : 21
Points : 21
Ah bah je le savais sans le savoir alors ^^

Avec la fonction preg_match(), je peux créer mon ensemble de variable, avec un truc du genre :

Code :
preg_match('<option(.*)</option>, $liste_content, $matches);
mais je ne sais pas comment je peux récupérer l'ensemble des variables $matches[i] créées pour utiliser ensuite la fonction sort(). Il y a un moyen de faire ça alors qu'on ne sait pas combien il y en a ?
Nheavy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2012, 17h07   #8
Nheavy
Membre à l'essai
 
Femme
Étudiant
Inscription : août 2011
Messages : 51
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 51
Points : 21
Points : 21
Voila la solution que j'ai trouvé :

Code :
1
2
3
$liste_a_trier = explode("\n", $optionwrite);
natsort($liste_a_trier);
$optionwrite = implode("\n", $liste_a_trier);
Problème résolu !
Nheavy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h42.


 
 
 
 
Partenaires

Hébergement Web