我在细节创建时添加了时间戳和日期。时间戳和日期将添加到数据库中。当我从db检索它时,它想要只显示没有时间戳和日期的字符串名称?如何制作?
添加方法....
$imagename = $_POST['imagename'];
$imageNameExt = $_POST['imageNameExt'];
$newImgName = trim($imagename).'_'.date('Y_m_d_H_i_s').'.'.trim(strtolower($imageNameExt));
Here consider the $imagename = "abc"; and $imageNameExt = "jpg"; when it'll insert into db the name as $newImgName = "abc_2011_07_12_18_47_02.jpg"....
现在我需要从db中检索。如果我只打印出名称“abc”而没有时间戳和日期?
提前致谢。
更新:(我无法发布此信息作为答案bcoz在100声誉下。)
找到了我的问题的答案:
在检索它时,它将以image_path的名义出现,
$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
图像名称“abc”将出现在字符串“$ ImgOrgName_core”中。
尝试一下......当我像这样使用时,我很容易得到答案。
答案 0 :(得分:0)
您应将原始图像名称和时间戳信息存储为数据库中的单独列。通过这种方式,您可以随时访问每个数据,并且可以在插入任何数据之前将它们连接起来。
您也可以通过简单地获取字符串并从末尾计算下划线直到找到第6个(时间戳中有5个,因此最后的第6个将时间戳与名称分开),或者将现有代码锤入提交中,或者您可以使用substr
从名称中删除最后20个字符(如果所有数字都用零填充,则时间戳为19个字符,加上分隔符下划线的1个字符),但是这种解决方案很麻烦并且容易破损。我永远不会推荐它,所以我不给它代码(无论如何,切掉最后20个字符是微不足道的。)
答案 1 :(得分:0)
你用正则表达式替换日期:
$imgNameNoDate = preg_replace('#_\d{4}_\d{2}_\d{2}_\d{2}_\d{2}_\d{2}#', '', $imgName);
但更好的方法是更改数据库以存储原始名称和日期时间信息。
答案 2 :(得分:0)
虽然我同意评论者的意见,将时间戳存储在自己的专栏中会更好,更好,这里是如何专门做你想要的。
$underscorePos = strpos($imageNameFromDB, '_');
if ($underscorePos !== false)
{
$imageNameOnly = substr($imageNameFromDB, 0, $underscorePos);
}
答案 3 :(得分:0)
找到了我的问题的答案:
在检索它时,它将以image_path的名义出现,
$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
图像名称“abc”将出现在字符串“$ ImgOrgName_core”中。
检查一下......当我这样使用时,我很容易得到答案。