Hola, soy relativamente nuevo en PHP y estaba tratando de reemplazar una fila en un archivo csv, no encontré una solución óptima, así que inventé un script (una solución alternativa) que se adapta a mis necesidades por el momento hasta que entiendo mejor PHP
Lo probé en mi localhost usando XAMPP y todo funcionaba bien, estaba reemplazando la fila según lo previsto, pero cuando cargué los archivos en mi cpanel dejó de reemplazarse y, en cambio, sigue la ruta normal y escribe la fila en una nueva línea.
este es mi codigo:
$fileName = 'Usecase.csv'; //This is the CSV file $tempName = 'temp.csv'; $inFile = fopen($fileName, 'r'); $outFile = fopen($tempName,'w'); while (($line = fgetcsv($inFile)) !== FALSE) { if(($line[0] == "$fin") ) //Here I am checking the value of the variable to see if same value exists in the array then i am replacing the array which will be later written into the csv file { $line = explode (",", "$tempstr10"); $asd=$asd+1; //this is the variable that i defined and assigned value 0 in the top most section, this is used later in the code } fputcsv($outFile, $line ); } fclose($inFile); fclose($outFile); unlink($fileName); rename($tempName, $fileName); if( $asd==0 && filesize("Usecase.csv")>0) // here its checking if the value is 0 , if value is 0 then that means the above code didnt execute which means the value wasnt present in the file , this is to avoid writing the same string again into the file { file_put_contents("Usecase.csv", "$tempstr10\r\n",FILE_APPEND | LOCK_EX); } if( $asd==0 && filesize("Usecase.csv")==0) { file_put_contents("Usecase.csv", "$tempstr10\r\n",FILE_APPEND | LOCK_EX); }y como mencioné anteriormente, está funcionando en el localhost pero no en el cpanel, ¿alguien puede señalar si algo está mal con el código? o si es otra cosa? gracias
El problema más probable es que su versión local de PHP o su configuración local de PHP sea diferente de la que hay en el servidor.
Por ejemplo, fopen es una función que se puede desactivar en algunos servidores compartidos.
Puede verificar esto creando un archivo php con los siguientes contenidos:
<?php phpinfo();Luego visite ese archivo PHP en su navegador. Haga esto tanto para su entorno de desarrollo local como para su servidor cPanel para comparar la configuración e identificar las diferencias que pueden estar contribuyendo al comportamiento diferente.
También debe comprobar los registros de errores. Se pueden encontrar en varios lugares diferentes dependiendo de cómo su proveedor de alojamiento haya configurado las cosas. Si no puede encontrarlos, deberá preguntarle a su proveedor de alojamiento para saber con seguridad dónde están los registros de errores.
Las ubicaciones típicas son:
find $PWD -name error_log~/logs/yourdomain_tld.php.error.logTambién debería considerar activar el informe de errores para la secuencia de comandos poniendo esto en la parte superior. Tenga en cuenta que esto solo debe usarse temporalmente mientras está depurando activamente la aplicación. Dejar este tipo de salida de depuración activada podría exponer detalles sobre su aplicación que pueden provocar riesgos de seguridad adicionales.
<?php ini_set('display_startup_errors', 1); error_reporting(E_ALL); ... Your code here ...