PHP替换csv文件第三栏中的所有值

时间:2019-10-18 07:23:09

标签: php csv

我正在尝试替换csv文件中的某些超链接,如下所示: [https://assets.suredone.com/683987/media-pics/6164307j-gabriel-61643-proguard-steel-shock-absorber-for-select-chevrolet-gmc-models.jpg。这是我的代码:] [1]。这是我的代码:

<?php
$in_file = 'gabriel-images-urls.csv';
$out_file = 'results.csv';

$fd = fopen($in_file, "r");

$new_array= array();
$toBoot= array();

while ($data = fgetcsv($fd)) {
echo '<pre>';
if (strpos($data[2],'media-pics') !== false) {

$data[2]=str_replace('media-pics','media-photos',$data[2]);
fputcsv($fd, $data);
// echo $output;

}

}
?>

例如,新链接必须如下所示:[1] https://assets.suredone.com/683987/media-photos/6164307j-gabriel-61643-proguard-steel-shock-absorber-for-select-chevrolet-gmc-models.jpg。目标是将“媒体图片”子字符串替换为“媒体图片”。此时,文件中没有任何反应。我认为这是因为文件仅打开供读取,但我不确定。

1 个答案:

答案 0 :(得分:0)

您能不能简单地对整个文件进行字符串替换,而不是尝试使用fgetcsv加载和处理文件的每一行?

<?php

    $srcfile='gabriel-images-urls.csv';
    $outfile='results.csv';


    $csvdata=file_get_contents( $srcfile );
    $moddata=str_replace('media-pics','media-photos',$csvdata);

    file_put_contents( $outfile, $moddata );

?>