mirror of
https://github.com/php/doc-it.git
synced 2026-03-24 23:52:12 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/it/trunk@327390 c90b9560-bf6c-de11-be94-00142212c4b1
345 lines
12 KiB
XML
345 lines
12 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- EN-Revision: n/a Maintainer: darvina Status: ready -->
|
|
<!-- splitted from ./en/functions/strings.xml, last change in rev 1.2 -->
|
|
<refentry xml:id="function.sprintf" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>sprintf</refname>
|
|
<refpurpose>Restituisce una stringa formattata</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Descrizione</title>
|
|
<methodsynopsis>
|
|
<type>string</type><methodname>sprintf</methodname>
|
|
<methodparam><type>string</type><parameter>format</parameter></methodparam>
|
|
<methodparam choice="opt"><type>mixed</type><parameter>args</parameter></methodparam>
|
|
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<simpara>
|
|
La funzione restituisce una stringa formattata in base al parametro
|
|
<parameter>format</parameter>.
|
|
</simpara>
|
|
<simpara>
|
|
La stringa di formato è composta da 0 o più direttive:
|
|
i caratteri ordinari (escluso il <literal>%</literal>) sono
|
|
copiati direttamente nel risultato, mentre le <emphasis>specifiche
|
|
di conversione</emphasis>, scaricano il proprio parametro.
|
|
Queste note si applicano alle funzioni <function>fprintf</function>,
|
|
<function>sprintf</function> e <function>printf</function>.
|
|
</simpara>
|
|
<para>
|
|
Ciascun parametro di conversione consiste nel segno percento
|
|
(<literal>%</literal>), seguito da uno più dei seguenti elementi
|
|
nell'ordine si ha:
|
|
<orderedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Un parametro opzionale di <emphasis>specifica del segno</emphasis> che forza la presenza del segno
|
|
(- oppure +) in caso di numero. Per default, si usa soltanto il segno -
|
|
se il numero è negativo. Questo parametro forza i numeri positiva ad avere
|
|
il segno +, ed è stato aggiunto in PHP 4.3.0.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Un parametro opzionale per la specifica del <emphasis>riempimento</emphasis>
|
|
che indica quale carattere sarà utilizzato per completare la stringa risultante
|
|
in modo da raggiungere la dimensione richiesta. Questo può essere uno spazio oppure uno
|
|
<literal>0</literal> (il carattere zero). Per default si completa con
|
|
spazi. Un carattere di riempimento alternativo può essere indicato
|
|
anteponendo a questo l'apice singolo (<literal>'</literal>).
|
|
Vedere gli esempi seguenti.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Un parametro opzionale per la specifica dell'<emphasis>allineamento</emphasis>
|
|
che indica se la stringa risultante debba essere giustificata a destra o a sinistra.
|
|
Per default le stringhe sono giustificate a destra; il carattere
|
|
<literal>-</literal> forza la giustificazione a sinistra.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Un parametro numerico opzionale per la specifica della <emphasis>dimensione</emphasis>
|
|
che indica di quanti caratteri (come minimo) debba essere lunga la
|
|
stringa.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Un parametro opzionale per indicare la <emphasis>precisione</emphasis> per indicare
|
|
quante cifre decimali debbano essere visualizzate per i numeri in virgola mobile.
|
|
Quando si usa questo parametro in una stringa si impone come una sorta di punto di
|
|
cutoff, esso imposta un limite alla lunghezza della stringa.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Una specifica di <emphasis>tipo</emphasis> che indica il tipo
|
|
di dati dell'argomento. I possibili tipi sono:
|
|
<simplelist>
|
|
<member>
|
|
<literal>%</literal> - il carattere percento. Nessun
|
|
argomento è richiesto.
|
|
</member>
|
|
<member>
|
|
<literal>b</literal> - l'argomento è trattato come un
|
|
intero e sarà presentato come numero binario.
|
|
</member>
|
|
<member>
|
|
<literal>c</literal> - l'argomento è trattato come un
|
|
intero e sarà presentato come carattere ASCII
|
|
del valore corrispondente.
|
|
</member>
|
|
<member>
|
|
<literal>d</literal> - l'argomento è trattato come un
|
|
intero e sarà presentato come un numero decimale con segno.
|
|
</member>
|
|
<member>
|
|
<literal>e</literal> - l'argomento è reso con notazione
|
|
scientifica (ad esempio 1.2e+2).
|
|
</member>
|
|
<member>
|
|
<literal>u</literal> - l'argomento è trattato come un
|
|
intero e sarà presentato come un numero decimale senza segno.
|
|
</member>
|
|
<member>
|
|
<literal>f</literal> - l'argomento è trattato come un
|
|
<type>float</type> e sarà presentato come un numero in virgola mobile (influenzato dalle impostazioni locali).
|
|
</member>
|
|
<member>
|
|
<literal>F</literal> - l'argomento è trattato come un numero
|
|
float, e sarà presentato come un numero in virgola mobile (non influenzato dalle impostazioni locali).
|
|
Disponibile da PHP 4.3.10 e PHP 5.0.3.
|
|
</member>
|
|
<member>
|
|
<literal>o</literal> - l'argomento è trattato come un
|
|
intero e sarà presentato come un numero ottale.
|
|
</member>
|
|
<member>
|
|
<literal>s</literal> - l'argomento sarà trattato e presentato
|
|
come una stringa.
|
|
</member>
|
|
<member>
|
|
<literal>x</literal> - l'argomento sarà trattato come un intero
|
|
e presentato in forma esadecimale (con le lettere in
|
|
minuscolo).
|
|
</member>
|
|
<member>
|
|
<literal>X</literal> - l'argomento è trattato come un
|
|
intero e sarà presentato come un numero esadecimale (con le
|
|
lettere maiuscole).
|
|
</member>
|
|
</simplelist>
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
<para>
|
|
A partire dal PHP 4.0.6 la stringa di formato supporta
|
|
lo scambio dei parametri. Eccone un esempio:
|
|
<example>
|
|
<title>Scambio dei parametri</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$format = "There are %d monkeys in the %s";
|
|
printf($format, $num, $location);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
Questo esempio visualizza: "There are 5 monkeys in the tree". Ma
|
|
supponiamo di volere creare una stringa di formato in file a parte,
|
|
perché vogliamo rendere la procedura internazionale; e pertanto riscriviamo
|
|
l'esempio come:
|
|
<example>
|
|
<title>Scambio dei parametri</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$format = "The %s contains %d monkeys";
|
|
printf($format, $num, $location);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
Ora abbiamo un problema. L'ordine dei segnaposto nella stringa di
|
|
formato non coincide con l'ordine dei parametri.
|
|
Si vorrebbe potere lasciare inalterato il codice e potere indicare
|
|
a quale parametro si riferisce il segnaposto.
|
|
Ciò può essere fatto modificando la stringa di formato come:
|
|
<example>
|
|
<title>Scambio dei parametri</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$format = "The %2\$s contains %1\$d monkeys";
|
|
printf($format, $num, $location);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
Un beneficio aggiuntivo è che si possono ripetere i segnaposto
|
|
senza dovere ripetere i parametri. Ad esempio:
|
|
<example>
|
|
<title>Scambio di parametri</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$format = "The %2\$s contains %1\$d monkeys.
|
|
That's a nice %2\$s full of %1\$d monkeys.";
|
|
printf($format, $num, $location);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<simpara>
|
|
Vedere anche <function>printf</function>,
|
|
<function>sscanf</function>, <function>fscanf</function>,
|
|
<function>vsprintf</function> e
|
|
<function>number_format</function>.
|
|
</simpara>
|
|
</refsect1>
|
|
<refsect1>
|
|
<title>Esempi</title>
|
|
<example>
|
|
<title>Esempi di uso di <function>printf</function></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$n = 43951789;
|
|
$u = -43951789;
|
|
$c = 65; // ASCII 65 is 'A'
|
|
|
|
// attenzione che i doppi %%, visualizzano il carattere '%'
|
|
printf("%%b = '%b'\n", $n); // rappresentazione binaria
|
|
printf("%%c = '%c'\n", $c); // visualizza un carattere ASCII, coma la funzione chr()
|
|
printf("%%d = '%d'\n", $n); // rappresentazione di un intero standard
|
|
printf("%%e = '%e'\n", $n); // notazione scientifica
|
|
printf("%%u = '%u'\n", $n); // rappresentazione di un intero positivo privo di segno
|
|
printf("%%u = '%u'\n", $u); // rappresentazione di un intero negativo privo di segno
|
|
printf("%%f = '%f'\n", $n); // rappresentazine in virgola mobile
|
|
printf("%%o = '%o'\n", $n); // rappresentazione ottale
|
|
printf("%%s = '%s'\n", $n); // stringa
|
|
printf("%%x = '%x'\n", $n); // rappresentazione esadecimale (minuscolo)
|
|
printf("%%X = '%X'\n", $n); // rappresentazione esadecimale (maiuscolo)
|
|
printf("%%+d = '%+d'\n", $n); // indicazione del segno su un intero positivo
|
|
printf("%%+d = '%+d'\n", $u); // indicazione del segno su un intero negativo
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
L'output di questo programma sarà:
|
|
</para>
|
|
<screen>
|
|
<![CDATA[
|
|
%b = '10100111101010011010101101'
|
|
%c = 'A'
|
|
%d = '43951789'
|
|
%e = '4.39518e+7'
|
|
%u = '43951789'
|
|
%u = '4251015507'
|
|
%f = '43951789.000000'
|
|
%o = '247523255'
|
|
%s = '43951789'
|
|
%x = '29ea6ad'
|
|
%X = '29EA6AD'
|
|
%+d = '+43951789'
|
|
%+d = '-43951789'
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
<example>
|
|
<title><function>printf</function>: specifiche di stringa</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$s = 'monkey';
|
|
$t = 'many monkeys';
|
|
|
|
printf("[%s]\n", $s); // output standard di stringa
|
|
printf("[%10s]\n", $s); // accostamento a destra con spazi
|
|
printf("[%-10s]\n", $s); // accostamento a sinistra con spazi
|
|
printf("[%010s]\n", $s); // completamento con zero funziona anche con le stringhe
|
|
printf("[%'#10s]\n", $s); // utilizza il carattere di riempimento '#'
|
|
printf("[%10.10s]\n", $t); // accostamento a sinistra con taglio a 10 caratteri
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
<para>
|
|
L'output di questo programma sarà:
|
|
</para>
|
|
<screen>
|
|
<![CDATA[
|
|
[monkey]
|
|
[ monkey]
|
|
[monkey ]
|
|
[0000monkey]
|
|
[####monkey]
|
|
[many monke]
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
<example>
|
|
<title><function>sprintf</function>: interi completati con zeri</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
<example>
|
|
<title><function>sprintf</function>: formattazione della moneta</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$money1 = 68.75;
|
|
$money2 = 54.35;
|
|
$money = $money1 + $money2;
|
|
// echo $money visualizzerà "123.1";
|
|
$formatted = sprintf("%01.2f", $money);
|
|
// echo $formatted visualizzerà "123.10"
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
<example>
|
|
<title><function>sprintf</function>: notazione scientifica</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$number = 362525200;
|
|
|
|
echo sprintf("%.3e", $number); // visualizza 3.63e+8
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|