Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php重命名在文件名周围添加双引号_Php_Image_Rename_Jpeg_Double Quotes - Fatal编程技术网

php重命名在文件名周围添加双引号

php重命名在文件名周围添加双引号,php,image,rename,jpeg,double-quotes,Php,Image,Rename,Jpeg,Double Quotes,我试图在一个目录中重命名一些JPEG。代码的一半工作原理是使用正确的文件名重命名它们,但由于某些原因,新文件名被双引号包围,这使得它们无法从我的网页访问 感谢您的帮助 $i = 10000; foreach ($imgArray as $v) { $html_file_name = basename($v).PHP_EOL; $html_file_name = str_replace(range(0,9),'', $html_file_name); $path =

我试图在一个目录中重命名一些JPEG。代码的一半工作原理是使用正确的文件名重命名它们,但由于某些原因,新文件名被双引号包围,这使得它们无法从我的网页访问

感谢您的帮助

$i = 10000;

foreach ($imgArray as $v) {

    $html_file_name = basename($v).PHP_EOL;
    $html_file_name =  str_replace(range(0,9),'', $html_file_name);

    $path = pathinfo($v, PATHINFO_DIRNAME);

    $target = ++$i . $html_file_name;

    rename ($v, $path . '/' . $target);

}
好的,这里是var_转储($imgArray):

序列化:

a:3:{i:0;s:47:"../img/gallery/this-is-the-first/10002-vddf.jpg";i:1;s:51:"../img/gallery/this-is-the-first/10001-vfdssddf.jpg";i:2;s:50:"../img/gallery/this-is-the-first/10003-vddsvsf.jpg";}

文件名中有新行问题

  $html_file_name = basename($v).PHP_EOL;
                                    ^-------- Appending End of Line to File Name
你所需要的只是

$i = 10000;
foreach ($imgArray as $v) {
    rename($v, pathinfo($v, PATHINFO_DIRNAME) . '/' . (++$i . str_replace(range(0,9),'',  basename($v))));
}

i gues u可以使用str.replace(“,“\”$string);您的代码没有包含导致这种现象的原因。我考虑过这一点,但我想知道为什么它首先要使用双引号,如果我不知道为什么我可以实现一个更好的solution@PeeLee:字符串
$html\u file\u name
可能包含此类引号。因此,您需要删除它们,或者更好,不要删除首先把它们放在那里。改进你的HTML解析。
$imgaray
看起来像什么?…这就是罪魁祸首。谢谢宝贝欢迎你@Pee Lee
$i = 10000;
foreach ($imgArray as $v) {
    rename($v, pathinfo($v, PATHINFO_DIRNAME) . '/' . (++$i . str_replace(range(0,9),'',  basename($v))));
}