Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour dans le cadre de mon projet,
je dois vérifier si un lien posté par l'internaute est un lien youtube.
exemple:
<object width="320" height="265"><param name="movie" value="http://www.youtube.com/v/rzeRn8eaG7Q&hl=fr&fs=1&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rzeRn8eaG7Q&hl=fr&fs=1&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"></embed></object> <object width="320" height="265"><param name="movie" value="http://www.youtube.com/v/MNx7dzGbrlY&hl=fr&fs=1&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/MNx7dzGbrlY&hl=fr&fs=1&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"></embed></object> <object width="320" height="265"><param name="movie" value="http://www.youtube.com/v/OGzLm33LTbg&hl=fr&fs=1&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OGzLm33LTbg&hl=fr&fs=1&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"></embed></object>
Je ne peux pas interdire les balises html et je dois également évité que d'autre script frauduleux sois posté.
Je me suis donc penché vers l'expression réguliére.
Quand on regarde bien il y que le carachtérisitque "src" et value qui change.
J'ai créer une première expression comme suit :
if (eregi('^<object width="320" height="265"><param name="movie" value="(.*)"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="(.*)" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"></embed></object>$', $value) )
Maintenant je veux vérifier que la valeur contenu dans src et value commence par "http://www.youtube.com"
Merci de m'aider.
Je vous remercie de m'aidé dans l'élaboration de cet expression.
Dernière modification par tamildark (02-07-2009 17:08:19)
Hors ligne
réponse:
$reg = '#^ <object \s+ width="[0-9]*" \s+ height="[0-9]*"> <param \s+ name="movie" \s+ value="((http://www.youtube.com)[^"]*)"></param> <param \s+ name="allowFullScreen" \s+ value="true"></param> <param \s+ name="allowscriptaccess" \s+ value="always"></param> <embed \s+ src="\1" \s+ type="application/x-shockwave-flash" \s+ allowscriptaccess="always" \s+ allowfullscreen="true" \s+ width="[0-9]*" \s+ height="[0-9]*"></embed> </object> $#x';
Hors ligne