我想使用php的xpdf转换器将pdf文件转换为文本文件。 问题是文件名是文件(1).pdf,文件(2).pdf ...括号是问题.XPDF无法用括号读取文件名。所以我想将名称更改为file1.pdf,file2 .pdf ....(删除括号) 我试图在php中以各种可能的方式使用rename()进行转义,但仍然会遇到两个错误
=系统找不到路径代码2 =目录,文件,卷语法错误或其他...代码123
请有人帮助我。我想用PHP本身来做。
我使用的是......for($i=1;$i<=$_POST['number'];$i++)
{
$filen2="\"d:/res/file(".$i.").pdf\"";
$file="\"d:/res/files".$i.".pdf\"";
rename($filen2,$file);
echo "converting file ".$filen2."<br/>";
shell_exec("D:/xpdf/bin32/pdftotext.exe $file");
}
和...
for($i=1;$i<=$_POST['number'];$i++)
{
$filen2="\"d:\\res\\file(".$i.").pdf\"";
$file="\"d:\\res\\files".$i.".pdf\"";
rename($filen2,$file);
echo "converting file ".$filen2."<br/>";
shell_exec("D:/xpdf/bin32/pdftotext.exe $filen2");
}
现在我尝试重命名()没有括号的文件...仍然无法正常工作......可能是什么错误?XPDF为没有支架的文件工作没有任何问题
答案 0 :(得分:3)
使用:
$filename = preg_replace('@\(\d+\)(\.[^.]+)$@isuDUX', '$1', $filename);
答案 1 :(得分:1)
我解决了这个问题。实际上问题出在我的Windows上。其中有af *****病毒导致我无法访问改变PATH变量,打开控制面板等的推荐操作...现在我重新安装Windows并且每件事都像预期一样有效..
rename()的语法是rename(<path to file>,<path to the same file with new name>);
例如将D:\res\file(1).pdf
重命名为file1.pdf
我使用了以下代码rename('D:/res/file(1).pdf','D:/res/file1.pdf');
。它运行得非常好。我也试过rename('D:\\res\\file(1).pdf','D:\\res\\file1.pdf');
它也运行良好。希望我早些时候重新安装Windows。