该交易是使用其首字母获取上一个和下一个文件扩展名,例如:
有文件04.jpeg 05.gif 06.tiff我们正在阅读05.gif所以我们删除了扩展名
现在它的'05'所以我们加一个所以我们得到'06'以及如何获得文件扩展?!?!?!
详细信息:
问题是我需要修复我的图像浏览器,它有两种工作模式:
漫画浏览器
[文件夹中的漫画如下:
page00.extension
page01.extension
(...)
page09.extension
page10.extension
page11.extension ]
单个文件浏览器
[文件夹中的单个文件看起来像:
01.extension
02.extension
03.extension
(...)
09.extension
10.extension
11.extension ]
[扩展名可能jpg,jpeg,gif,png等]
我使用$ _GET var。
获取当前的$ extension和文件名这是一些代码 - 我正在使用bootstrap 3框架:
也很抱歉没有评论,但这看起来并不复杂
<?php
if($type == 2) {
$number = substr($clean, 4);
$nextnum = $number + 1;
$prevnum = $number - 1;
$prevpath = HOW TO GET IT WITH EXTENSION??
$nextpath = HOW TO GET IT WITH EXTENSION??
$nextext = '.' . substr(strrchr($prevpath,'.'),1);
$prevext = '.' . substr(strrchr($nextpath,'.'),1);
if ($nextnum >= 10) {
$next = 'page' . $nextnum . $nextext;
} else {
$next = 'page0' . $nextnum . $nextext; }
if ($prevnum >= 10) {
$prev = 'page' . $prevnum . $prevext;
} else {
$prev = 'page0' . $prevnum . $prevext; }
if ($clean === "page00") {
$prev = 'page00' . $extension; }
$count = 'page' . $x;
if ($clean === $count) {
$next = $count . $extension; }
} elseif($type == 3) {
$nextnum = $clean + 1;
$prevnum = $clean - 1;
$prevpath = HOW TO GET IT WITH EXTENSION?? <====== MY PROBLEM
$nextpath = HOW TO GET IT WITH EXTENSION?? <====== MY PROBLEM
$nextext = '.' . substr(strrchr($prevpath,'.'),1);
$prevext = '.' . substr(strrchr($nextpath,'.'),1);
if ($nextnum >= 10) {
$next = $nextnum . $nextext;
$prev = $prevnum . $prevext;
} else {
$next = '0' . $nextnum . $nextext;
$prev = '0' . $prevnum . $prevext; }
if ($clean === "01") {
$prev = '01' . $extension; }
if ($clean === $x) {
$next = $x . $extension; } }
echo '<br />
<div class="btn-group btn-group-justified">
<a class="btn btn-default" href="?browse=' . $prev . '" role="button">Poprzedni</a>
<a class="btn btn-default" href="' . $goback . '" role="button">Wyjdź</a>
<a class="btn btn-default" href="?browse=' . $next . '" role="button">Następny</a>
</div>';
?>
答案 0 :(得分:2)
如果你知道当前文件的名称,那么你可以使用glob
搜索目录中的文件:
if (is_array(glob('05.*'))) { /* do some stuff */ }
否则,您可以创建一系列扩展名并使用file_exists
:
foreach (array('jpg', 'jpeg', 'png') as $ext)
if (file_exists('05.'. $ext)) { /* do some stuff */ }
答案 1 :(得分:2)
function get_next_file($file){
$maxdigits = 2; // assuming the file always ends with two digits
$dir = dirname($file) . DIRECTORY_SEPARATOR;
$fname = pathinfo($file, PATHINFO_FILENAME);
$name = substr($fname, 0, -$maxdigits);
$digits = substr($fname, -$maxdigits) + 1;
foreach(array('bmp', 'png', 'jpg', 'gif') as $ext){
$test = $dir . $name . str_pad($digits, $maxdigits, '0', STR_PAD_LEFT) . '.' . $ext;
if(file_exists($ext))return $ext;
}
return false; // no such file...
}
完整的功能看起来像上面的那个(未经过测试!)。你可以这样称呼它:
假设我们有这些文件:
test01.png
test02.gif
test05.bmp
你得到这些结果:
get_next_file('test01.png') => 'test02.gif'
get_next_file('test02.gif') => false // 'coz the other file is not consecutive
get_next_file('test05.bmp') => false // no other files to look for...