[RESOLU] Recuperer une partie précise d'un champs variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Recuperer une partie précise d'un champs variable

Re: Recuperer une partie précise d'un champs variable

par Se7en512 » 22 sept. 2015, 23:38

J'ai trouvé la solution (désolé je manque d'entrainement pour les expressions régulières) :
$input_line='/test/test1-S01E01_720.avi';
	preg_match("/[S](.)(.)[E](.)(.)/", $input_line, $output_array);
	
	echo $output_array[0];
il me sort bien S01E01

Re: Recuperer une partie précise d'un champs variable

par hyflender » 22 sept. 2015, 23:35

et je veux recuperer dans une variable "SxxExx" (les "x" pour aléatoire (mais ce sont forcement des chiffres)).


Exemple :
- si j'ai la variable "/test/blablaS03E15blabla2.mp4"

je veux récupérer dans une variable :
"S03E15"
Pour ta variable "/test/blablaS03E15blabla2.mp4",
il faut que ça soit obligatoire de la forme : /xxxxx/xxxxxxxSuuEuuxxxxxx/xxxxxxx.mp4 (avec x Chiffres/Lettres et u chiffres) (avec des "/" ?)
ou ça peut être du genre "wwwwwwwwwwwwwwSuuEuuwwwwwwwww" ? (avec w chiffres/Lettres/caractères spéciaux)

Re: Recuperer une partie précise d'un champs variable

par Se7en512 » 22 sept. 2015, 22:48

Alors pour :
variableale1 S variablealea2 E variablealea3 variablealea4

variableale1 : aléatoire
variablealea2 : deux chiffres (ex : 02) aléatoire
variablealea2 : deux chiffres (ex : 14) aléatoire
variablealea4 : aléatoire

et je veux recuperer dans une variable "SxxExx" (les "x" pour aléatoire (mais ce sont forcement des chiffres)).


Exemple :
- si j'ai la variable "/test/blablaS03E15blabla2.mp4"

je veux récupérer dans une variable :
"S03E15"

Re: Recuperer une partie précise d'un champs variable

par hyflender » 22 sept. 2015, 22:36

Salut, j'ai pas tout compris, tu veux une variable qui soit aléatoire du type :

$variable_alea = variableale1 S variablealea2 E variablealea3 variablealea4 ?

Avec variableale 1, 2, 3 et 4 corresponds à chiffres et lettres ? ou que des chiffres ? que des lettres ? ou /, \ etc etc ?
Tu veux les récupérer sur quelques choses ou juste faire une variable aléatoire de ce type ?

Re: Recuperer une partie précise d'un champs variable

par Se7en512 » 22 sept. 2015, 22:17

/message à supprimer/

Re: Recuperer une partie précise d'un champs variable

par Se7en512 » 22 sept. 2015, 21:56

Bonjour,

si je prend votre fonction telle quelle, j'obtiens :
array(1) { [0]=> string(16) "/test/S01E01.avi" } Array ( [0] => /test/S01E01.avi )
Or je souhaite avoir seulement S01E01.

Et désolé je me suis peut-être mal expliqué, mais la variable est totalement aléatoire :

on peut avoir ceci :
"/test/S01E01.avi"

comme cela :
" /Maison/vacance/piscine-S01E20_720p.mkv"
D'où la difficulté (du moins pour moi :mrgreen: ).

Re: Recuperer une partie précise d'un champs variable

par Megadeth » 22 sept. 2015, 10:01

Salut,

Pour ton exemple je pense que c'est lié au fait que $chaine n'est pas un tableau à la base.

P'tit exemple :
$array = array("/test/S01E01.avi");
var_dump($array);
print_r(preg_grep("/\bavi\b/i",$array));
Si tu as toujours la même chaine tu peux peut être faire des extractions de chaine surtout si le format est le même.

Tu peux également splitter ou faire un explode de ta chaine à partir du point et récupérer les n derniers caractères...

Jette un oeil à la fonction in_array également trop souvent méconnu :)

Plusieurs façons de faire si toutefois j'ai bien compris.

Mega
;)

Re: Recuperer une partie précise d'un champs variable

par Se7en512 » 21 sept. 2015, 23:57

Je viens de remarquer que lorsqu'on mettait une variable array dans le preg_grep : fonctionne pas. (exemple : array($variable)) ).
Mais lorsqu'on entre en dur le parametre : ça fonctionne (exemple array("maison") ).

Seulement je n'ai pas la possibilité de mettre en dur la variable,
quelque chose m'échappe ?

Re: Recuperer une partie précise d'un champs variable

par Se7en512 » 21 sept. 2015, 22:54

Merci,

j'ai essayé ceci :
<?php

$chaine="/test/S01E01.avi";
$abc= preg_grep("S\d\dE\d\d", array($chaine));
echo htmlspecialchars($abc);

?>
Mais j'ai cette erreur :

Warning: preg_grep() expects parameter 2 to be array, string given in /volume1/web/test.php on line 20

Mauvaise utilisation de preg_grep ? (j'ai essayer de faire $chaine = array("...") et mettre dans le preg : $chaine[0]

mais j’obtiens le meme resultat.

Re: Recuperer une partie précise d'un champs variable

par or 1 » 21 sept. 2015, 21:17

une expression régulière : (S\d\dE\d\d)
si c'est bien un S suivi de 2 chiffres, un E suivi de 2 chiffres

Recuperer une partie précise d'un champs variable

par Se7en512 » 21 sept. 2015, 21:06

Bonjour,

je souhaite récupérer "S01E00" dans une variable du style "variablealéatoire1S01E01variablealéatoire2"
Sachant que : Tout est variable sauf "S" et "E", même les numéros sont aléatoires.

Des idées ? pistes ? :)