我正在尝试将颜色代码从 php 网站发送到端口。为此,我在服务器上使用控制台应用程序。它看起来像这样:
int _tmain(int argc, _TCHAR* argv[])
{
if (argc >= 3)
{
_tprintf ( _T("Command: %s\n"), argv[3]);
if ( !Messenger::GetInstance()->SetServer( argv[1], _tstoi(argv[2]), false) )
{
_tprintf( _T("ERROR: SetServer( 192.168.10.50, 30000, false) failed") );
}
else
{
_TCHAR *p = wcstok(argv[3], _T(";"));
while (p)
{
Messenger::GetInstance()->SendCommand( p );
//_tprintf ( _T("Token: %s\n"), p);
p = wcstok(NULL, _T(";"));
}
}
}
return 0;
}
exe的调用方式如下:
$command = "Command=LIGHT-COLOR #00ff00";
$returnMsg = exec("PassAlong.exe \"" . $server . "\" \"" . $port . "\" \"" . $command . "\"");
不幸的是,控制台应用程序仅返回以下内容: 命令:LIGHT-COLOR
字符串似乎在井号#处被切断。
有人知道为什么吗?
感谢您的帮助!非常感谢! 克里斯蒂安
最佳答案
尝试转义 #,如下所示:
$command = "Command=LIGHT-COLOR \\#00ff00";
第一个“\”是对转义“#”的“\”进行转义(如果有意义的话)。我不是 PHP 程序员,所以这没有经过测试。
关于php - 带有命令行参数的 C 控制台应用程序中的井号 (#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432382/