Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP] lettura delle prime 30 lettere + identificazione di una stringa di comando

  1. #1
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito [PHP] lettura delle prime 30 lettere + identificazione di una stringa di comando

    Ciao a tutti, spero che il titolo sia azzeccato, comunque spiego brevemente
    quello che devo fare, cercando di essere il più chiaro e semplice possibile.

    in chat inviano un messaggio, se nel messaggio c'è una particolare
    combinazione di simboli deve apparire una formattazione di testo ad oc.

    La sequenza dovrebbe essere così [ x ] dove X è un messaggio di massimo
    28 caratteri. La x quindi può assumere anche forma inferiore ai 28, ma il
    mio script dovrebbe comunque leggere la sequenza data dalle parentesi.

    leggere il primo carattere non è un problema, ma è capire se esiste il 2°
    più avanti ed entro il massimo del 30° carattere inserito...

    avevo pensado di destreggiarmi con gli esplode, una roba tipo:
    list($tag, $messaggio) = explode(']',"$frase");
    se lo esplode in tag io mi ritrovo una scritta, altrimenti no...
    naturalmente frase sarebbe stato tagliato alle 30 lettere inserite.

    però poi ho pensato che non va bene una roba del genere, è parecchio
    intricata come soluzione...

    per cui devo capire come fare, so che esiste una funzione che conta i
    caratteri, potrei dire che per ogni carattere letto verifico se è [ o ]

    se è [ sostituisco con la formattazione testo di apertura,
    se è ] sostituisco con la formattazione testo di chiusura.

    il problema è che non conosco questa funzione di lettura, potete aiutarmi?

  2. #2
    Guest

    Predefinito

    Puoi utilizzare la funzione ereg in questo modo:

    Codice PHP:
    <?
    if(ereg('\[',$msg) AND ereg(']',$msg)){
    $msg= str_replace("[", "<font class=\"apri\">[", $msg);
    $msg= str_replace("]", "]</font>", $msg);
    }
    ?>
    Oppure potresti provare qualcosa con strpos in modo che puoi vedere se il 30° carattere è una parentesi quadra e fare qualcosa del tipo:
    Codice PHP:
    <?
    if(strpos($msg,'\[')==0 AND strpos($msg,']')==29){
    $msg= str_replace("[", "<font class=\"apri\">[", $msg);
    $msg= str_replace("]", "]</font>", $msg);
    }
    ?>

  3. #3
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito

    e se la parentesi quadra fosse prima del carattere 29??
    come posso controllarlo??

  4. #4
    Guest

    Predefinito

    Bhe potresti agire in due modi: o fai un ciclo for che controlla da 3 a 29 se c'è oppure semplicemente controlli se c'è in tutta la frase sostituendo quel

    Codice PHP:
    strpos($msg,']')==29)
    con

    Codice PHP:
    strpos($msg,']')===true)

  5. #5
    araim non è connesso Utente attivo
    Data registrazione
    26-06-2004
    Messaggi
    275

    Predefinito

    ok, cicleggio con il for :P

    Codice PHP:

    for($i=0; $i<30; $i++) {
    if(
    strpos($msg,'[')==1 && strpos($msg,']')=="$i")
    {
    $msg=eregi_replace("[","<i style=\"font-size: 10px; font-weight: normal;\"> [",$msg);
    $msg=eregi_replace("]","]</i>",$msg); } else { }
    }
    ho cicleggiato ma non va ... XD qualcuno mi aiuta??
    Ultima modifica di araim : 01-11-2008 alle ore 17.56.02

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •