我有一个bash脚本,我通过命令行运行:
./script.sh var1 var2
Run Code Online (Sandbox Code Playgroud)
在我调用某个php文件之后,我正在尝试执行上面的命令.
我现在拥有的是:
$output = shell_exec("./script.sh var1 var2");
echo "<pre>$output</pre>";
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我尝试过使用exec
和system
太,但剧本从来没有得到执行.
但是当我尝试运行shell_exec("ls");
它确实有效并且$output
是所有文件的列表.
我不确定这是因为我正在使用的VPS的限制还是问题是否在其他地方?
我终于设法建立了UPS发货XML请求,我想与其他苦苦挣扎的人分享.因此,根据2017年的最新文档,这是一个完整的PHP面向对象的有效XML.
我这样做是因为互联网上没有很多有用的信息,我想改变它.
此代码还解决了许多常见错误,您可以在StackOverflow上找到这些错误,但大多数情况下没有答案.这不是一个问题,它是未来将要进行UPS发货的人的教程.
我已经设法用我的代码解决了这些常见的UPS错误:
XML文档格式不正确 - >这个错误有点棘手,因为我已经检查了我的XML结构一千次,并且我有100%与文档说的相同但是我有一个旧文档因此很少有东西被改变所以当我重新构建了最新的结构,解决了问题.
XML文档格式正确,但文档无效 - >我真的不知道到底是什么导致了这个错误,但改变了"发送逻辑"有点解决了它(你可以看一下XML结构的结尾如何完成).
在我解决了这两个"最大"错误之后,UPS请求开始工作,并且正在发出正确的错误消息,说明有关错误的更多详细信息......例如"AccessLicenseNumber无效"等等
所以你要做的第一件事就是在UPS网站上注册并从那里下载最新的文档.
注意:此代码发送第一个请求"ConfirmRequest",它将获得响应"ConfirmResponse",第二个请求称为"AcceptRequest",根据下图显示"AcceptResponse"!