jQuery ajax php重命名文件名的一部分

在前端,我提供用户重命名他的任何图像。 这是通过javascript提示来获取新名称,jQuery ajax和php。 重命名文件时,它必须对2个文件生效,如下面的链接所示。 url中的 1 </ code>是动态的。 这是用户ID。 问题是我只想替换文件名中的 product </ code>而不是它之后的 _1317804260 </ code>。 在第二个链接中,我们在文件名前面有 thumb _ </ code>。 所以我们再次只想用新的重命名替换 product </ code>。 在这方面工作,似乎我需要多次使用explode()才能完成工作。 有没有更简单的方法来做到这一点。 </ p>

 <代码> http://domain.com/userfiles/1/images/product_1317804260.gif
http://domain.com/userfiles/1/images/thumbnails/thumb_product_1317804260。 gif
</ code> </ pre>

所以基本上如果新名称是 newname </ code>,文件的最终输出应该是</ p>

< pre> newname_1317804260.gif
thumb_newname_1317804260.gif
</ code> </ pre>
</ div>

展开原文

原文

In the frontend i offer the user to rename any of his images. This is done via javascript prompt to get the new name, jQuery ajax and php. When file is renamed it must take effect on 2 files as you see in the links below. 1 in the url is dynamic. It's the user id. The thing is i only want to replace the product in the filename and not the _1317804260 that comes after it. In the second link we have thumb_ in front of the file name. So again we only want to replace the product with the new rename. Working on this, it Seems like i need to use explode() many times to get the job done. Is there an easier way to do this.

http://domain.com/userfiles/1/images/product_1317804260.gif
http://domain.com/userfiles/1/images/thumbnails/thumb_product_1317804260.gif

So basically if a new name is newname the final output of the file should be

newname_1317804260.gif
thumb_newname_1317804260.gif

duandong9195
duandong9195 最后一部分没问题
大约 9 年之前 回复
duanbi7204
duanbi7204 您希望结果包含整个URL还是仅包含最后一部分?
大约 9 年之前 回复

2个回答



  $ oldName =“http://domain...product_userid.gif”; 

$ newName =“ 用户输入的内容“;

$ parts = explode('/',$ oldName);
$ user_path = $ parts [3]。 '/'。 $份[4]; //它将包含userfiles / 1

$ parts = explode(“_”,$ oldName);

$ product_name = $ new_name。 “_”。 结束($ parts);
$ thumb_name =“thumb_”。 $ product_name;
</ code> </ pre>
</ div>

展开原文

原文

$oldName = "http://domain...product_userid.gif";

$newName = "what the user entered";

$parts = explode('/', $oldName);
$user_path = $parts[3] . '/' . $parts[4]; // it will contain userfiles/1

$parts = explode("_", $oldName);

$product_name = $new_name . "_" . end($parts);
$thumb_name   = "thumb_" . $product_name;

dongmo9996
dongmo9996 我用这个信息更新了我的答案。 这就是我之前问过你的原因,如果你只需要最后一部分或更多。
大约 9 年之前 回复
doulin9679
doulin9679 这会奏效。 但在这种情况下,我还需要来自url / userfiles / 1 /。 有什么好办法可以做到这一点
大约 9 年之前 回复



JS:</ p>

  var tmpName =“product_1317804260.gif”.split(“  “)
var newName =”newname“+”
“+ tmpName [1]
</ code> </ pre>

PHP:</ p>

 <  code> $ tmpName = explode(“_”,“product_1317804260.gif”); 
$ newName =“newname”。 “_”。 $ tmpName [1];
</ code> </ pre>
</ div>

展开原文

原文

JS:

var tmpName = "product_1317804260.gif".split("_")
var newName = "newname" + "_" + tmpName[1]

PHP:

$tmpName = explode("_", "product_1317804260.gif");
$newName = "newname" . "_" . $tmpName[1];

dongzhan1570
dongzhan1570 警报($ x.split(“/”)[0])=“1”对我来说
大约 9 年之前 回复
douhuo0884
douhuo0884 即使我把[1]它仍然不起作用。
大约 9 年之前 回复
duanqiang2977
duanqiang2977 元素零出现在第一个斜杠之前,它是空的。
大约 9 年之前 回复
duanji7881
duanji7881 谢谢,在这种情况下,我还需要获得部分路径。 我试过像这样分裂,但它不起作用。 这是为什么 。 var $ x ='/ 1/images/Oil_and_gas_icon.gif'; 警报($ x.split( “/”)[0]);
大约 9 年之前 回复
duanlie7962
duanlie7962 然后使用tmpName [tempName.length]
大约 9 年之前 回复
dongruan6001
dongruan6001 什么是文件名包含很多下划线。 我们如何告诉它寻找最后一个。
大约 9 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问