Php 如何更改URL中的文件名

Php 如何更改URL中的文件名,php,Php,我在数据库中有两个字段“FileName”和“UrlFileName”,因此我将“FileName”从无效字符中清除,以获得一个新的文件名,例如“FinalFileName”,因此我的问题是,我需要一个简单的代码或函数来更改URL中的文件名,然后再将这两个字段存储在数据库中,例如: $FileName = "NaMeoFImagE-10.jpeg" $UrlFileName = "uploads/pics/NaMeoFImagE-10.jpeg" .... //I had created a f

我在数据库中有两个字段“FileName”和“UrlFileName”,因此我将“FileName”从无效字符中清除,以获得一个新的文件名,例如“FinalFileName”,因此我的问题是,我需要一个简单的代码或函数来更改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 

有什么想法吗?

如果您要使用
URLfilename
搜索
finalFilename
,那么是的,它们必须相同,否则您将找不到您的文件。如果URLFileName只用于搜索URLFileName,那么它不会有任何区别(只要您检查它是否存在对数据库的注入攻击)


既然如此,为什么两者都保留?为什么不清理URLFilename并仅使用它呢?为什么要将信息加倍?

我不确定我是否理解您的要求,但根据您的测试用例,我认为您正在寻找。

我不确定这是否是您想要的,此外,这是一个快速而肮脏的解决方案

    <?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;
?>


这是您想要的吗?

什么是无效的文件名字符?