Embed video's met auto detectie voor fora
Deze functie 'embed_video(url_naar_video)' zet een url naar een video om in een embed video van bijv. google video of youtube waarbij je zelf ook videosites kan toevoegen.
Installatie:
Plaats de code, bestaande uit 2 functies, in je script.
Indien er een filmpje gepost moet worden in HTML, roep je 'embed_video()' op met 1 variable met daarin de link naar de video.
Voorbeeld: embed_video("http://video.google.nl/videoplay?docid=-2526424474122738837&q=&hl=nl
");
De uitvoer van het voorbeeld zal een google video zijn. Omdat deze functie ontwikkeld is voor forums heeft deze enigsinds beveiliging ingebouwd waarbij er geen ongeldige tekens in mogen voorkomen.
Er worden op dit moment 6 videosites ondersteund:
Southpark Video - http://www.southparkstudios.com
Google Video - http://video.google.com
Youtube Video - http://www.youtube.com
Dailymotion Video - http://www.dailymotion.com
Veoh Video - http://www.veoh.com !Werkt niet in opera!
Myvideo Video - http://www.myvideo.nl
Werking script...:
Bij het oproepen van de functie maakt ie een variable aan: $code. Hierin moet een url naar een video staan zoals 'http://video.google.nl/videoplay?docid=-2526424474122738837&q=&hl=nl'.
Bovenaan de functie staan 6 arrays met daarin de informatie over iedere videowebsite. In iedere array staat:
array('naam','regex syntax met tekens die NIET in de video-CODE mogen staan','Soort opdrachtregel naar locatie van video-code.','detectie string. Domeinnaam aanbevolen, zoals \'youtube.com\'.','embed code. Op alle plekken waar de videocode hoort te staan zet je [%CODE] neer. Dit zal vervangen worden door een STR_REPLACE()'),
In al die array's zoekt ie of de 'detectie string' voorkomt in $code (url naar video).
Door alle array's te doorzoeken d.m.v. een foreach() loop. Indien de detectie-string voorkomt in de URL, gaat ie verder met het script. Zo niet, dan zoekt-ie in de volgende array. Indien er geen match is zal ie een fout returnen. Deze kan je makkelijk editen indien je de code doorleest.
LET OP: haal 'return' niet weg! 'return' stopt namelijk de functie! Indien je wilt dat ie ipv. een error helemaal niets return-t, kan je alle returns met error erachter vervangen door 'return false;'
Wanneer die verder gaat met het script omdat ie een match heeft, leest ie welke methode er gebruikt wordt om de video-code in te lezen.
Tot nu toe zijn er 3 methoden:
-GET=[variablenaam]: hierbij staat de code netjes in de url met een get method. Na ?blabla= dus...
-FOLDER=[nummer]: hierbij staat de code ergens in de URL tussen 2 slashes. Er is dus een map als naam voor een video. Voorbeeld: blabla.com/video/456435/; hierbij is '456435' een map (vandaar de methode naam 'FOLDER' en kan je deze code oproepen door FOLDER=2 als methode te gebruiken, waarbij de 2 staat dat het de 2 map is na het hoofddomein.
-AFTER=[string]/BEFORE=[string]/BEFORE2=[string]: In deze methode geef je op dat de code na (AFTER) de opgegeven [string] komt en eventueel VOOR 'BEFORE' OF voor 'BEFORE2' komt.
TIP: Indien de code voor of na het teken '?' of '&' komt, kan je dit invullen door de -zelfverzonnen- entities '[Q]' en '[AND]' waarbij deze aan het eind van de 'get()' functie vervangen wordt door '?' en/of '&' door een str_replace
Via 1 van die 3 methoden zal de code uit de URL gepikt worden. Nadat de code gevonden is, wordt er gecontroleer via REGEX of deze juist is. Wanneer er tekens in voorkomen die door de opgegeven regex syntax verboden zijn, zal ie een error returnen ipv. een video. Wanneer er geen ongeldige tekens voorkomen, zal-ie [%CODE] (in de embed-code) vervangen door de videocode en dat resultaat returnen.
De get() functie?
Deze functie wordt gebruikt in de GET methode om een URL in te lezen. Verder wordt deze ook gebruikt om de methodes te lezen. Deze functie dient dus niet aangepast te worden.
Zelf videosites toevoegen:
je kan zelf een videosite toevoegen door $embeds een extra array te geven met daarin de benodigde waarden.
Syntax: array('naam','regex syntax met tekens die NIET in de video-CODE mogen staan','Soort opdrachtregel naar locatie van video-code.','detectie string. Domeinnaam aanbevolen, zoals \'youtube.com\'.','embed code. Op alle plekken waar de videocode hoort te staan zet je [%CODE] neer. Dit zal vervangen worden door een STR_REPLACE()'),
Voorbeeld: zie huidige embeds.
Extra: bij geplaatste code staat debug AAN. Deze kan je uitzetten door $debug de waarde 0 te geven. Verder staan er bovenaan het script een kleine HTML form waarmee je de functie kan testen. Uiteraard kan je dat allemaal weghalen. Je hebt alleen de 2 functies nodig.
Wegens de klachten niveau verlaagt :P
Voorbeeld: http://www.levensweg.net/function.php
Gesponsorde koppelingen
PHP script bestanden
Er zijn 9 reacties op 'Embed videos met auto detectie voor fora'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu