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