Это было не очень понятно, в этом вопросе, но я думаю, что вы хотите быть в состоянии для изменения имени файла следующим образом:
image.JPG -> image_small.JPG
image.jpg -> image_small.jpg
Это может быть сделано с помощью preg_replace()
с использованием обратных ссылок, например:
php > echo preg_replace('/(^.*)(\.jpg)$/i', '\1_small\2', 'image.jpg');
image_small.jpg
php > echo preg_replace('/(^.*)(\.jpg)$/i', '\1_small\2', 'image.JPG');
image_small.JPG
php > echo preg_replace('/(^.*)(\.jpg)$/i', '\1_small\2', 'image.jPg');
image_small.jPg
Это работает, вставив "_small"
между 2 соответствующих групп.
В контексте вашего кода:
<?php
if ($row_rsAdminMenu['image1']) {
$src = $row_rsAdminMenu['image1'];
$src = preg_replace('/(^.*)(\.jpg)$/i', '\1_small\2', $src);
} else {
$src = '../../images/NoPic.jpg';
}
echo '<img src="' . htmlspecialchars($src, ENT_COMPAT, 'UTF-8') . '" />'; ?>
С незначительной модификацией он может также работать для других расширений файлов, при желании:
php > echo preg_replace('/(^.*)(\.(jpg|gif|png|jpeg))$/i', '\1_small\2', 'image.PNG');
image_small.PNG
Прошу прощения, потому что оригинальный вопрос был неясным, поток стека застыл, когда я отправил оригинальный вопрос, я обновился, но он пропустил оставшуюся часть вопроса. Спасибо за помощь, как шарм, блестящий –