php - 带有命令行参数的 C 控制台应用程序中的井号 (#)

标签 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

字符串似乎在井号#处被切断。

有人知道为什么吗?

感谢您的帮助!非常感谢! 克里斯蒂安

最佳答案

尝试转义 #,如下所示:

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

第一个“\”是对转义“#”的“\”进行转义(如果有意义的话)。我不是 PHP 程序员,所以这没有经过测试。

关于php - 带有命令行参数的 C 控制台应用程序中的井号 (#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432382/

相关文章:

c - 存在文件的无法解释的文件 NULL 指针

python DBF : 'ascii' codec can't decode byte 0xf6 in position 6: ordinal not in range(128)

android - 如何在 linux 内核中定义和触发我自己的新 softirq?

javascript - "The entity name must immediately follow the ' & ' in the entity reference."

java - 如何使用java转换特殊字符?

javascript - 如何去掉页面顶部的这些字母

php - Bootstrap 按钮输入组无法使用 <form> 标签正确显示

php - Linux 服务器没有响应

php - Laravel - undefined offset 0 - collection.php

c++ - 调用 PsGetProcess 时链接器错误 undefined reference