L-codes / Neo-reGeorg

Neo-reGeorg is a project that seeks to aggressively refactor reGeorg
GNU General Public License v3.0
2.89k stars 446 forks source link

php文件部分环境下载最后可能存在空行 #51

Closed Hi-Mike closed 2 years ago

Hi-Mike commented 2 years ago

Linux下clone 生成的php脚本最后会有一行空行 导致没有数据时总是返回 '\n' 去掉最后的空行或者让脚本不闭合就可以了

L-codes commented 2 years ago

我测试了一下 php 的环境下,没有数据的时候,会返回 Content-Length: 0 ,没有 response body 存在 '\n' 的情况,可以提供截图说明吗?

Hi-Mike commented 2 years ago

image php脚本 image 数据读取时打印

L-codes commented 2 years ago

可是我在模板php中并没有发现末尾有空行,且generate生成的也并无末尾空行,是否你使用了vim等编辑保存了? https://github.com/L-codes/Neo-reGeorg/blob/e69b639eda0cc76b25ed493914677c644c9ad3a1/templates/tunnel.php#L165

Hi-Mike commented 2 years ago

我直接生成后 用vscode打开的 所以其他人应该也有这种情况

L-codes commented 2 years ago

你打开了之后保存的 直接生成应该是没有的

Hi-Mike commented 2 years ago

实际上 github下载及大多数编辑器会默认在文件最后添加一个换行 但是都不是重点 关键在于 我认为应该排除风险 引用php官方说法 https://www.php.net/manual/zh/language.basic-syntax.phptags.php

如果文件内容仅仅包含 PHP 代码,最好在文件末尾删除 PHP 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白,而脚本中此时并无输出的意图。

L-codes commented 2 years ago

你的gitlab下载命令可以发我看看吗? 另外 这种风险应该怎么避免?

Hi-Mike commented 2 years ago

直接删除php的闭合

?>

即可

L-codes commented 2 years ago

会不会存在兼容性问题?php几开始才支持?

Hi-Mike commented 2 years ago

最早可追溯至php4的文档 具体版本就不是很清楚了

L-codes commented 2 years ago

OK php4都支持的话 我后续添加该建议到下个版本发布 感谢:)

L-codes commented 2 years ago

直接 clone 可以获取到 3.8.0 的预览版,已参考该建议,修复这个问题