Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Split e non solo

  1. #1

    Split e non solo

    Buon pomeriggio, non capito come utilizzare la Split().Mi spiego.
    Ho un guestbook.txt, dove all'interno, troverò sempre, questa stringa
    "giovanni|19/04/2007|15:37:45
    oggi è una bella giornata
    <hr>".

    Vorrei, splittare i primi 3 valori (user,data,ora), per poterli visualizzare, online, con un font-color diverso, l'uno dall'altro.Come posso fare?
    Questa sembra la strada giusta, ma, l'ultimo valore ($contenuto) mi prende lo stesso colore dell'ora.
    codice:
    $file = implode('\n',array_reverse(file('public/guestbook.txt')));
    $stringa = explode('\n',$file);
    	
    	foreach($stringa as $value){
    		$value = str_replace("\n","",$value); 
    		list($user, $data, $ora, $contenuto) = split("[|]", $value, 4); 
    		echo "	<font class='fUser'>" . $user . "</font>
    			<font class='fData'>" . $data . "</font>
    			<font class='fOra'>" . $ora . "</font>
    			<font class='fContenuto'>" . $contenuto ."</font>";
    	}
    sapresti dirmi cortesemente come fare?
    GRazie mille...

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    perchè usare split?

    In questo caso puoi usare tranquillamente explode.

    Comunque credo che la regex non debba essere [|] ma semplicemente "|".

    ciao

  3. #3
    e come lo dovrei utilizzare l'explode?Perchè se vedi io già, lo uso al di fuori del ciclo...
    mi faresti un esempio?
    Grazie mille

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    list($user, $data, $ora, $contenuto) = split("[|]", $value, 4);
    diventa
    codice:
    list($user, $data, $ora, $contenuto) = explode("|", $value, 4);
    ciao

  5. #5
    è uguale..nn cambia niente!!!

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    hai provato a stampare con un echo $value per vedere se ti arriva effettivamente quello che ti aspetti?

    ciao

  7. #7
    ciao buon giorno, si ho stampa a video, anche perchè il risultato lo devo visualizzare all'interno del guestbook.
    In pratica succede che, il $contenuto prende lo stesso font-color dell'$ora.
    Tutto qui...
    Puoi aiutarmi ancora per favore?
    Grazie mille....

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    intendevo prima della "trasformazione", comunque controlla anche il codice sorgente generato, e vedi dove scazza, cosi capisci.

    ciao

  9. #9
    in pratica ho risolto cosi:
    codice:
    $file = implode('\n',array_reverse(file('public/guestbook.txt')));
    $stringa = explode('\n',$file);
    		
    	$arrDaSostituire = array(0=>"\n",1=>"
    ");
    	$arrSostituireCon = array(0=>"",1=>"|");
    	foreach($stringa as $value){
    		$value = str_replace($arrDaSostituire,$arrSostituireCon,$value); 
    		list($user, $data, $ora, $contenuto) = split("[|]", $value, 4); 
    		echo "	<font class='fUser'>" . $user . "</font>
    			<font class='fData'>" . $data . "</font>
    			<font class='fOra'>" . $ora . "</font>
    
    			<font class='fContenuto'>" . $contenuto = str_replace("|","",$contenuto)."</font>";
    		//echo $value;
    	}
    Il problema stava nel fatto che, lo "splittaggio" si fermava, quando non trovava più questo carattere "[|]", ed il carattere successivo, che mi serviva, per variare il font-color del $contenuto, era "
    ", quindi ho dovuto fare per forza di cose in questo modo...

    Per il momento va bene cosi, però volevo sapere, all'interno della split, oltre a questo valore "[|]", come potevo inserire anche questo "
    "?
    avevo fatto cosi, ma è sbagliato, perchè non funziona...
    codice:
    list($user, $data, $ora, $contenuto) = split("[|
    ]", $value, 4);
    grazie ancora...

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    io avrei fatto una cosa così:
    Codice PHP:
    list($user$data$contenuto) = explode("|"$value3);
    $ora=substr($contenuto,0strpos($contenuto,"<"));
    $contenuto=substr($contenutostrpos($contenuto,"<")); 
    oppure così con risultati diversi:
    Codice PHP:
    list($user$data$appoggio) = explode("|"$value3);
    list(
    $ora,$contenuto,$altro)=split("
    "
    ,$appoggio,3); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.