PHP Phar文件末尾的无效字符在生产服务器上打印到屏幕,但在本地服务器上不打印

PHP Phar文件末尾的无效字符在生产服务器上打印到屏幕,但在本地服务器上不打印,php,encoding,phar,Php,Encoding,Phar,我用一个定制模块构建了一个Drupal网站,集成了一家名为MemberSuite的公司的功能。MemberSuite的PHP API位于.phar文件中。我对.phar文件没有什么经验,但在我本地的Ubuntu机器上一切都很好 在我将所有内容上传到一个实时服务器后,我在每个页面的顶部都发现了奇怪的字符。将问题跟踪到.phar文件,并在关闭PHP标记后发现乱码: 这不会在我的本地计算机上造成任何问题,但会将以下内容输出到live server: 我认为这与编码有关,但我不是这方面的专家。我试图

我用一个定制模块构建了一个Drupal网站,集成了一家名为MemberSuite的公司的功能。MemberSuite的PHP API位于.phar文件中。我对.phar文件没有什么经验,但在我本地的Ubuntu机器上一切都很好

在我将所有内容上传到一个实时服务器后,我在每个页面的顶部都发现了奇怪的字符。将问题跟踪到.phar文件,并在关闭PHP标记后发现乱码:

这不会在我的本地计算机上造成任何问题,但会将以下内容输出到live server:

我认为这与编码有关,但我不是这方面的专家。我试图删除.phar文件末尾的字符,但由于对.phar文件进行了哈希/安全检查,因此导致了一个致命错误

是否有一个简单的PHP配置设置可以使.phar文件在一台服务器上工作而不是在另一台服务器上工作?

  • 它不是BOM表,只是在文件的开头
  • Phar文件是归档文件,其中有标记,用于确定Phar中文件的开始和结束。你看到的就是这样一个
  • 它在一台服务器上工作而不在另一台服务器上工作通常是版本冲突。在服务器和本地计算机上检查PHP版本。本地的价格可能会更高。
    • 降级您的本地PHP版本,您可能能够重现错误
    • 将PHP版本与membersuite api phar文件的推荐/最低版本进行比较
  • 或者,提取phar并直接使用这些文件

如果您是通过FTP上传,请选中binary/ascii复选框,因此传输应该是“binary”而不是ascii/text对不起,UTF-8 BOM超出了我的权限。以下是Github中有问题的文件: