|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Bonjour,
j'aimerais créer trois Regex pour capturer l'ID d'une URL Youtube, Deezer et Soundcloud. J'ai déjà celle de Youtube : '%^# Match any youtube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
| /v/ # or /v/
| /watch\?v= # or /watch\?v=
) # End path alternatives.
) # End host alternatives.
([\w-]{10,12}) # Allow 10-12 for 11 char youtube id.
$%x';Un lien Deezer : http://www.deezer.com/track/1167893 /^http\:\/\/www\.deezer\.com\/track\/\d{6,7}/PS : Concernant ma Regex Youtube, je crois qu'elle ne fonctionne pas si le v= est situé derrière un feature= par exemple.
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#2 | ||
![]() ![]() Olivier Développeur Web Inscription : août 2003 Messages : 2 520 ![]() |
Pas besoin de regex pour faire ça
Par exemple pour youtube et deezer : Code :
__________________
Pry Framework php5 | Recherche CDI dev. Web sur Dijon et alentours. |
||
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Bonjour et merci pour ta réponse.
Concernant Youtube, je suis tout à fait d'accord avec ta méthode. Je vais tester et te faire un retour. Concernant Deezer, pourrais-tu m'expliquer la logique stp ? Pour Soundcloud non, je souhaite récupérer le titre seulement.
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#4 |
![]() ![]() Olivier Développeur Web Inscription : août 2003 Messages : 2 520 ![]() |
Pour deezer :
Code :
$urlParam = parse_url($url, PHP_URL_PATH); Code :
substr($urlParam ,strrpos($urlParam ,'/') +1) Du coup pour soundclound ,la fonction deezer doit marcher.
__________________
Pry Framework php5 | Recherche CDI dev. Web sur Dijon et alentours. |
|
10
|
|
|
#5 | ||
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Merci,
pour récapituler : Code :
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
||
|
|
00
|
|
|
#6 | ||
![]() ![]() Olivier Développeur Web Inscription : août 2003 Messages : 2 520 ![]() |
A priori oui , il faut tester.
Si tu as vraiment besoin de la fonction pour soundcloud , fait juste un alias , recopie pas le code : Code :
__________________
Pry Framework php5 | Recherche CDI dev. Web sur Dijon et alentours. |
||
|
10
|
|
|
#7 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Finalement, serait-il possible de passer tout ça en Regex svp ?
Mon code est fait de telle manière que les Regex m’arrangerait. Merci d'avance
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#8 | ||
|
Membre habitué
![]() Inscription : mars 2009 Messages : 106 ![]() |
Bonjour,
Code :
Code :
$pattern = '#(?<=v=)[\w-]+|[^/?&]+$#'; |
||
|
|
10
|
|
|
#9 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Bonjour, et merci beaucoup pour ta réponse.
Je ne comprend pas la Regex de Deezer, es-tu sûr ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#10 | ||
|
Membre habitué
![]() Inscription : mars 2009 Messages : 106 ![]() |
Pour Deezer il n'y a qu'une série de chiffres à récupérer et les seuls chiffres présents dans l'url sont justement ceux que l'on souhaite.
J' utilise donc la classe prédéfinie \d (qui équivaut à [0-9]) pour les récupérer sans avoir à me soucier de leur position d'où l'absence de l'ancre de fin $. Maintenant dans la réponse que je t'ai donnée, je présume que la recherche porte sur une chaîne contenant uniquement l'url à analyser. Code :
|
||
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Bonjour,
D'accord, je comprend mieux. Et pour Soundcloud tu recherches la dernière chaine de caractères si j'ai bien compris. EDIT : En fait pour Soundcloud, je dois récupérer l'artiste et le titre.
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#12 | ||
|
Membre habitué
![]() Inscription : mars 2009 Messages : 106 ![]() |
Voilà, c'est ça.
Maintenant si les urls sont prises dans un texte quelconque et que tu veux récupérer les informations (avec l'artiste pour soundcloud) de manière exploitable, tu peux faire ceci: Code :
|
||
|
|
10
|
|
|
#13 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
Merci pour toutes ces réponses.
En fait, l'utilisateur copiera directement son lien Youtube, Deezer ou Soundcloud. Pour Deezer et Soundcloud, j'aimerais rajouter le début de l'URL, on ne sait jamais, je n'ai pas envie qu'il copie directement l'ID de la vidéo. Quelque chose du style : http://soundcloud.com/([\w-]+)/([\w-]+)$ Comment le traiter dans un preg_match() ensuite ? Idem pour Deezer, merci d'avance !
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 856 ![]() |
@CosmoKnacki : As-tu essayé de répondre ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... Nicolas Jaar, Paul Kalkbrenner, Marek Hermann |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com