【问题标题】:Why does PHP print a percent sign when my script is done?为什么我的脚本完成后 PHP 会打印一个百分号?
【发布时间】:2016-02-27 08:28:06
【问题描述】:

当我从 Mac 上的终端以 PHP 运行一个简单的 echo 'Hello World'; 脚本时,我看到行尾出现一个百分号 (%)。

这是为什么?我可以禁用它吗?

~ php -r "echo 'Hello World';"
Hello World%                                          
~ 

从技术上讲,我不是在 bash 中执行此操作,我正在运行 Oh My Zsh,如果这很重要的话。

【问题讨论】:

  • 它不是来自 PHP(至少不是直接)。您的 shell 可能已决定将 EOL 字符显示为百分号。

标签: php macos terminal


【解决方案1】:

这是来自 zsh。

您的输出不会以换行符结束。 Bash 将在您的输出后立即启动 PS1,zsh 打印一个(彩色) % 并自行插入一个换行符。您可以通过自己添加换行符来防止它

php -r 'echo "Hello World\n";'

注意:我切换了 " 和 ',在 php 中 '\n' 会按原样打印,但 "\n" 表示换行。

【讨论】:

  • 认为这是一些 EOL 的事情,但你的解释非常有道理。谢谢!
【解决方案2】:

将此行添加到 .zshrc :

PROMPT_EOL_MARK=''

这对我有用。

详细解释可以去这里:https://superuser.com/a/645612

【讨论】:

  • 我建议不要隐藏它。知道何时在没有新行的情况下输出数据很有用。将'&& echo "" 附加到任何不返回新行的命令也很容易。
【解决方案3】:

最后添加一行来回显 PHP_EOL 也有帮助。

echo PHP_EOL;

Example PHP code

Related output

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多