Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/02/2007, 21h01   #1
Invité régulier
 
Inscription : janvier 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 15
Points : 6
Points : 6
Par défaut Je ne veux pas de guillemets

Bonjour,
Je suis en train de taper une petite fonction pour recuperer des infos sur ma distrib :
Code :
1
2
3
4
5
6
7
8
9
10
function distro() {
	$file = new fichier('/etc/lsb-release');
	$output = $file->read();
 
	preg_match('#DISTRIB_DESCRIPTION=(.*)#', $output, $Description);
	preg_match('#DISTRIB_CODENAME=(.*)#', $output,$Codename);
 
	$result = $Description[1].' '.$Codename[1];
	return $result;
}
et en fait dans la ligne :
Code :
preg_match('#DISTRIB_DESCRIPTION=(.*)#', $output, $Description
Il me renvoit dans $Description[1] : "Ubuntu 6.10"
Et je voudrais essayer de supprimer les guillemets. J'ai donc essayé cela :
Code :
preg_match('#DISTRIB_DESCRIPTION="(.*)#', $output, $Description
Mais ca ne marche pas, ca ne renvoit rien, quelqu'un aurait une idée siouplaît ??
00Dexter00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 21h11   #2
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
Code :
	preg_match('#DISTRIB_DESCRIPTION="(.*)"#', $output, $Description);
je ne suis pas très familiers des RegEx encore, mais je pense que ça devrait fonctionner
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 23h02   #3
Membre à l'essai
 
Inscription : décembre 2005
Messages : 22
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : décembre 2005
Messages : 22
Points : 23
Points : 23
Tu veux supprimer les guillemets à l'affichage. C'est un traitement après avoir trouver les lignes à l'aide de preg_match.

Tu dois traiter $Description pour supprimer les guillemets avec, par exemple, str_replace().
Hansolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 08h25   #4
Invité régulier
 
Inscription : janvier 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 15
Points : 6
Points : 6
Merci de ta réponse juJuv51, mais ca ne marche pas. J'ai par contre essayé la technique de Hansolo,
Code :
$Descrip = str_replace('"','',$Description[1]);
idem ca ne marche pas, ca me renvoit toujours "Ubuntu 6.10".
J'ai donc essayé ce coup ci ('"')(tout collés):
Code :
$Descrip = str_replace('& quot;','',htmlspecialchars(($Description[1])));
Pareil ca ne marche pas, par contre quand j'enleve le &:
Code :
$Descrip = str_replace('quot;','',htmlspecialchars(($Description[1])));
ca me renvoit : &Ubuntu 6.10&
Mais ca ne m'arrange pas non plus...
Merci de votre aide.
00Dexter00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 08h38   #5
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Je trouve étonnant que la solution proposée par juJuv51 ne fonctionne pas pour toi. J'aurais proposé la même chose que lui, et j'ai testé par acquis de conscience => ca marche...
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 08h45   #6
Invité régulier
 
Inscription : janvier 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 15
Points : 6
Points : 6
Citation:
Envoyé par bkill
Je trouve étonnant que la solution proposée par juJuv51 ne fonctionne pas pour toi. J'aurais proposé la même chose que lui, et j'ai testé par acquis de conscience => ca marche...
Ah bon ben je ne comprends pas du tout alors...
Je fais exactement la même chose chez moi :
Code :
1
2
3
4
	preg_match('#DISTRIB_DESCRIPTION="(.*)"#', $output, $Description);
	print_r($Description);
	preg_match('#DISTRIB_CODENAME=(.*)#', $output,$Codename);
	print_r($Codename);
Et ca me renvoit :
Code :
Array ( ) Array ( [0] => DISTRIB_CODENAME=edgy [1] => edgy )
Mon tableau $Description est vide.. ??
00Dexter00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 12h51   #7
Membre à l'essai
 
Inscription : décembre 2005
Messages : 22
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : décembre 2005
Messages : 22
Points : 23
Points : 23
Citation:
Envoyé par bkill
Je trouve étonnant que la solution proposée par juJuv51 ne fonctionne pas pour toi. J'aurais proposé la même chose que lui, et j'ai testé par acquis de conscience => ca marche...
Bizarre. Si le fichier d'origine contient les guillemets, preg_match() ne retournera jamais les lignes concernées.

Avec:
Code :
1
2
$Description[1] = str_replace('"', '', $Description[1]);
print_r($Description);
ça ne marche pas ?
Hansolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 13h11   #8
Invité régulier
 
Inscription : janvier 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 15
Points : 6
Points : 6
Nan ca ne marche pas non plus :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function distro() {
	$file = new fichier('/etc/lsb-release');
	$output = $file->read();
 
	preg_match('#DISTRIB_DESCRIPTION=(.*)#', $output, $Description);
	preg_match('#DISTRIB_CODENAME=(.*)#', $output,$Codename);
 
	$Description[1] = str_replace('"', '', $Description[1]);
	print_r($Description);
 
	$result = $Description[1].' '.$Codename[1];
	return $result;
}
Ca me renvoit ca :
Code :
1
2
3
4
5
6
 
Array
(
    [0] => DISTRIB_DESCRIPTION="Ubuntu 6.10"
    [1] => "Ubuntu 6.10"
)
Pff..
Je ne pense pas que ca change beaucoup, mais comme vous le voyez je bosse sous linux (Ubuntu)...

Au passage voila ce que contient /etc/lsb-release :
Code :
1
2
3
4
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=6.10
DISTRIB_CODENAME=edgy
DISTRIB_DESCRIPTION="Ubuntu 6.10"
Je pourrais trés bien récuperer DISTRIB_ID et DISTRIB_RELEASE ca me donnerais ce que je veux, mais bon je ne comprends pourquoi ca ne marche pas avec les guillemets...
00Dexter00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 13h36   #9
Membre à l'essai
 
Inscription : décembre 2005
Messages : 22
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : décembre 2005
Messages : 22
Points : 23
Points : 23
Je ne dis que des co..eries depuis le début. Autant pour moi, le regex donné depuis le début devrait fonctionner.
Hansolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web