Behöver hjälp, PHP. Visa video spelare om rätt file extention finns, annars inte.

Trädvy Permalänk
Medlem
Registrerad
Maj 2012

Behöver hjälp, PHP. Visa video spelare om rätt file extention finns, annars inte.

Hej, tänkte fråga om någon kanske är duktigt på PHP och skulle vilja hjälpa mej med en "kod" fråga?

Jag har min web spelare som ser ut så här ungefär,

<link video-js.css>
<video>
Massa information om video'n här, som gör att video klippet fungerar med spelaren.
<source src="<?php echo $file->generateDirectDownloadUrlForMedia(); ?>" type='video/mp4' />
</video>
<script> Script filen som laddar video spelaren. </script>

I en kort mening undrar jag, när jag har min web spelare (video-js).

Hur skulle jag kunna göra, om jag tex skulle vilja att spelaren skulle komma fram på websidan när file extentions .mp4 .mkv är tillgängliga.

Men om den file extention inte är tillgänglig så skulle web spelaren inte ladda in i webbsidan alls.

Jag vet inget om PHP kodning i allmänt, som därför frågar jag här och kanske skulle någon snäll person kunna hjälpa mej?

Har sökt mycket på google, men hittade inga större svar.

Speldator: [Intel Core i7 4790K] [ASUS Matrix GTX 780Ti x2] [ASUS MAXIMUS VII HERO] [Corsair Dominator Platinum 32GB] [Windows 7] [Logitech G400S] [Microsoft Ergonomic 4000] [BenQ XR3501 35" (HDMI)] [BenQ G900W 19" (VGA)]

Serverdator: [Intel Core i7 6850K] [ASUS X99-E WS] [Corsair Vengeance LPX 64GB] [2x Crucial MX300 1TB] [Cooler Master V1200] [CentOS 7]

Trädvy Permalänk
Medlem
Plats
Hammarö
Registrerad
Jan 2004

Du kan använda dig av pathinfo() för att få fram själva filformatet och sen strpos() för att se om filens format stämmer överens med kraven.

<?php $extension = pathinfo('filens-namn.mp4', PATHINFO_EXTENSION); if(strpos($extension, 'mp4') !== false OR strpos($extension, 'mkv') !== false) { echo '... type="video/'.$extension.'"'; } ?>

Det går såklart att göra koden ovan bättre, men tills dess, så funkar den där alldeles utmärkt. Du kanske behöver ändra OR till AND.

För övrigt. Du skrev att du hade Googlat. Då har du inte googlat rätt. Jag Googlade på "php get extension from filename" och det första resultatet ledde mig till rätt svar.

Citera mig om du önskar ett snabbare svar.
https://www.instagram.com/erik_edgren/

Trädvy Permalänk
Medlem
Registrerad
Maj 2012
Skrivet av edgren:

Du kan använda dig av pathinfo() för att få fram själva filformatet och sen strpos() för att se om filens format stämmer överens med kraven.

<?php $extension = pathinfo('filens-namn.mp4', PATHINFO_EXTENSION); if(strpos($extension, 'mp4') !== false OR strpos($extension, 'mkv') !== false) { echo '... type="video/'.$extension.'"'; } ?>

Det går såklart att göra koden ovan bättre, men tills dess, så funkar den där alldeles utmärkt. Du kanske behöver ändra OR till AND.

För övrigt. Du skrev att du hade Googlat. Då har du inte googlat rätt. Jag Googlade på "php get extension from filename" och det första resultatet ledde mig till rätt svar.

Hej, du får ursäkta men min kunskap med PHP är nästan obefintlig. "I'm just a guy with a vision"

Men tack för snabbt svar.

Men hur gör jag sen för att då den ska fungera med spelaren?

<?php $extension = pathinfo('<?php echo $file->generateDirectDownloadUrlForMedia(); ?>', PATHINFO_EXTENSION); if(strpos($extension, 'mp4') !== false OR strpos($extension, 'mkv') !== false) { echo '... type="video/'.$extension.'"'; } ?> <link href="<?php echo PLUGIN_WEB_ROOT; ?>/mediaplayer/assets/players/video-js/video-js.css" rel="stylesheet" type="text/css"> <video id="example_video_1" class="video-js vjs-default-skin" controls autoplay preload="none" width="1170" height="658" data-setup="{}"> <source src="<?php echo $file->generateDirectDownloadUrlForMedia(); ?>" type='video/mp4' /> <source src="<?php echo $file->generateDirectDownloadUrlForMedia(); ?>" type='video/webm' /> <source src="<?php echo $file->generateDirectDownloadUrlForMedia(); ?>" type='video/ogg' /> <p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p> </video> <script type="text/javascript" src="<?php echo PLUGIN_WEB_ROOT; ?>/mediaplayer/assets/players/video-js/video.min.js"></script>

Speldator: [Intel Core i7 4790K] [ASUS Matrix GTX 780Ti x2] [ASUS MAXIMUS VII HERO] [Corsair Dominator Platinum 32GB] [Windows 7] [Logitech G400S] [Microsoft Ergonomic 4000] [BenQ XR3501 35" (HDMI)] [BenQ G900W 19" (VGA)]

