Server is running PHP5.3. I found the problem by commenting out code until the page run. When I first loaded the page I got no output with no errors.
I set error reporting to:
error_reporting(E_ALL^E_NOTICE);
ini_set('display_errors', 1);
Note: Notices need to be disabled because the system is old and was originally poorly written (something we are resolving now bit by bit)
The line which stopped the script running without errors was this one.
<?php echo explode('cms/', pageURL())[0]?>
This works fine in PHP5.4. It is fine that 5.3 doesn't support this but why doesn't an error display? What is it about this precisely which makes it so difficult to debug? This has happened once or twice for various problems and it would be good to have a better understanding of the underlying issue.
Is it possible to get errors to show on 5.3 with this problem?
Error reporting is working on the server.
poop();
Returns
Fatal error: Call to undefined function poop()
EDIT: While updating the code a failed at editing and had a line which contained this:
$parts = echo explode('cms/',pageURL());
This caused the same problem. No output, no errors. The script just fails.