Как убрать отметку времени и дату из строки - PullRequest
0 голосов
/ 12 июля 2011

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

Метод добавления ....

   $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».

Попробуй ... я легко получаю ответ, когда использую вот так.

Ответы [ 4 ]

0 голосов
/ 13 июля 2011

нашел ответ на мой вопрос:

Во время поиска он будет иметь имя image_path,

$image_path = $rows[0];
$tmp = "_".date('Y');
$ImgOrgName = explode($tmp,$image_path);
$ImgOrgName_core = $ImgOrgName[0];

Имя изображения "abc" будет в строке "$ ImgOrgName_core ".

Проверьте это ... я легко получаю ответ, когда использую вот так.

0 голосов
/ 12 июля 2011

Вы можете заменить дату регулярным выражением:

$imgNameNoDate = preg_replace('#_\d{4}_\d{2}_\d{2}_\d{2}_\d{2}_\d{2}#', '', $imgName);

Но лучший способ - изменить базу данных для хранения оригинального имени и даты и времени.

0 голосов
/ 12 июля 2011

Хотя я согласен с комментаторами, что было бы намного лучше хранить временную метку в ее собственном столбце, вот как сделать именно то, что вы хотите.

$underscorePos = strpos($imageNameFromDB, '_');
if ($underscorePos !== false)
{
    $imageNameOnly = substr($imageNameFromDB, 0, $underscorePos);
}
0 голосов
/ 12 июля 2011

Вы должны сохранить исходное имя изображения и информацию о метке времени в виде отдельных столбцов в базе данных.Таким образом, у вас всегда будет доступ к каждому фрагменту данных, и вы можете объединить их, как в настоящее время, перед вставкой в ​​любое время.

Вы также можете вбить существующий код в представление, просто получив строку исчитая подчеркивания от конца до тех пор, пока не найдете 6-й (в метке времени есть 5, так что 6-й от конца отделяет метку времени от имени), или вы можете просто удалить последние 20 символов из имени с помощью substr (метка времениравен 19 символам, если все числа дополняются нулями, плюс 1 символ для подчеркивания разделителя), , но решение такого типа является грязным и склонным к поломке.Я бы никогда не порекомендовал , поэтому я не даю код для него (и в любом случае, обрезание последних 20 символов тривиально).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...