我正在尝试替换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。目标是将“媒体图片”子字符串替换为“媒体图片”。此时,文件中没有任何反应。我认为这是因为文件仅打开供读取,但我不确定。
答案 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 );
?>