The Notes section in the function documentation of ignore_user_abort() suggest that PHP cannot detect that a user has aborted the request if no data is sent to the client. This is true for the function connection_status()
, too. Unfortunately, I need to detect a user abort (an ajax request that can be cancelled) on a page which makes use of output buffering (and I cannot change that easily.)
Is there any other way of detecting a user abort except using the function
connection_status()
? Or any specific way to make that function return the correct value? PHP should actually know that the request was aborted, since a FIN
packet is received from the client.
I have already tried analyzing the stream metadata of php://input
, php://output
, php://stdin
and php://stdout
after reading/writing data in a blocking and non-blocking manner before and after the connection was aborted, but that didn't provide any useful state changes.