Php 显示目录中的图像并链接到同名视频
我使用下面的代码来显示目录中的所有jpgPhp 显示目录中的图像并链接到同名视频,php,html,Php,Html,我使用下面的代码来显示目录中的所有jpg $dirname = "var/www/media/"; $images = glob($dirname."*.jpg"); foreach($images as $image) { echo '<img src="'.$image.'" /><br />'; } 我需要每个jpg图像是可点击的,链接到相应的视频文件 有没有简单的方法 给你 注意 1) 确保文件名相同 2) 您可以在变量$imgExts和$vidExt
$dirname = "var/www/media/";
$images = glob($dirname."*.jpg");
foreach($images as $image) {
echo '<img src="'.$image.'" /><br />';
}
我需要每个jpg图像是可点击的,链接到相应的视频文件
有没有简单的方法 给你注意
1) 确保文件名相同
2) 您可以在变量
$imgExts
和$vidExts
中添加更多的ext文件
<?php
$files = glob("media/*.*");
$vid = NULL;
$imgExts = array("gif", "jpg", "jpeg", "png", "tiff", "tif");
$vidExts = array("mp4", "mpg", "avi", "mk4", "ogg", "3gp");
for ($i=0; $i<count($files); $i++) {
$image = $files[$i];
$urlExt = pathinfo($files[$i], PATHINFO_EXTENSION);
if (in_array($urlExt, $imgExts)) {
for ($j=0; $j<count($files); $j++) {
$urlExt2 = pathinfo($files[$j], PATHINFO_EXTENSION);
if (in_array($urlExt2, $vidExts)) {
if (strcmp($urlExt, $urlExt2) == 0) {
$vid=$files[$j];
}
}
}
echo '<a href="'.$vid .'"><img src="'.$image .'" />'."<br /></a>";
}
}
我不认为你可以在不知道视频扩展名的情况下做这件事,因为每个视频都有不同的扩展名。但是我可以查找文件名并说文件名。(不是jpg)
这是我的想法,但我不知道如何做。如果你在与图像相同的循环中循环视频,会更容易,这样,您就可以从每个值中获取扩展,以验证哪些是视频/图像…您是否有特定的扩展,或者您不知道这些扩展是什么?我的意思是你有视频扩展的列表吗?嗯,有很多不同的扩展。太棒了!工作起来很有魅力!非常感谢你的帮助!我意识到,如果缺少一对,列表将不正确。假设simsons.avi存在,但simsons.jpg不存在。有没有办法捕捉到这个消息(可能跳过文件并抛出一条消息)?@MikeSkril很抱歉没有及时回复。。。检查更新代码!
<?php
$files = glob("media/*.*");
$vid = NULL;
$imgExts = array("gif", "jpg", "jpeg", "png", "tiff", "tif");
$vidExts = array("mp4", "mpg", "avi", "mk4", "ogg", "3gp");
for ($i=0; $i<count($files); $i++) {
$image = $files[$i];
$urlExt = pathinfo($files[$i], PATHINFO_EXTENSION);
if (in_array($urlExt, $imgExts)) {
for ($j=0; $j<count($files); $j++) {
$urlExt2 = pathinfo($files[$j], PATHINFO_EXTENSION);
if (in_array($urlExt2, $vidExts)) {
if (strcmp($urlExt, $urlExt2) == 0) {
$vid=$files[$j];
}
}
}
echo '<a href="'.$vid .'"><img src="'.$image .'" />'."<br /></a>";
}
}
<?php
$x=1; // initially giving value for x=1
$files = glob("media/*.*");
$vid=NULL;
$vidf=$files; //making copy of files array
$imgExts = array("gif", "jpg", "jpeg", "png", "tiff", "tif");
$vidExts = array("mp4", "mpg", "avi", "mk4", "ogg", "3gp");
for ($i=0; $i<count($files); $i++) {
$image = $files[$i];
$urlExt = pathinfo($files[$i], PATHINFO_EXTENSION);
if(in_array($urlExt,$imgExts )){
for($j=0; $j<count($files); $j++){
$urlExt2 = pathinfo($files[$j], PATHINFO_EXTENSION);
if(in_array($urlExt2,$vidExts )){
if(strcmp(pathinfo($files[$i], PATHINFO_FILENAME),pathinfo($files[$j], PATHINFO_FILENAME))==0){
$vid=$files[$j];
$x=0; // put the value of x=0 if video for that image found!
unset($vidf[array_search($vid , $vidf)]); // search & delete video from array with have images
}
}
}
if($x==0)
echo '<a href="'.$vid .'"><img src="'.$image .'" />'."<br /></a>";
else if($x==1){ //check if image have the video
echo 'Video for Image <b>', pathinfo($image , PATHINFO_FILENAME),'.',pathinfo($image , PATHINFO_EXTENSION), ' </b>Not Found!<br>';
$x=0;}
}
}
foreach ($vidf as $vidf) { // show let out videos who's images not found
$urlExt2 = pathinfo($vidf, PATHINFO_EXTENSION);
if(in_array($urlExt2,$vidExts )){
echo "Image of the Video <b> ",pathinfo($vidf , PATHINFO_FILENAME),'.', pathinfo($vidf , PATHINFO_EXTENSION),'</b> Not found!' ;
echo '<br>';
}
}
?>