【发布时间】:2011-04-09 15:59:11
【问题描述】:
我想要以下输出:-
即将从您的充值账户中扣除 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);
但它给了我这个错误vsprintf() [function.vsprintf]: Too few arguments in ...,因为它认为50% 中的% 也可以替换。我该如何逃脱它?
【问题讨论】:
-
@Col。弹片我的问题是关于 vsprintf 而不是 printf,我是第一次使用它,无法假设两者之间的相似性。但是,在
php.net/printf和php.net/vsprintf中搜索escape或escaping并不会立即显示答案。当我搜索%%时,它会在 php.net/printf 中显示答案,但我不知道%%!!!在投反对票之前,您是否在那里搜索过答案? -
@sandeepan:
vsprintf与printf属于同一个函数族。不过,找到该格式的正确文档是 php.net/sprintf。两页甚至都指向它:“有关格式的描述,请参见 sprintf()。”你至少没有点击它吗? -
@Col。弹片好吧好吧让我们拿php.net/sprintf,答案在哪里?它在页面的中间
With printf() and sprintf() functions, escape character is not backslash '\' but rather '%'.这里有什么要反对的?这对我来说并不像对你那么明显。如果您发现重复的问题,您可以更好地编写链接。但我相信很多人会发现这个问题很有帮助。但你不会接受,你还是会说些什么,我知道。 -
哦,我以为第二条评论是由 Shrapnel 上校写的,抱歉
-
SO 应该有一个用于 RTFM 响应的标志。这几乎就像人们进行巨魔一样,只是为了告诉人们阅读文档。他需要帮助并提出了一个问题,然后有人提供了帮助并得到了积分。世界在继续,互联网被用来为某人谋福利。与此同时,我对一场长达两年的争论感到很激烈。