我想以下的输出: -PHP的sprintf逃逸%
关于从您补足账户中扣除的27.59€50%。
,当我做这样的事情: -
$variablesArray[0] = '€';
$variablesArray[1] = 27.59;
$stringWithVariables = 'About to deduct 50% of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);
但因为它认为在50%
也更换%
它给了我这个错误vsprintf() [function.vsprintf]: Too few arguments in ...
。我如何逃避它?
@col。 Shrapnel我的问题是关于vsprintf不是printf,我第一次使用这个,并且不能假设两者之间的相似性。然而,在'php.net/printf'和'php.net/vsprintf'中搜索'escape'或'escaping'都不会立即显示答案。当我搜索'%%'时,它会在php.net/printf中显示答案,但我不知道'%%'!!!在投票前您是否搜索过答案? – 2010-09-08 10:40:56
@sandeepan:'vsprintf'属于与'printf'相同的函数族。但是,找到格式的正确文档是http://www.php.net/sprintf。这两个页面甚至指向它:“请参阅sprintf()以获取格式的描述。”你没有至少点击它吗? – BoltClock 2010-09-08 10:43:43
@Col。 Shrapnel ok好吧,让我们看看php.net/sprintf,答案在哪里?它在页面的一半处使用printf()和sprintf()函数,转义字符不是反斜线'\'而是'%'。'这里有什么值得注意的地方?这对我来说并不像对你那么明显。如果您发现重复的问题,您最好写下链接。但我相信很多人会发现这个问题很有帮助。但是我知道,你不会接受,你仍然会说些什么。 – 2010-09-08 10:49:04