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 ?
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut