Я пытаюсь сохранить имена файлов изображений в базе данных SQL. Имя файла выглядит примерно так: «_p4_analyzed__07001447_20121003-4000096925_Class2_reg_EPI.png», и я надеялся, что это будет просто «Class2_reg_EPI.png».Функция PHP для сокращения строк каталога файлов
Я надеялся, что эта линия будет делать трюк: $fileName = str_ireplace($casePath."/","", $file)
но, к сожалению, когда я запускаю его он по-прежнему дает мне длинное имя с путем («_» подчеркивание действует как «/»?)
См ниже код для получения дополнительной информации:
$casePath=$path."/".$caseID."/Summary/slicesdir";
global $status;
// print("processImages case path:".$casePath."</br>");
$files = glob($casePath."/*.png");
$connection = getMySqlConnection();
$imageCount= 0;
for($i = 0; $i < count($files); $i++) {
$file = $files[$i];
$fileName = str_ireplace($casePath."/","", $file);
if(strripos($fileName, "grot") === false)
{
$imageCount ++;
//if exists
if(!doesImageExist($fileName, $patientID, $caseID)) {
$id = uniqid("", true);
$sql = "Insert Into images(id,patientid,caseid, image_name,comments,status) VALUES('".mysql_real_escape_string($id)
."','".mysql_real_escape_string($patientID)."','".mysql_real_escape_string($caseID)."', '".mysql_real_escape_string($fileName)."',NULL,".$status[0][0].")";
// print($sql."</br>");
mysql_query("START TRANSACTION", $connection);
$result = mysql_query($sql, $connection);
if($result) {
mysql_query("COMMIT", $connection);
// print("Image data inserted </br>");
} else {
mysql_query("ROLLBACK", $connection);
print("Image Data failed </br>");
}
}
}
}
Любая помощь приветствуется! Заранее спасибо!
@alchuang. , , Почему этот помеченный SQL? –
Вам нужно выбрать/определить шаблон, что вы ожидаете и нужный результат. Таким образом, вы можете использовать regex для переименования ваших файлов. – HamZa
Если вы помещаете другое имя в базу данных, чем фактическое имя файла, как вы сможете получить доступ к файлу позже? – Barmar