Serverdator: [Intel Core i7 6850K] [ASUS X99-E WS] [Corsair Vengeance LPX 64GB] [2x Crucial MX300 1TB] [Cooler Master V1200] [CentOS 7]

Trädvy Permalänk
Medlem
Plats
Hammarö
Registrerad
Jan 2004

@Dalslandan
Det enklaste alternativet vore ju nästan såhär (kolla igenom koden noga, så att du är med på noterna):

<?php echo '<link href="'.PLUGIN_WEB_ROOT.'/mediaplayer/assets/players/video-js/video-js.css" rel="stylesheet" type="text/css">'; echo '<script type="text/javascript" src="'.PLUGIN_WEB_ROOT.'/mediaplayer/assets/players/video-js/video.min.js"></script>'; # VARIABEL $extension = pathinfo('<?php echo $file->generateDirectDownloadUrlForMedia(); ?>', PATHINFO_EXTENSION); # KONTROLL if(strpos($extension, 'mp4') !== false OR strpos($extension, 'mkv') !== false) { # VIDEO echo '<video id="example_video_1" class="video-js vjs-default-skin" controls autoplay preload="none" width="1170" height="658" data-setup="{}">'; echo '<source src="'.$file->generateDirectDownloadUrlForMedia().'" type="video/'.$extension.'">'; echo '<source src="'.$file->generateDirectDownloadUrlForMedia().'" type="video/webm">'; echo '<source src="'.$file->generateDirectDownloadUrlForMedia().'" type="video/ogg">'; echo '<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>'; echo '</video>'; } ?>

Citera mig om du önskar ett snabbare svar.
https://www.instagram.com/erik_edgren/

Trädvy Permalänk
Medlem
Registrerad
Maj 2012
Skrivet av edgren:

@Dalslandan
Det enklaste alternativet vore ju nästan såhär (kolla igenom koden noga, så att du är med på noterna):

<?php echo '<link href="'.PLUGIN_WEB_ROOT.'/mediaplayer/assets/players/video-js/video-js.css" rel="stylesheet" type="text/css">'; echo '<script type="text/javascript" src="'.PLUGIN_WEB_ROOT.'/mediaplayer/assets/players/video-js/video.min.js"></script>'; # VARIABEL $extension = pathinfo('<?php echo $file->generateDirectDownloadUrlForMedia(); ?>', PATHINFO_EXTENSION); # KONTROLL if(strpos($extension, 'mp4') !== false OR strpos($extension, 'mkv') !== false) { # VIDEO echo '<video id="example_video_1" class="video-js vjs-default-skin" controls autoplay preload="none" width="1170" height="658" data-setup="{}">'; echo '<source src="'.$file->generateDirectDownloadUrlForMedia().'" type="video/'.$extension.'">'; echo '<source src="'.$file->generateDirectDownloadUrlForMedia().'" type="video/webm">'; echo '<source src="'.$file->generateDirectDownloadUrlForMedia().'" type="video/ogg">'; echo '<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>'; echo '</video>'; } ?>

Den koden gillade den inte

Ingen spelare alls syntes till.

Speldator: [Intel Core i7 4790K] [ASUS Matrix GTX 780Ti x2] [ASUS MAXIMUS VII HERO] [Corsair Dominator Platinum 32GB] [Windows 7] [Logitech G400S] [Microsoft Ergonomic 4000] [BenQ XR3501 35" (HDMI)] [BenQ G900W 19" (VGA)]

Serverdator: [Intel Core i7 6850K] [ASUS X99-E WS] [Corsair Vengeance LPX 64GB] [2x Crucial MX300 1TB] [Cooler Master V1200] [CentOS 7]

Trädvy Permalänk
Medlem
Plats
Hammarö
Registrerad
Jan 2004

@Dalslandan
Hm. Ok. Har du TeamViewer installerat? För att hjälpa dig så bra som möjligt, så är det enklare att kunna felsöka direkt från din dator.

Citera mig om du önskar ett snabbare svar.
https://www.instagram.com/erik_edgren/

Trädvy Permalänk
Medlem
Registrerad
Maj 2012

@edgren: Absolut

Speldator: [Intel Core i7 4790K] [ASUS Matrix GTX 780Ti x2] [ASUS MAXIMUS VII HERO] [Corsair Dominator Platinum 32GB] [Windows 7] [Logitech G400S] [Microsoft Ergonomic 4000] [BenQ XR3501 35" (HDMI)] [BenQ G900W 19" (VGA)]

Serverdator: [Intel Core i7 6850K] [ASUS X99-E WS] [Corsair Vengeance LPX 64GB] [2x Crucial MX300 1TB] [Cooler Master V1200] [CentOS 7]

Trädvy Permalänk
Medlem
Plats
Hammarö
Registrerad
Jan 2004

@Dalslandan
Super! Jag skickade precis iväg ett PM till dig

Citera mig om du önskar ett snabbare svar.
https://www.instagram.com/erik_edgren/