我正在编写一个小脚本来帮助我将文件从一个目录复制到另一个目录。我使用的输入来自一个有几百行代码的.txt文件,告诉脚本从哪里复制文件。由于某种原因,它不是逐个读取和编辑文件中的行,而是似乎在整个文件中运行一次,并将所有值加在一起。
示例:echo on $from_location将读取:
http://localhost:8888/copy_images/media_catalog/products/0/6/06-2821.jpg /media_catalog/products/1/1/11-1256.jpg /media_catalog/products/1/1/11-1258.jpg /media_catalog/products/1/1/11-1260.jpg
而不是它应该读的:
http://localhost: 8888/copy_images/media_catalog/产品/0/6/06 - 2821. jpghttp://localhost:8888/copy_images/media_catalog/products/1/1/11-1256.jpg http://localhost:8888/copy_images/media_catalog/products/1/1/11-1258.jpg http://localhost:8888/copy_images/media_catalog/products/1/1/11-1260.jpg
请看这里的脚本:
$handle = fopen("images.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
$from_location = 'http://localhost:8888/copy_images' . $line;
$create_location = str_replace('media_catalog','catalog',$line);
$to_location = 'http://localhost:8888/copy_images' . $create_location;
}
fclose($handle);
} else {
// error opening the file.
}
?>
我想知道我做错了什么,这样我就可以提高我的php前进!
- 尼克
你通过HTML
看到你的结果,所以没有换行,直到你添加<br>
标签。
打印正确:
<?php
$handle = fopen("images.txt", "r");
if ($handle) {
while ( ($line = fgets($handle)) !== false ) {
$from_location = 'http://localhost:8888/copy_images' . $line;
$create_location = str_replace('media_catalog','catalog',$line);
$to_location = 'http://localhost:8888/copy_images' . $create_location;
echo $line . '<br>';
}
fclose($handle);
} else {
// error opening the file.
}
或忽略HTML
渲染,您可以在<?php
之后添加header("Content-Type: text/plain");
。因此,您不需要在echo
的末尾添加<br>
。
欢呼。