这个让我难过。我有两个Windows的Windows安装:32位操作系统上的32位,64位操作系统上的64位。两者都使用Apache 2.2(本机架构),并且都将php作为模块加载。
然后我有一个控制台应用程序(.Net),它输出一行包含其中的东西。通常,它会输出一个单词,如E_INVALID_CREDENTIALS或S_SUCCESS(自定义代码),后跟冒号和随机数据。
我在PHP中使用$e = exec("command")
并解析$e
的输出。但是,我在die($e)
语句之后使用exec
对此进行了测试,如果我使用移动浏览器(iPod touch或Android 2.2),则exec的输出只是第一个单词和冒号,但如果我使用桌面浏览器(Chrome或Firefox),输出就是控制台应用程序打印的完整行。
我已经手动运行命令,甚至打印了PHP正在执行的命令,我认为没有理由截断输出。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
PHP是服务器端,因此如果您没有检查用户的代理和其他客户端信息,则它没有任何连接。
如果你真的得到不同的信息,请确保你的浏览器都使用相同的设置(例如,启用了cookie)
但这完全取决于代码端和代码整体的依赖关系。
也许有可见的东西,但你的CSS或其他东西错了所以它在不同的浏览器上显示不同(?)
答案 1 :(得分:0)
最后。经过几天的调试,我意识到我发送到控制台应用程序的用户名大写为移动浏览器。虽然大写的用户名没有引发错误,但它以其他神秘的方式失败了。我应该早点抓住这个。无论哪种方式,这都是控制台应用程序中的一个深奥的错误,与PHP无关。我仍然责怪手机将我的用户名大写......