Regex : un peu d'aide

WRInaute passionné
Salut à tous,

J'ai le code ci-dessous, je souhaite que l'on n'affiche pas les images du style /photo.jpg mais les images du style /superbe-photo.jpg doivent s'afficher :

Code:
$url_image = "http://www.mon-site.com/images/superbe-photo.jpg";
$exclusion = array('photo.jpg','photo-2.jpg','photo-3.jpg');
$patterns = implode('|', $exclusion);
if(!preg_match('/\\/'.$patterns.'/', $url_image)){$url_image2 = $url_image;}
echo $url_image2;

Qu'est-ce qui déconne dans mon code ?
 
WRInaute impliqué
Pour échapper un caractère utiliser un backslah "\", non un double-backslash (au temps pour moi, j'avais oublié l'incidence PHP au milieu, la remarque suivante n'en est que plus pertinente). Au passage, dans ce genre de situation, où tu peux être amené à utiliser des slashs, mieux vaut utiliser un autre délimiteur pour l'expression régulière.

Enfin, je doute de l'adéquation de l'expression régulière pour parvenir à cette fin. En toute hypothèse, ça pourrait être pas mal d'expliciter que l'expression recherchée doit être à la fin (caractère '$').
 
WRInaute passionné
Merci pour ta réponse.

Le caractère de fin $ n'est pas vraiment nécessaire puisque l'extension du fichier .jpg terminera automatiquement l'url de l'image.

Ce qui pose problème c'est le slash / : on recherche ..../photo.jpg et non pas .....photo.jpg je pensais qu'en échappant le slash '/\\/'.$patterns.'/' avec un double backslash ce serait bon mais ce n'est pas le cas. Comment faire ?
 
WRInaute accro
Bon la sauvegarde bug sur regex101 pour le moment mais voilà :
2020-11-20_10-36-18.png
 
Discussions similaires
Haut