Formattare variabile

  • Creatore Discussione Creatore Discussione fire900
  • Data di inizio Data di inizio

fire900

Nuovo Utente
23 Lug 2013
23
0
0
Buona sera, spero sia questa la sezione giusta. Avrei bisogno del vostro aiuto in quanto vorrei formattare una variabile php ma non so se si possa fare e come fare, mi spiego meglio. Ho questo codice php:

PHP:
<?php 
$post_pubblicati = wp_count_posts();
echo "Articoli presenti sul blog $post_pubblicati->publish";
?>

La variabile $post_pubblicati restituisce il numero di articoli pubblicati, supponiamo che siano 100, mi domando è possibile formattare il numero 100 assegnando ai numeri colori diversi?

Esempio: 100

Grazie
 
Ultima modifica di un moderatore:
Ciao, dovrai usare un po di "style", prova cosi
PHP:
<style>
    .red {
        color:red;
    }
    .blue {
        color:blue;
    }
    .orange {
        color:orange;
    }
</style>
<?php
$colori = array("red", "blue", "orange");
$post_pubblicati = str_split(100);
$output = "";

for ($i = $x = 0; $i < count($post_pubblicati); $i++, $x++) {
    $output .= "<span class='" . $colori[$x] . "'>" . $post_pubblicati[$i] . "</span>";
    if ($x % 2 == 0)
        $x = 0;
}
echo "Articoli presenti sul blog $output";
?>
Non ho commentato se qualcosa non ti è chiaro chiedi pure
ps:
ovviamente dove io ho messo 100 tu metterai $post_pubblicati->publish
 
Ciao, grazie mille per la risposta. Scusami ma non sono molto pratico con il php. Dunque il codice finale e corretto dovrebbe essere cosi:

PHP:
<?php 
$post_pubblicati = wp_count_posts();
$colori = array("red", "blue", "orange");
$post_pubblicati = str_split($post_pubblicati->publish);
$output = "";

for ($i = $x = 0; $i < count($post_pubblicati); $i++, $x++) {
    $output .= "<span class='" . $colori[$x] . "'>" . $post_pubblicati[$i] . "</span>";
    if ($x % 2 == 0)
        $x = 0;
}
echo "Articoli presenti sul blog $output";
?>

e i vari style scritti nel mio foglio di stile css.

Giusto cosi?

Grazie mille
 
Ultima modifica:
esatto
forse pero ti conviene sostituire questo
PHP:
if ($x % 2 == 0)
        $x = 0;
con questo
PHP:
if ($x % (count($colori) - 1) == 0)
        $x = 0;
cosi se aggiungi altri colori nell'array non dovrai modificare il codice del ciclo
 
Grazie mille, funziona benissimo. Ti posso fare una domanda? Se i numeri fossero 4 tipo: 1000 il codice come si comporterebbe in quel caso?

Grazie mille
 
Il quarto numero sara di nuovo rosso
il contatore $x va a pescare il colore dall'array $colori
con questa istruzione che ti ho indicato prima
PHP:
if ($x % (count($colori) - 1) == 0)
        $x = 0;
il contatore si azzera quando ha preso tutti i colori disponibili e riparte da capo
 
Grazie mille, gentilissimo e molto chiaro nelle spiegazioni.

P.S. posso modificare solo l'ultimo messaggio scritto? Volevo inserire un [RISOLTO] nel titolo
 
Non abbiamo mai usato il [RISOLTO] nelle discussioni
in teoria puoi modificare i messaggi fino a dieci minuti dopo che li ha scritti Il primo che contiene il titolo gia non puoi piu modificarlo
chiedero ai supermod
cmq ti hodetto una cavolata:
e riparte da capo
in realta facendo un paio di prove ho notato che riparte dal blu, provero a dargli un occhiata
 
modificando cosi si comporta come detto
PHP:
<?php
$colori = array("red", "blue", "orange");
$post_pubblicati = str_split(100000000);
$output = "";
$x = 0;
for ($i = 0; $i < count($post_pubblicati); $i++) {
    $output .= "<span class='" . $colori[$x] . "'>" . $post_pubblicati[$i] . "</span>";
    if ($x == (count($colori) - 1))
        $x = 0;
    else
        $x++;
}
echo "Articoli presenti sul blog $output";
?>
 
Ciao, io invece di 100000000 devo mettere sempre: $post_pubblicati->publish ?

Quindi adesso è:

PHP:
<?php 
$post_pubblicati = wp_count_posts();
$colori = array("red", "blue", "orange"); 
$post_pubblicati = str_split($post_pubblicati->publish); 
$output = ""; 
$x = 0; 
for ($i = 0; $i < count($post_pubblicati); $i++) { 
    $output .= "<span class='" . $colori[$x] . "'>" . $post_pubblicati[$i] . "</span>"; 
    if ($x == (count($colori) - 1)) 
        $x = 0; 
    else 
        $x++; 
} 
echo "Articoli presenti sul blog $output"; 
?>

Giusto?

Un ultima domanda, in caso di 4 potrebbe diventare cosi: 1000

Cioè: il primo numero (1) rosso, il secondo e terzo ( 0 0) blu ed il quarto ( 0 ) arancione?

Grazie mille
 
Puoi verifcare la lunghezza con strlen e modificare l'array in base a quanti numeri contiene la variabile
PHP:
$colori = array("red", "blue", "orange");
if (strlen($post_pubblicati->publish) > 3) {
    $colori = array("red", "blue", "blue", "orange");
}
 
Ultima modifica:
Grazie. Quindi per adesso uso questo

PHP:
<?php  
$post_pubblicati = wp_count_posts(); 
$colori = array("red", "blue", "orange");  
$post_pubblicati = str_split($post_pubblicati->publish);  
$output = "";  
$x = 0;  
for ($i = 0; $i < count($post_pubblicati); $i++) {  
    $output .= "<span class='" . $colori[$x] . "'>" . $post_pubblicati[$i] . "</span>";  
    if ($x == (count($colori) - 1))  
        $x = 0;  
    else  
        $x++;  
}  
echo "Articoli presenti sul blog $output";  
?>

Quando poi saranno 4 lo modifico in:

PHP:
<?php  
$post_pubblicati = wp_count_posts(); 
$colori = array("red", "blue", "orange");
if (strlen($post_pubblicati->publish) > 3) {
    $colori = array("red", "blue", "blue", "orange");
}    
$post_pubblicati = str_split($post_pubblicati->publish);  
$output = "";  
$x = 0;  
for ($i = 0; $i < count($post_pubblicati); $i++) {  
    $output .= "<span class='" . $colori[$x] . "'>" . $post_pubblicati[$i] . "</span>";  
    if ($x == (count($colori) - 1))  
        $x = 0;  
    else  
        $x++;  
}  
echo "Articoli presenti sul blog $output";  
?>

Tutto giusto cosi?

Grazie mille
 
Puoi utilizzare direttamente il secondo, quando diventeranno 4 cifre se ne accorge lo script
 

Discussioni simili