0

我在数据库“FileName”和“UrlFileName”中有两个字段,所以我从无效字符中清理“FileName”以获得新的文件名,例如“FinaleFileName”,所以我的问题是我需要一个简单的代码或函数来更改名称在将我的两个字段存储在数据库中之前,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,那么它不会有任何区别(只要您检查它是否对您的数据库进行了注入攻击)。

话虽如此,为什么要保留两者?为什么不只清理 URLFilename 并仅使用它呢?为什么要加倍信息?

于 2012-08-09T03:26:05.197 回答