Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

Messages: 668

Enregistré le: 10 Jan 2004

Message le Mer Avr 07, 2010 10:36

Bonjour,

airportCode: NRT; city: Tokyo; country: JP; currency: EUR;

Quelqu'un autait'il une idée pour extraire 2 informations d'une chaine.
le nom d'une ville et d'un pays, j'ai pensé fair un explode a partir du ;
Mais ces noms peuvent se situer en début comme en fin de chaine.
En revanche les caractéristiques sont toujours les mêmes, donc le nom de la ville
est toujours compris entre (city:) Tokyo et (;) de même pour le pays, évidemment
ces noms changent en permanence.
city: Tokyo;
country: JP;
enfin tout ceci est noyé au milieu d'autres infos, vu plus haut:

airportCode: NRT; city: Tokyo; country: JP; currency: EUR;


merci
ludo
Haut
7 Réponses
Messages: 2820

Enregistré le: 13 Fév 2004

Message le Mer Avr 07, 2010 10:51

Avec des regex comme '/city: ([^;]+);/' et '/country: ([A-Z]{2});/'

Sinon tu peux faire explode sur ; puis pour chaque explode sur : et soit mettre tout dans un tableau associatif (si tu as besoin de tout) soit juste prendre ce qui t'intéresse.

Il doit y avoir un paquet d'autres méthodes.

Jacques.

PS: on va supposer que ton fichier ne dit pas qu'on utilise l'euro au Japon :-)
Haut
Messages: 668

Enregistré le: 10 Jan 2004

Message le Mer Avr 07, 2010 11:09

jcaron a écrit:Avec des regex comme '/city: ([^;]+);/' et '/country: ([A-Z]{2});/'

Sinon tu peux faire explode sur ; puis pour chaque explode sur : et soit mettre tout dans un tableau associatif (si tu as besoin de tout) soit juste prendre ce qui t'intéresse.

Il doit y avoir un paquet d'autres méthodes.

Jacques.

PS: on va supposer que ton fichier ne dit pas qu'on utilise l'euro au Japon :-)


Bonjour,

merci jcaron pour tes soluces, pour l'euro c'etait pour l'exemple, je n'utilise jamais
les regex et donc je ne manipule pas du tout les expressions regulieres,
mais peux tu me dire dans ce cas précis quel type d'expression
il faut utiliser que je regarde ça, car cela me parait le plus simple ici.

merci

ludo
Haut
Messages: 2820

Enregistré le: 13 Fév 2004

Message le Mer Avr 07, 2010 11:31

Ben celles que je donnais :-)

Jacques.
Haut
Messages: 668

Enregistré le: 10 Jan 2004

Message le Mer Avr 07, 2010 11:51

jcaron a écrit:Ben celles que je donnais :-)

Jacques.


Comme je disais, je n'utilise jamais, donc je fais quoi
avec
'/city: ([^;]+);/'
et '/country: ([A-Z]{2});/'

Je capture, je remplace, je recherche ?
preg_replace, il ya des dizaines d'expressions

quelque chose dans ce genre ?
$isolenom=eregi('/city: ([^;]+);/',$variable,$regs);

ludo merci
Haut
Messages: 2820

Enregistré le: 13 Fév 2004

Message le Mer Avr 07, 2010 11:56

Il faut que tu utilises preg_match ou preg_match_all suivant les cas. Ca doit le faire aussi avec eregi, mais je te conseille de prendre l'habitude d'utiliser les preg_*, c'est nettement mieux.

Jacques.
Haut
Messages: 2484

Enregistré le: 7 Mai 2005

Message le Mer Avr 07, 2010 17:24

Avec Preg_match :

Code: Tout sélectionner
$value = 'airportCode: NRT; city: Tokyo; country: JP; currency: EUR;';

preg_match('#city: (.*); country: (.*);#U', $value, $result);

//$result[1] est la ville et $result[2] est le pays
Haut
Messages: 22671

Enregistré le: 8 Aoû 2004

Message le Mar Avr 13, 2010 22:15

jcaron a écrit:Ca doit le faire aussi avec eregi, mais je te conseille de prendre l'habitude d'utiliser les preg_*, c'est nettement mieux.
surtout que eregi est deprecated pour php > 5.3
Haut

Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.