Ich möchte die folgende Ausgabe: -
Etwa 50% von 27,59 € von Ihrem Aufladekonto abziehen.
wenn ich so etwas mache: -
$variablesArray[0] = '€';
$variablesArray[1] = 27.59;
$stringWithVariables = 'About to deduct 50% of %s %s from your Top-Up account.';
echo vsprintf($stringWithVariables, $variablesArray);
Aber es gibt mir diesen Fehler, vsprintf() [function.vsprintf]: Too few arguments in ...
weil es das %
In 50%
auch als Ersatz betrachtet. Wie entkomme ich ihm?
escape
oderescaping
in beidenphp.net/printf
undphp.net/vsprintf
beiden wird die Antwort jedoch nicht sofort angezeigt. Wenn ich danach suche%%
, wird die Antwort in php.net/printf angezeigt, aber ich wusste nichts davon%%
!!! Haben Sie dort vor dem Downvoting nach der Antwort gesucht?vsprintf
gehört in die gleiche Funktionsfamilie wieprintf
. Die richtige Dokumentation, um das Format zu finden, ist jedoch php.net/sprintf . Beide Seiten weisen sogar darauf hin: "Eine Beschreibung des Formats finden Sie unter sprintf ()." Hast du nicht wenigstens darauf geklickt?With printf() and sprintf() functions, escape character is not backslash '\' but rather '%'.
Was gibt es hier zu tun? Es war für mich einfach nicht so offensichtlich wie für dich. Wenn Sie eine doppelte Frage finden, können Sie den Link besser schreiben. Aber ich bin sicher, dass viele diese Frage hilfreich finden werden. Aber du wirst das nicht akzeptieren und trotzdem etwas sagen, ich weiß.Antworten:
Entkomme mit einem anderen
%
:quelle
sprintf('This is %s.', the_title())
str_replace('%', '%%', the_title())
Es ist sehr leicht.
Stellen Sie einen anderen
%
vor das Original%
, um ihm zu entkommen.Beispielsweise,
Ausgabe:
quelle
Was ist damit:
Fügen Sie einfach Ihr Prozentzeichen in Ihr Variablenarray ein
quelle