我已经添加了创建详细信息的时间戳和日期。时间戳和日期将添加到数据库中。当我将检索它从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"....
现在我需要从数据库检索..我应该如何打印只有名称"abc"没有时间戳和日期??
提前感谢。
更新:(我不能把这个作为答案,因为我的声誉低于100)
找到了我问题的答案:
当我检索它的时候它会以image_path的名字出现,
$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
图像名称"abc"将出现在字符串"$ImgOrgName_core"中。
试一试……当我这样使用时,我很容易得到答案。
应该将原始图像名称和时间戳信息作为单独的列存储在数据库中。这样,您将始终可以访问每个数据块,并且您可以在插入任何您希望的时间之前将它们连接起来。
你也可以锤你现有的代码提交通过将字符串和计数强调从结束,直到你找到第六(时间戳有5所以结束分离的时间戳的6名),或者您可以简单地删除过去的20字符从名字substr
(时间戳是19个字符如果所有数字垫0,+ 1)分离器下划线字符),,但这种解决方案是混乱的,容易破损。我绝不会推荐它,所以我没有给出它的代码(无论如何,剪掉最后20个字符是微不足道的)。
您可以将date替换为regexp:
$imgNameNoDate = preg_replace('#_d{4}_d{2}_d{2}_d{2}_d{2}_d{2}#', '', $imgName);
但更好的方法是更改数据库以存储原始名称和日期时间信息
虽然我同意评论者的意见,但将时间戳存储在自己的列中会好得多,下面是您具体需要的方法。
$underscorePos = strpos($imageNameFromDB, '_');
if ($underscorePos !== false)
{
$imageNameOnly = substr($imageNameFromDB, 0, $underscorePos);
}
找到了我问题的答案:
当我检索它的时候它会以image_path的名字出现,
$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];
图像名称"abc"将出现在字符串"$ImgOrgName_core"中。
检查…当我这样使用时,我很容易得到答案。