php在命令行下的输出被sh处理的问题

用php写了一个cli的小程序,写的挺好,突发奇想准备给他做个启动画面(字符画),但是遇到了输出的字符画被sh所处理的的问题!!!!
如下图
图片描述

在09.40.06输出的字符串就不会被sh 所处理了!!!很神奇!为什么?

代码截图如下
图片描述
图片描述
图片描述

阅读 2.4k
2 个回答

这是 $logo 变量使用 `` 符号赋值多行字符串引起的. 在 bash 中, 被 `` 符号包起来的语句会被当做命令来执行. 而你最终是会输出到 shell 的, 当然得遵循这条规则.
解决办法有三:

  1. 不使用 `` 的方式给 $logo 变量赋值. 当然这样太麻烦了...
  2. 把打印用的语句由 echo 改为 print.
  3. 在 $logo 变量赋值时, 首尾添加内容, 使之成为可用的 bash 命令. 如下:
<?php
$logo = `
cat << EOF
1111
22222
33333333
EOF
`;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题