如何移除行尾\n并保留文件换行?FastCGI请求技术问题
问题描述
我通过FastCGI请求PHP文件后,返回的输出中包含转义的换行符,需要正确处理这些内容:
简单场景的情况
我的PHP代码如下:
<?php echo "First file"; ?>
FastCGI请求后的输出为:
Ok("X-Powered-By: PHP/8.1.11\r\nContent-type: text/html; charset=UTF-8\r\n\r\nFirst file")
我最初用正则提取\r\n\r\n后的内容,这种方式在简单场景有效,但遇到复杂PHP文件时就失效了。
复杂场景的问题
当使用包含HTML结构的PHP文件时:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> </body> </html> <?php echo "PHP file"; header("Location: form.php"); ?>
FastCGI请求后的输出为:
Ok("Status: 302 Found\r\nX-Powered-By: PHP/8.1.11\r\nLocation: form.php\r\nContent-type: text/html; charset=UTF-8\r\n\r\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Document</title>\n</head>\n<body>\n \n</body>\n</html>\nPHP file")
可以看到输出里的HTML部分每个换行都带\n转义字符,直接在浏览器展示无法达到预期效果,而且正则表达式没法批量处理。我需要移除这些\n转义字符,同时保留HTML代码本身的换行结构,避免HTML文件因无换行而难以维护。
内容的提问来源于stack exchange,提问作者DFG
相关产品推荐
相关产品推荐

