0

画像ファイル名を SQL データベースに保存しようとしています。ファイル名は「 _p4_analyzed__07001447_20121003-4000096925_Class2_reg_EPI.png 」のようなもので、「Class2_reg_EPI.png」になることを望んでいまし

私はこの行がうまくいくことを望んでいました:$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>");
                }
            }
        }
    }

どんな助けでも大歓迎です!前もって感謝します!

4

1 に答える 1

1

元のファイル名にパス情報 ( など/path/to/the/file.png) が含まれていて、ファイル名 ( file.png) のみが必要な場合は、次のコマンドを使用してパスを削除できます。basename()

$filename = basename('/path/to/file.png');

echo $filename; // outputs 'file.png'
于 2013-05-07T21:15:41.547 に答える