$config['max_url_length']) { respondAndExit(400, 'Bad Request'); } $urls = file($config['path_to_file'], FILE_IGNORE_NEW_LINES); // Remove requested url from list if present. $remaingUrls = array_diff($urls, [$requestedUrl]); // Count will not have changed if requested url doesn't exist in the list. if (count($remaingUrls) === count($urls)) { respondAndExit(404, 'Not Found'); } if (!file_put_contents($config['path_to_file'], implode("\n", $remaingUrls))) { respondAndExit(500, 'Internal Server Error'); } respondAndExit(308, 'Permanent Redirect', ["Location: $requestedUrl"]);