Pregunta

En mi script PHP, después de analizar una cadena, necesito escribir algunos datos en un archivo (después de crearlo si no existe).Antes de escribir archivo, necesito una cerradura exclusiva para evitar problemas. Este es mi código:

foreach ($elements[0] as $current) {
    $file_handler = fopen($my_folder . "/" . $current . ".txt", "a");
    $locked = flock($file_handler, "LOCK_EX");
    while (!$locked) {
        usleep(500000);
        $locked = flock($file_handler, "LOCK_EX");
    }
    //got lock
    fwrite($file_handler, $mystring . "\n");
    //release lock
    flock($file_handler, LOCK_UN);
    fclose($file_handler);
}
return;

Ahora, algo parece no funcionar. FOPEN CREATE FILE, PERO MI CÓDIGO PARECE INTERIOR INTERIOR EN EL INTERIOR Si (se crea el archivo, pero nada estaba escribiendo dentro).¿Qué pasa?

¿Fue útil?

Solución

Está pasando el argumento para bloquear como una cadena en lugar de una constante.

intento:

$locked = flock($file_handler, LOCK_EX);

Observe las comillas dobles que faltan alrededor de lock_ex

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top