我有以下代码用于显示图像的缩略图,缩略图是使用_small创建的,位于文件名的末尾。它是一个简单的替换功能:
<?php
if ($row_rsAdminMenu['image1']) {
$src = $row_rsAdminMenu['image1'];
$src = str_replace('.JPG', '_small.JPG', $src);
} else {
$src = '../../images/NoPic.jpg';
}
echo '<img src="' . htmlspecialchars($src, ENT_COMPAT, 'UTF-8') . '" />'; ?>
答案 0 :(得分:1)
您可以使用str_ireplace进行不区分大小写的替换。
$src = str_ireplace('.JPG', '_small.JPG', $src);
答案 1 :(得分:1)
问题不是很清楚,但我认为您希望能够更改文件名,如下所示:
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
这可以通过在2个匹配的组之间插入"_small"
来实现。
在您的代码中:
<?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
答案 2 :(得分:0)
尝试 -
echo preg_replace('/.jpg/i', '', '_small.JPG');
或者如果想要删除多个扩展程序 -
echo preg_replace('/.(jpg|gif|png)/i', '', '_small.JPG _small.GIF');