Question

J'ai un site qui permet aux utilisateurs de copier et coller le script vidéo intégré fourni par YouTube et de le télécharger dans une base de données. Je veux pouvoir vérifier que ce script est un script youtube valide et pas uniquement du texte aléatoire saisi par une personne. Je pense que cela peut être fait avec une correspondance anticipée. Des idées?

Était-ce utile?

La solution

Vous pouvez utiliser:

preg_match('/^<object (?<width_height>width="[[:digit:]]+" height="[[:digit:]]+")><param name="movie" value=(?<url>"http:\/\/www.youtube.com\/v\/[^&]+&hl=[[:alpha:]]{2}&fs=1")><\/param><param name="allowFullScreen" value="true"><\/param><param name="(?<asa>allowscriptaccess)" value="always"><\/param><embed src=(?P=url) type="application\/x-shockwave-flash" (?P=asa)="always" allowfullscreen="true" (?P=width_height)><\/embed><\/object>$/', $yt);

mais il serait préférable de simplement leur demander de saisir une URL (ce qui est beaucoup plus facile à valider et à analyser) et de la générer vous-même.

Autres conseils

Pour faire correspondre les URL:

$pattern = '/.*youtube.*(v=|\/v\/)([^&\/]*).*/i';
preg_match($pattern, $video, $matches)
$videoId = $matches[2];

Vous pouvez ensuite utiliser $ videoId pour intégrer le format d'URL YouTube souhaité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top