Как отобразить имя без расширения и преобразовать дефис в пробел в php?

Я хочу отобразить полное имя.jpg как полное имя. Как я могу это сделать? Ниже приведен код, который у меня есть

<?php
$folder = opendir(dirname(realpath(__FILE__)).'/img/');
while($file = readdir($folder)){
if($file !== '.' && $file !== '..'){
echo '<div class="wrap"><a href="img/'.$file.'"><img src="img/'.$file.'"/>';
echo '<p>'.$file.'</p></a></div>
';
}
}
?>

0

Решение

Вы можете получить имя файла, используя http://php.net/manual/en/function.pathinfo.php вот так :

$filenameonly=pathinfo($file)['filename'];

и вы можете заменить символы с помощью http://php.net/manual/en/function.str-replace.php вот так :

$filenamewithoutdash=str_replace('-','',$filenameonly);
0

Другие решения

попробуй это:

<?php
$folder = opendir(dirname(realpath(__FILE__)).'/img/');
while($file = readdir($folder)){
if($file !== '.' && $file !== '..'){
echo '<div class="wrap"><a href="img/'.$file.'"><img src="img/'.$file.'"/>';
$withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file);
echo '<p>'.str_replace('-', ' ', $withoutExt).'</p></a></div>';
}
}
?>
0

я изменил это на следующее, чтобы заставить его работать

  <?php
$folder = opendir(dirname(realpath(__FILE__)).'/img/');
while($file = readdir($folder)){
if($file !== '.' && $file !== '..'){
echo '<div class="wrap"><a href="img/'.$file.'"><img src="img/'.$file.'"/>';
$file = substr($file, 0, (strlen($file))-(strlen(strrchr($file, '.'))));
$file = str_replace('-', ' ', $file);
echo '<p>'.$file.'</p></a></div>
';
}
}
?>

это может быть функция, а затем вызывать ее с помощью короткого кода или чего-то еще?

0

использование strrchr (), StrLen () а также str_replace () функции.

<?php
$folder = opendir(dirname(realpath(__FILE__)).'/img/');
while ($file = readdir($folder)) {
if ($file !== '.' && $file !== '..'){
$file = substr($file, 0, (strlen($file))-(strlen(strrchr($file, '.'))));
$file = str_replace('-', ' ', $file);
echo '<div class="wrap"><a href="img/'.$file.'"><img src="img/'.$file.'"/>';
echo '<p>'.$file.'</p></a></div>';
}
}
?>
-1
По вопросам рекламы [email protected]