0

データベースに「FileName」と「UrlFileName」の2つのフィールドがあるので、「FileName」を無効な文字からサニタイズして、「FinaleFileName」などの新しいファイル名を付けます。私の質問は、名前を変更するための簡単なコードまたは関数が必要です。私の両方のフィールドをDBに保存する前のURLのファイルの例:

$FileName = "NaMeoFImagE-10.jpeg"
$UrlFileName = "uploads/pics/NaMeoFImagE-10.jpeg"
....
//I had created a function to remove or replace a invalid character //Ok

$FinaleFileName= nameofimage-10.jpeg

.....

A function to replace a File name in URL // Not OK

$FinaleUrlFileName = "uploads/pics/nameofimage-10.jpeg"// Im looking for this result 

何か案が?

4

3 に答える 3

2

あなたが何を求めているのかわかりませんが、テストケースに基づいて、あなたは探していると思いますstrtolower

于 2012-08-09T03:26:48.423 に答える
0

これがあなたが望むものであるかどうかはわかりませんが、それに加えて、これは手っ取り早い解決策です。

    <?php

         $FileName = "nameofimage-10.jpeg";  //your sanitized file name
         $UrlFileName = "uploads/pics/NaMeoFImagE-10.jpeg";  //unclean URl

 $parts = explode("/", $UrlFileName);
 $name = $parts[ count($parts) - 1] ;
 $name = $FileName;
 $final = "";  //final cleaned URL

 for($i = 0; $i < count($parts) - 1; $i++)
 {
    $final .= $parts[$i] . "/";
 }
 $final .= $name;

  echo $final  //return the clean URL;
?>

これは、あなたの望むことですか ?

于 2012-08-09T03:41:27.023 に答える
0

を使用URLfilenameして検索する場合finalFilenameは、はい、それらは同じである必要があります。そうでない場合、ファイルが見つかりません。URLFileName が URLFileName の検索にのみ使用される場合は、違いはありません (DB へのインジェクション攻撃をチェックする限り)。

そうは言っても、なぜ両方を保持するのですか?URLFilename をクレンジングして、それだけを使用しないのはなぜですか? なぜ情報を倍増させるのですか?

于 2012-08-09T03:26:05.197 に答える