Regex mp3 url

loveparade Messages postés 515 Statut Membre -  
loveparade Messages postés 515 Statut Membre -
Bonjour,
jai un petit soucis avec une regex
je souhaite verifier une url qui finit par mp3
mais je n'arrive pas a la construire et je veux eviter les caracteres ('"<>)=^¨%*µ$£¤\°]@`|[{
help me please :)
A voir également:

17 réponses

vlmath Messages postés 833 Statut Contributeur 160
 
Salut,

En fait, tu veux utiliser quels caractères ? les lettres et ._ ?
Je pense que c'est plus simple de faire la liste de ce qui est admis ...

^[._a-zA-Z0-9]+.mp3$


@Bientôt
0
loveparade Messages postés 515 Statut Membre 60
 
oui seulement avec cette methode mon url est considerer comme vrai meme avec des caracteres speciaux
je sais pas pourquoi
et quand je fais [^ caracteres]
la sa fonctionne pas non plus
0
vlmath Messages postés 833 Statut Contributeur 160
 
Peut-être à cause du .

Essaye de l'enlever ou de l'échapper, pour voir.
0
loveparade Messages postés 515 Statut Membre 60
 
bon toujours pas reussi
$url="http://www.google.fr";
if (preg_match("#^[http:// | https://][._a-zA-Z0-9]+.mp3$#", $url))
{ echo 'oui'; }
else { echo 'non'; }
sa renvoi non
0
vlmath Messages postés 833 Statut Contributeur 160
 
Essaye ce code ...
<?php

$url="http://www.google.fr/dos/sier/titre0.mp3"; 
$pattern = "#^([http://]|https://)([._a-zA-Z0-9]+)([._/a-zA-Z0-9]{0,})/([.a-zA-Z0-9]+.mp3)$#";

if (preg_match($pattern, $url, $info)) 
	echo 'oui';
else
	echo 'non';
	
print '<br><br>'.$info[1].'<br>'.$info[2].'<br>'.$info[3].'<br>'.$info[4].'<br>';

?>

Normalement, ça devrait aller ....

J'ai ajouter le paramètre $info à preg_match pour voir les différentes parties de l'url, mais tu peux le supprimer. Même chose pour la dernière ligne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loveparade Messages postés 515 Statut Membre 60
 
bon sa fonctionne toujours pas
je precise que je suis sous apache win32 version 2.2.9
possible que ce soit du a un module?
0
petinouv Messages postés 696 Statut Membre 82
 
#^[\._a-z0-9]+\.mp3$#i
0
loveparade Messages postés 515 Statut Membre 60
 
<?php
$url="http://www.google.fr/dos/sier/titre0.mp3"; 
$char = "#^[\._a-z0-9]+\.mp3$#";
if (preg_match($char, $url)) 
	echo 'oui';
else
	echo 'non';
?>

:s non plus je commence a desesperer

loveparade at your service
0
vlmath Messages postés 833 Statut Contributeur 160
 
pourtant chez moi ça fonctionne très bien ... en fait, tu veux tester uniquement la fin de la chaine, ou toute l'url ?
0
loveparade Messages postés 515 Statut Membre 60
 
toute l'url pour eviter les failles et obliger a ecrir http:// puis une url correcte car l'url va aller dans un player mp3 et donc ne doit pas avoir d'erreurs et donc verifier l'extention (mp3)
0
vlmath Messages postés 833 Statut Contributeur 160
 
Quand t'exécute le code de mon poste 5, qu'est ce qui te dis exactement ? (le code tel-quel, sans aucunes modifs, et une fois quand tu mets ton URL (que tu vas nous monter aussi ... :D)).
0
loveparade Messages postés 515 Statut Membre 60
 
<?php

$url="http://www.google.fr/dos/sier/titre0.mp3"; 
$pattern = "#^(http://|https://)([._a-zA-Z0-9]+)([._/a-zA-Z0-9]{0,})/([.a-zA-Z0-9]+.mp3)$#";

if (preg_match($pattern, $url, $info)) 
	echo 'oui';
else
	echo 'non';
	
print '<br><br>'.$info[1].'<br>'.$info[2].'<br>'.$info[3].'<br>'.$info[4].'<br>';

?>


pour ça il m'affiche 'non' rien de plus

ps avec une autre url meme effet
dans le site les membres enveront leurs url par un form methode post
donc l'url n'est pas definie elle peut donc etre variable
0
vlmath Messages postés 833 Statut Contributeur 160
 
on va essayer un truc pour voir si les regex sont activés, parce que chez moi il va très bien ...
<?php

$url="a"; 
$pattern = "@[a-z]@";

if (preg_match($pattern, $url)) 
	echo 'oui';
else
	echo 'non';

?>

plus simple que ça, je ne peux pas ...

Si ça ne va pas, ça veut dire que les regex ne sont pas activés ou installé ... je ne vois pas d'autre solutions ...
0
loveparade Messages postés 515 Statut Membre 60
 
la il m'affiche 'oui'
cest stressant
0
vlmath Messages postés 833 Statut Contributeur 160
 
ça m'étonnerais que ça change, mais essaye :
<?php

$url="a"; 
$pattern = "@[a-z]@";

if (preg_match($pattern, $url, $info)) 
	echo 'oui';
else
	echo 'non';

?>
0
loveparade Messages postés 515 Statut Membre 60
 
la il affiche aussi 'oui'
0
vlmath Messages postés 833 Statut Contributeur 160
 
Alors la ... je ne sais plus quoi faire ...

Essaye d'augmenter progressivement la complexité du pattern (et de l'URL) pour voir à quel niveau ça bloque ...
0
loveparade Messages postés 515 Statut Membre 60
 
:s bon je vais continuer
merci bien l'ami
et si quelqu'un d'autre vois une solution je suis toujours preneur :)
gracias
0