Code : Tout sélectionner
file://ton_chemin
function mkmap($dir){
echo "<ul>";
$dossier=$_GET['s'];
$folder = opendir ($dir);
// $authextension = array ('mp4', 'mov');
// on boucle le dossier
while ($file = readdir ($folder)) {
if ($file != "." && $file != "..") {
// $spacer = (preg_match("@^D:\^@i", $dir, $matches))?"/":"\\";
// $pathfile = $dir.$spacer.$file;
// $pathfile = $dir.'\\'.$file;
$pathfile = $dir.'/'.$file;
$extension=strrchr($file,'.');
$extension=substr($extension,1) ;
$icon = 'icon.png';
// on supprime l'affichage du nom de l'icone
/*
* on vérifie l'extention du fichier
*/
// si il n'y en a pas, alors il s'agit d'un dossier
if ($extension=="mp4" || $extension=="mov" || $extension=="avi" || $extension=="mkv") {
// $video = $_SERVER['HTTP_REFERER']'.$pathfile;
$namef=preg_replace("`(.+)\_Grafikart - Tutoriel `isU", "", $file);
echo '<li><a href="index.php?s='.$dossier.'&v='.$pathfile.'">'.$namef.'</a></li>';
// echo '<li><a href="index.php?v='.$pathfile.'">'.$namef.'</a></li>';
// sinon c'est u fichier
} else {
$namef=preg_replace("`(.+)\_`isU", "", $file);
$namef=preg_replace("`icon.png`isU", "", $namef);
// echo $file;
echo '<li><span class="titre">'.$namef.'</span></li>'."\n";
if(filetype($pathfile) == 'dir'){
mkmap($pathfile);
}
}
}
}
closedir ($folder);
echo "</ul>";
}
video.php
<?php
$direction = $_SERVER['QUERY_STRING'];
$direction = preg_replace("`v=`isU", "", $direction);
$direction = preg_replace("`s=(.+)&`isU", "", $direction);
?>
<a href="file://<?php echo $direction; ?>" class="btn btn-info">Télécharger la vidéo</a>
index.php
<?php
include_once ('./function.php');
?>
<!doctype html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Tutoriels GraphikArt</title>
<link href="./css/bootstrap.css" rel="stylesheet">
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
<link href="./css/video.css" rel="stylesheet">
<style type="text/css">
body { padding-top: 60px; padding-bottom: 40px; }
ul { list-style:none; }
span.titre { font-size:17px;font-weight:bold; }
#player_4193 { width:670px;height:503px; }
</style>
<!--[if IE]>
<style type="text/css">
li span {
display:inline;
zoom:1;
}
</style>
<![endif]-->
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="navbar-header">
<div class="nav-collapse collapse">
<ul class="nav">
<li class=""><a href="./">Accueil</a></li>
<li class=""><a href="./index.php?s=Film">Film</a></li>
<li class=""><a href="./index.php?s=Tutoriels">Tutoriels</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span4">
<div class="well sidebar-nav">
<?php
if (isset($_GET['s']) && $_GET['s']=='Film'){
$dossier = 'D:\Videos\Films';
}
else if (isset($_GET['s']) && $_GET['s']=='Tutoriels'){
$dossier = 'D:\Videos\Tutos';
}
else {
$dossier = '';
}
mkmap($dossier);
?>
<?php // mkmap('videos'); ?>
</div><!--/.well -->
</div><!--/span-->
<div class="span8">
<div class="hero-unit">
<?php
if (isset($_GET['v'])){
include ('./video.php');
}
?>
</div><!--/span-->
</div><!--/row-->
</div><!--/span-->
</div><!--/row-->
</body>
</html>
On parle là d'un accès navigateur (et non serveur), j'ouvre par exemple mes fichier pdf avec firefox depuis n'importe quel disque dur.1/ l'accès comme ça aux ressources ne devrait pas être possible (faille de sécurité)
2/ windows n'est pas sensible pas à la casse des caractères donc d ou D c'est pareil
3/ ajoute simplement un alias ou vhost dans la conf de ton serveur httpd ( vers le répertoire des vidéos) et utilise le pour générer tes liens sur la page web.
Tu pourras ainsi utiliser un player vidéo (balise vidéo html5 par exemple) en lui fournissant l'url de la vidéo avec l'alias ou le vhost
<?php
if (isset($_GET['s'])){
header('Content-Type: text/html; charset=iso-8859-1');
function mkmap($dir){
echo "<ul>";
$dossier=$_GET['s'];
$folder = opendir ($dir);
// on boucle le dossier
while ($file = readdir ($folder)) {
if ($file != "." && $file != "..") {
$pathfile = $dir.'/'.$file;
$extension=strrchr($file,'.');
$extension=substr($extension,1) ;
$icon = 'icon.png';
// on supprime l'affichage du nom de l'icone
/*
* on vérifie l'extention du fichier
*/
// si il n'y en a pas, alors il s'agit d'un dossier
if ($extension=="mp4" || $extension=="mov" || $extension=="avi" || $extension=="mkv") {
// $video = $_SERVER['HTTP_REFERER']'.$pathfile;
$namef=preg_replace("`(.+)\_Grafikart - Tutoriel `isU", "", $file);
echo '<li><a href="index.php?s='.$dossier.'&v='.$namef.'">'.$namef.'</a></li>';
// echo '<li><a href="index.php?v='.$pathfile.'">'.$namef.'</a></li>';
// sinon c'est u fichier
} else {
$namef=preg_replace("`(.+)\_`isU", "", $file);
$namef=preg_replace("`icon.png`isU", "", $namef);
// echo $file;
echo '<li><span class="titre">'.$namef.'</span></li>'."\n";
if(filetype($pathfile) == 'dir'){
mkmap($pathfile);
}
}
}
}
closedir ($folder);
echo "</ul>";
}
}else{
function mkmap(){
echo 'Choisissez un dossier dans le menu';
}
}
?>
video.php
<?php
header('Content-Type: text/html; charset=utf-8');
$fichier = $_SERVER['QUERY_STRING'];
$fichier = preg_replace("`v=`isU", "", $fichier);
$fichier = preg_replace("`s=(.+)&`isU", "", $fichier);
$adresse = 'http://video.loc/';
$dossier=$_GET['s'].'/';
$direction = $adresse.$dossier.$fichier;
$serverAdresse = 'http://local.loc/'
?>
<script type="text/javascript" src="<?php echo $serverAdresse; ?>Tutoriels/js/flashobject.js"></script>
<div id="player_4752" style="display:inline-block;">
<a href="http://get.adobe.com/flashplayer/">You need to install the Flash plugin</a>
</div>
<script type="text/javascript">
var flashvars_4752 = {};
var params_4752 = {
quality: "high",
wmode: "transparent",
bgcolor: "#ff0000",
allowScriptAccess: "always",
allowFullScreen: "true",
flashvars: "fichier=<?php echo $direction; ?>&apercu=<?php echo $serverAdresse; ?>Tutoriels/img/video.png"
};
var attributes_4752 = {};
flashObject("<?php echo $serverAdresse; ?>Tutoriels/flash/v1_12.swf", "player_4752", "670", "503", "8", false, flashvars_4752, params_4752, attributes_4752);
</script>
index.php
<?php
header('Content-Type: text/html; charset=utf-8');
include_once ('./function.php');
?>
<!doctype html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Tutoriels GraphikArt</title>
<link href="./css/bootstrap.css" rel="stylesheet">
<link href="./css/bootstrap-responsive.css" rel="stylesheet">
<link href="./css/video.css" rel="stylesheet">
<style type="text/css">
body { padding-top: 60px; padding-bottom: 40px; }
ul { list-style:none; }
span.titre { font-size:17px;font-weight:bold; }
#player_4752 { width:670px;height:503px; }
</style>
<!--[if IE]>
<style type="text/css">
li span {
display:inline;
zoom:1;
}
</style>
<![endif]-->
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="navbar-header">
<div class="nav-collapse collapse">
<ul class="nav">
<li class=""><a href="./">Accueil</a></li>
<li class=""><a href="./index.php?s=Films">Film</a></li>
<li class=""><a href="./index.php?s=Tutoriels">Tutoriels</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span4">
<div class="well sidebar-nav">
<?php
if (isset($_GET['s']) && $_GET['s']=='Films'){
$dossier = 'D:\Videos\Films';
}
else if (isset($_GET['s']) && $_GET['s']=='Tutoriels'){
$dossier = 'D:\Videos\Tutos';
}
else {
$dossier = '';
}
mkmap($dossier);
?>
<?php // mkmap('videos'); ?>
</div><!--/.well -->
</div><!--/span-->
<div class="span8">
<div class="hero-unit">
<?php
if (isset($_GET['v'])){
include ('./video.php');
}
?>
</div><!--/span-->
</div><!--/row-->
</div><!--/span-->
</div><!--/row-->
</body>
</html>
...
$adresseVideo = preg_replace("`(.+)(\:)(\\)Videos(\\)`isU", "", $pathfile);
$adresseVideo = preg_replace("`(\\)`isU", "/", $adresseVideo);
...
En testant l'expression régulière ici, il me semble que c'est correcte, mais j'ai cette erreur:
Code : Tout sélectionner
Warning: preg_replace(): Compilation failed: missing ) at offset 20 in C:\wamp\www\Tutoriels\function.php on line 13
Je suis comme toi, entre nous c'est sympa les regex, mais c'est super chiant et c'est jamais pareil d'un langage à l'autre (à quelque variantes près ^^)Je fais pas.![]()
D'une part parce que j'ai en horreur les regex, d'autre part par feignantise quand on peut faire la même chose avec des fonctions.
Et si je n'ai pas le choix...
Je me prends un logiciel de test de regex et une bonne doc et je m'y mets.
Mais le lendemain c'est sorti par l'autre oreille. ^^