PHP convalida lo script di YouTube
Domanda
Ho un sito che consente agli utenti di copiare e incollare lo script video incorporato fornito da YouTube e caricarlo su un database. Voglio essere in grado di verificare che questo script sia uno script di YouTube valido e non solo un testo casuale inserito da qualcuno. Credo che questo possa essere fatto con preg match. Qualche idea?
Soluzione
Puoi usare:
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);
ma sarebbe meglio semplicemente inserire un URL (che è molto più facile da convalidare e analizzare) e generarlo da soli.
Altri suggerimenti
Per abbinare gli URL:
$pattern = '/.*youtube.*(v=|\/v\/)([^&\/]*).*/i';
preg_match($pattern, $video, $matches)
$videoId = $matches[2];
Puoi quindi utilizzare $ videoId
per includere qualsiasi formato di URL di YouTube che desideri.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow