我正在尝试写一个脚本,它将允许一个两列的.csv文件(第一列与名称,第二列与图像urls)被读取,然后将图像保存到我的硬盘驱动器使用第一列作为保存的文件名。我可以保存一些图像(所有文件都已创建,但有些文件缺少数据)。命名约定按照我想要的方式工作,但我需要获取所有文件。有人想看一眼吗?值得一提的是,我使用的是MAMP,但是.csv中的镜像地址都是有效的(我用标签回显了镜像地址,所以我知道它们是有效的)。
<?php
//header('Content-Description: File Transfer');
//header('Content-Disposition: attachment; filename ='
//Eli's 2 column CSV grab-n-save file
$file = 'Random.csv'; //put file path of .csv here
$buffer = file_get_contents($file);
//print_r($buffer);
$pattern = '/[,\n]/';
$catch = preg_split($pattern, $buffer);
$keep_track = 0;
foreach($catch as $value)
{
if ($keep_track%2 == 0)
{
//if first column is sku
$name = $value;
$keep_track += 1;
}
elseif ($keep_track %2 == 1)
{
//if an image
$name = str_replace(' ', '',$name);
//Change pathname to MAMP specs
$name2 = '/Applications/MAMP/htdocs/picturegrab' . $name . '.jpg';
file_put_contents($name2, file_get_contents($value), FILE_APPEND);
//echo $value . '<br/>';
$keep_track += 1;
echo $name2 . '<br/>' . '<img src='.$value.'><br/>';
}
}
?>发布于 2013-07-09 21:49:46
一些逻辑
$file = fopen('Random.csv');
$dir = '/Applications/MAMP/htdocs/picturegrab/';
while (list($name, $img_link) = fgetcsv($file)) {
$name = str_replace(" ", "", $name);
copy($img_link, $dir.$name.'.jpg');
}更新了我的示例,使其更具响应性
也感谢Sam Green和他的评论
发布于 2013-07-09 21:55:59
headers already sent错误https://stackoverflow.com/questions/17549651
复制相似问题