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

Messages: 527

Enregistré le: 30 Juil 2014

Message le Mer Mai 03, 2017 15:14

Bonjour,

J'ai besoin de l'aide des wrinautes et autres webrankistes, pour un petit script pas piqué des hannetons.

Bon, disons que nous avons cette chaine :

Code: Tout sélectionner
$chaine="blablablaa [1 holalalala [8 ahahahahaha [25";


Ici, je veux récupérer chaque [1, [8 et [25. En fait, je veux récupérer chaque chaine composé du caractère [$variable=un nombre inconnu d'avance

Voyez ?

Je cherche du côté de preg_replace, mais sans grand succès pour l'heure...


En vous remerciant d'avance pour votre aide !
Haut
5 Réponses
Messages: 112

Enregistré le: 22 Fév 2016

Message le Mer Mai 03, 2017 15:27

https://regex101.com/r/SoFBn0/1
qui affiche le code :
$re = '/\[(\d+)/';
$str = 'blablablaa [1 holalalala [8 ahahahahaha [25';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);
Haut
Messages: 527

Enregistré le: 30 Juil 2014

Message le Mer Mai 03, 2017 16:06

Salut mon cher Louis63,

Je viens de tester ton script piqué des hannetons, donc.

Première question, s'il-te-plait :
Code: Tout sélectionner
$re = '/\[(\d+)/';

Ceci est donc une expression rationnelle de ton cru. Peux-tu me l'expliquer brièvement ? Pourquoi tous ces \\ et autre / dans tous les sens ? Et (d+), ça symbolique une variable numérique, c'est ça ? Il faut chercher par où pour trouver les explications attenantes ?

Plus précisément, ton script parait fonctionner, mais pour l'utiliser, il faudrait que je puisse isoler chaque variable dans un tableau.
J'ai donc simplement ajouté cela à la fin du code que tu nous indiques :
Code: Tout sélectionner
foreach($matches as $id)
    { echo"$id - ";}


Ce qui me retourne Array - Array - Array -
Chose somme toute peu utile...
Comment puis-je donc récupérer les id en question, en l'occurrence, selon mon premier exemple, les chiffres 1, 8 et 25 ?
Ce qui permettra de les utiliser séparément comme paramètre dans une variable sql.

Encore merci d'avance !
Haut
Messages: 112

Enregistré le: 22 Fév 2016

Message le Mer Mai 03, 2017 16:22

foreach($matches as $id){
echo $id[1]." - ";
}

le lien indiqué explique l'expression.
Haut
Messages: 527

Enregistré le: 30 Juil 2014

Message le Mer Mai 03, 2017 16:29

Okay !

Je dois pouvoir me débrouiller avec ça.
C'est vraiment du prémâché, j'ai pas de mérite...

Effectivement, je n'avais pas vu sur la page du lien indiqué qu'il y a une fenêtre qui s'ouvre en survolant les caractères de l'expression rationnelle. Le site m'a paru de prime abord fort complexe.

Bon... Je vas tâcher de faire la suite tout seul.

Euh... Je reviens peut-être d'ici peu hein...

Merci beaucoup cher Louis63.

C'est pour un site sur la protection animale, tu participes à la bonne cause.
Haut
Messages: 527

Enregistré le: 30 Juil 2014

Message le Jeu Mai 04, 2017 16:46

Tiens, je fais remonter le topic.

Ici, Louis63 propose d'utiliser une expression rationnelle pour isoler le caractère numérique, car on ne sait jamais d'avance ce qu'il va être.

Mais si nous le savions par avance, par exemple [1 et [4, alors quelle fonction aurait-on pu utiliser ?
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.