带有命令行参数的C控制台应用程序中的哈希符号(#)

时间:2011-09-15 14:19:54

标签: php c special-characters command-line-arguments

我正在尝试从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

似乎字符串在哈希符号#。

处被截断

有谁知道为什么?

感谢您的帮助!非常感谢! 基督教

1 个答案:

答案 0 :(得分:1)

尝试转义#,如下:

$command = "Command=LIGHT-COLOR \\#00ff00";

如果有意义的话,第一个'\'是逃避'#'逃脱'#'。我不是PHP程序员,因此未经过测试。