【发布时间】:2015-06-12 04:58:03
【问题描述】:
我的 php ssh 脚本的输出有问题。我有这个脚本
$ssh->read('/.*@.*[$|#]/', NET_SSH2_READ_REGEX);
$ssh->write("$domainpath\n");
$ssh->setTimeout(5);
$ssh->read('/.*@.*[$|#]/', NET_SSH2_READ_REGEX);
$ssh->write("ls \n");
$domainlist = $ssh->read(NET_SSH2_READ_REGEX);
echo $domainlist;
问题不在于没有推出任何东西,而在于它的呈现方式。
ls [0m[00;33myourdomain.net[0m [00;33mdefault.domain[0m [00;33mtestdomain.com[0m [m[root@vps web]#
如您所见,我从服务器返回的文件夹看起来很奇怪而且很糟糕,无法加载到数组中。
我如何获得干净漂亮的输出。还是这个控制面板相关?如果有这种情况并且我可以更改它,我可以使用爆炸来清理它。
谢谢
【问题讨论】:
-
这很可能是一个损坏的
ls别名。听起来ls被别名为ls --color=always而不仅仅是ls --color或类似名称。您可以尝试ls --color=never来弥补这一点,但要修复别名/等。可能是更正确的方法。 -
@EtanReisner 如果使用系统或者他需要直接通过 SSH 登录,则更改别名可能不是首选。通过 PHP 命令不指定颜色或仅更改 PHP 用户的别名似乎是最好的。如果我必须通过 SSH 登录,我知道我喜欢我的颜色。
-
但我怎样才能让它不把它放到我的 php 脚本中。类似的东西我可以从输出中去掉它。
-
colornever 无法正常工作,但最好摆脱完整的命令行。
-
@ToothlessRebel 不,
ls --color=always的别名完全不正确。正如这个问题所证明的那样,这不是一个理智的默认设置。隐式 (--color) 或显式 (--color=auto) 使用“自动”是一个非常更好的默认别名,因为它不会破坏这些类型的使用,并且仍然允许在任一方向手动覆盖,手动添加--color=never和--color=always。