繁体   English   中英

PHP输出问号

[英]PHP outputs question marks

我正在日本的服务器上部署应用程序。 该应用程序是我公司销售的产品,并且已成功安装在许多其他服务器上,而没有出现此类问题。 该应用程序是用PHP / CodeIgniter编写的,并且该软件包已在其他服务器上成功测试。

问题是-应用程序仅显示一些问号(然后它死于一个错误,即找不到相同的类,尽管相同的代码在其他服务器上也可以工作)。 某些应用程序文件使用Zend Guard编码-Zend Optimizer在两台服务器上均可用。 我尝试过/发现的内容:1)两台服务器上的主要PHP版本相同-5.2.x

2)Zend Optimizer版本相同-3.3.9

3)问号实际上是问号-使用wget将输出通过管道传递到文件,然后在HEX编辑器中将其打开-该文件主要包含3F,其中一些随机HEX符号在:

0000000: 3f3f 3f3f 3f3f 3f3f 3f3f 3f01 3f3f 3f3f  ???????????.????
0000010: 3f3f 3f3f 3f3f 3f3f 3f3f 203f 3f3f 3f3f  ?????????? ?????
0000020: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000030: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000040: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000050: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000060: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000070: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000080: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000090: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000a0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000b0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000c0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000d0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000e0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
00000f0: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000100: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000110: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000120: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????
0000130: 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f 3f3f  ????????????????

4)应用程序死于某个点,此时尚未发送任何输出。

5)我怀疑问题与PHP设置有关-到目前为止,我已经尝试在php.ini中将default_charset设置为'utf-8',但这并没有改变。

6)到应用程序崩溃的预期输出应该为空-根本没有输出。 相反,我得到了上面的输出(它以这种方式继续进行)。

编辑:我想我到了某个地方-Zend Optimizer出现了问题。 替换编码文件很有帮助,并且输出符合预期。 这就产生了另一个问题-如何判断Zend Optimizer有什么问题? 编码文件在使用相同版本的Zend Optimizer的不同服务器上进行了测试,并且运行良好。 PHP版本在可以正常工作的服务器上为5.2.14,而在编码文件无效的服务器上为5.2.13。

转到相关文件的第一行,并添加echo 'flag1'; 转到第一个include()并添加echo 'flag2'; 之后。 对于每个include()继续操作,并在文件末尾再添加一个。 这将告诉您问号在哪里开始,您可以四处移动问号,直到找到确切的来源为止。

如果此过程将您带入CodeIgniter库,则可能是其代码中的错误,您必须将其与它们一起使用。

php.ini中:

zend_optimizer.enable_loader=0

该错误是足够神秘的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM