cómo insertar valor en una ubicación particular en un archivo csv usando php

¿Es posible escribir en una ubicación particular en un archivo CSV usando PHP?

No quiero agregar datos al final del archivo CSV. Pero quiero agregar datos al final de una fila que ya tienen valores en el CSV.

gracias por adelantado

Hay que ir Código de trabajo completo:

< ?php //A helping function to insert data at any position in array. function array_insert($array, $pos, $val) { $array2 = array_splice($array, $pos); $array[] = $val; $array = array_merge($array, $array2); return $array; } //What and where you want to insert $DataToInsert = '11,Shamit,Male'; $PositionToInsert = 3; //Full path & Name of the CSV File $FileName = 'data.csv'; //Read the file and get is as a array of lines. $arrLines = file($FileName); //Insert data into this array. $Result = array_insert($arrLines, $PositionToInsert, $DataToInsert); //Convert result array to string. $ResultStr = implode("\n", $Result); //Write to the file. file_put_contents($FileName, $ResultStr); ?> 

No, no es posible insertar nuevos datos en medio de un archivo, debido a la naturaleza del sistema de archivos.
Solo añadir al final es posible.

Por lo tanto, la única solución es crear otro archivo, escribir una parte inicial de la fuente, agregar un nuevo valor y luego agregar el rest del archivo fuente. Y finalmente renombrar un archivo resultante a nombre original.

Técnicamente, la respuesta del Coronel Shrapnel es absolutamente correcta.

Su problema es que no desea tratar todas estas operaciones de archivos solo para cambiar algunos datos. Estoy de acuerdo contigo. Pero estás buscando la solución en un nivel equivocado. Pon este problema en un nivel más alto. Cree un modelo que represente una entidad en su base de datos CSV. Modifique el estado del modelo y llame a su método save() . El método debe ser responsable de escribir el estado de su modelo en formato CSV.

Sin embargo, puede usar una biblioteca CSV que resum operaciones de bajo nivel para usted. Por ejemplo, parsecsv-for-php le permite apuntar a una celda específica:

 $csv = new parseCSV(); $csv->sort_by = 'id'; $csv->parse('data.csv'); # "4" is the value of the "id" column of the CSV row $csv->data[4]['firstname'] = 'John'; $csv->save();