首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自csv的PHP file_get_contents()和file_put_contents

来自csv的PHP file_get_contents()和file_put_contents
EN

Stack Overflow用户
提问于 2013-07-09 21:37:34
回答 2查看 3.8K关注 0票数 0

我正在尝试写一个脚本,它将允许一个两列的.csv文件(第一列与名称,第二列与图像urls)被读取,然后将图像保存到我的硬盘驱动器使用第一列作为保存的文件名。我可以保存一些图像(所有文件都已创建,但有些文件缺少数据)。命名约定按照我想要的方式工作,但我需要获取所有文件。有人想看一眼吗?值得一提的是,我使用的是MAMP,但是.csv中的镜像地址都是有效的(我用标签回显了镜像地址,所以我知道它们是有效的)。

代码语言:javascript
复制
<?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/>';
        }

    }
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-09 21:49:46

一些逻辑

代码语言:javascript
复制
$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和他的评论

票数 0
EN

Stack Overflow用户

发布于 2013-07-09 21:55:59

  1. 删除打开php选项卡之前的空格,否则您将获得垃圾空格,并在下载时出现headers already sent错误
  2. 删除结束的php标记,因为它不是必需的,这也有助于防止垃圾空格Why do some scripts omit the closing PHP tag, '?>'?
  3. Use fgetcsv (http://php.net/manual/en/function.fgetcsv.php)获取数据
  4. 使用fputcsv (http://php.net/manual/en/function.fputcsv.php)写入数据<代码>H212<代码>G213
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17549651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档