使用php重命名函数时出现php文件重命名错误
出于某种原因,您正在向使用php重命名函数时出现php文件重命名错误,php,Php,出于某种原因,您正在向$a变量(然后传播到$change)添加一个“换行符”(PHP_EOL)。这会导致重命名失败,因为这不是文件名中允许的字符 基本故障可通过以下方式重现: <?php while($data = mysqli_fetch_array($result)) { $q1="insert into delinked values('".$data[0]."','".$data[1]."','".$data[2]."');"; //inserts
$a
变量(然后传播到$change
)添加一个“换行符”(PHP_EOL
)。这会导致重命名失败,因为这不是文件名中允许的字符
基本故障可通过以下方式重现:
<?php
while($data = mysqli_fetch_array($result))
{
$q1="insert into delinked values('".$data[0]."','".$data[1]."','".$data[2]."');"; //inserts the all the data into delinked
//$result1=mysqli_query($conn,$q1)or die("error");//executes query
$a=basename($data[2]).PHP_EOL;//gets the filename
$change="D".$a; // changes the file in (D_filename format)
$tar="/DATA".$change;
chdir('E:\DATA');
rename($a,$change);
}
?>
要解决您的问题,只需更正行:
$a = "test.tst".PHP_EOL;
$targ = "moved.tst".PHP_EOL;
rename($a, $targ);
/*
Outputs : Warning. No such file or directory
*/
我认为应该是
E:\
而不是E://
参见@WillParky93 windows同时支持这两种功能formats@Yathishb yadava您确定这些卷存在吗?****警告:重命名(E:/DATA/windows.rar,E:/DATA/er.php)$a
是否在末尾包含空格,或者PHP是否添加了空格?是否有理由将PHP_EOL
附加到basename($data[2])。PHP_EOL
与您的问题没有直接关系,但是您的代码对SQL注入和任意代码执行都是开放的,应该在这方面进行修复。您应该将此注释添加到问题中,而不是添加到您自己的答案中。@noam确实,我单击了错误的“添加注释”链接,谢谢
$a=basename($data[2]); //gets the filename