Bon je bloque sur un script sur lequel de travailler. Sans entrer dans les détails j'aimerais comparer deux variables pour savoir si l'une partie d'une chaîne est contenu dans l'autre.
$var1 = [WT] Super Mario 3D Land #13 [100%];
$var2 = [WT] Super Mario 3D Land [100%];
var_dump(strstr($var1, $var2));
Dans cet exemple, ça me retourne false et je n'arrive pas à cerner pourquoi...
Tes variables ne sont pas des strings.
Essaie comme ça :
$var1 = "[WT] Super Mario 3D Land #13 [100%]";
$var2 = "[WT] Super Mario 3D Land [100%]";
var_dump(strstr($var1, $var2));
J'ai oublié de les mettre dans le post mais à la base je récupère des données depuis des tableaux donc je récupère bien des chaîne de caractères.
Si tu essayes
var_dump(strstr($var1, $var2));
tu verras que ça retournes false c'est pour ça que je ne comprends pas.
Suis-je bête !! En fait c'est normal.
Dans la première chaîne, tu as un "#13" entre "Land" et "[100%]". Mais dans la deuxième tu ne l'as pas.
La fonction strstr() ne compare que des chaînes. Du coup, c'est normal que tu obtiennes false : il n'y pas la chaîne "[WT] Super Mario 3D Land [100%]" dans $var1.
Par contre, si tu essaies avec "[WT] Super Mario 3D Land", là ça fonctionne, et tu as bien un retour.
Merci à vous ! Par contre quelle est l'expression régulière pour virer "#$i" avec $i un nombre entier. Sachant que pour les chiffres c'est noté de la sorte : 01, 02, 03, 04 etc..
J'ai essayé ça mais ça a pas l'air de trop fonctionner.
'#\#.([0-9]{1,100})#i'
Hum, il me semble que tout bêtement tu peux faire un truc du type :
"/#.([0-9]+)/"
Ainsi on couvre toutes les chaînes composées d'un # suivi d'un ou plusieurs chiffre.