Ik probeer een regexp in elkaar te zetten om youtube URL's te kunnen controleren/filteren.
Na veel Googlen, proberen, rondvragen, heb ik het volgende:
Echter geeft deze false terug, dus hij klopt nog niet helemaal.
Bedoeling is dat het altijd moet beginnen met:
http://(www.)youtube.com/watch?v=
Achter de 'v=' is enkel toegestaan:
a-z, A-Z, 0-9, -, _
Soms bevat de URL meerdere waarden, dan alleen 'v', bijvoorbeeld:
http://w ww.youtube.com/watch?v=L5vR-UR5nOE&feature=related
http://w ww.youtube.com/watch?v=LipvtaK41mw&feature=g-logo&context=G210ac1dFOAAAAAAACAA
Deze moeten ook er door heen komen als true.
Waar ik vervolgens naar toe wil is dat een lange URL (zie 2 hierboven) gecontroleerd wordt door de regexp en gestript wordt naar een verkorte URL, namelijk:
http://w ww.youtube.com/watch?v=L5vR-UR5nOE&feature=related moet dus worden:
http://w ww.youtube.com/watch?v=L5vR-UR5nOE
http://w ww.youtube.com/watch?v=LipvtaK41mw&feature=g-logo&context=G210ac1dFOAAAAAAACAA moet dus worden:
http://w ww.youtube.com/watch?v=LipvtaK41mw
Maar het belangrijke is nu even dat de regexp klopt.
Ik ben een leek op het gebied van regexp
Na veel Googlen, proberen, rondvragen, heb ik het volgende:
PHP:
1
2
3
| $videoLink = 'http://www.youtube.com/watch?v=QWryt7fg'; print ' test: ' . preg_match('(^bhttp:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=[a-zA-Z0-9-_]+)(?:\S+)?$)', $videoLink); |
Echter geeft deze false terug, dus hij klopt nog niet helemaal.
Bedoeling is dat het altijd moet beginnen met:
http://(www.)youtube.com/watch?v=
Achter de 'v=' is enkel toegestaan:
a-z, A-Z, 0-9, -, _
Soms bevat de URL meerdere waarden, dan alleen 'v', bijvoorbeeld:
http://w ww.youtube.com/watch?v=L5vR-UR5nOE&feature=related
http://w ww.youtube.com/watch?v=LipvtaK41mw&feature=g-logo&context=G210ac1dFOAAAAAAACAA
Deze moeten ook er door heen komen als true.
Waar ik vervolgens naar toe wil is dat een lange URL (zie 2 hierboven) gecontroleerd wordt door de regexp en gestript wordt naar een verkorte URL, namelijk:
http://w ww.youtube.com/watch?v=L5vR-UR5nOE&feature=related moet dus worden:
http://w ww.youtube.com/watch?v=L5vR-UR5nOE
http://w ww.youtube.com/watch?v=LipvtaK41mw&feature=g-logo&context=G210ac1dFOAAAAAAACAA moet dus worden:
http://w ww.youtube.com/watch?v=LipvtaK41mw
Maar het belangrijke is nu even dat de regexp klopt.
Ik ben een leek op het gebied van regexp
[ Voor 14% gewijzigd door c-nan op 11-03-2012 12:23 ]
EU DNS: 86.54.11.100