Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Preg replace?

  1. #1

    Preg replace?

    ho nel database del testo formattato in questo modo:

    codice:
    [A]{action}
    [B]{action2}
    Il testo compreso nelle parentesi quadre deve essere sostituito con un immagine mentre il testo compreso nelle parentesi graffe è un testo che va tradotto in base al lingua definita per l'utente.
    Ho diversi file lingua (en.php it.php) che includo in base ad una variabile, nel file di lingua definisco le variabili per questa operazione (le costanti ho letto che non sono supportate da preg*):

    Codice PHP:
    $actions['action'] = "Azione"
    Per cambiare formattazione ho creato questo script:

    Codice PHP:
    $instruction preg_replace("/\[(.*?)\]/","<img src=button-\\\1.jpg>",$game['instruction']);
    $instruction preg_replace("/\{(.*?)\}/","\\\1",$instruction); 
    L'immagine la sostituisce e funziona mentre per il secondo valore ovviamente mi restituisce "action".
    come posso fare in modo che si vada a leggere la variabile? ho provato con

    Codice PHP:
    $instruction preg_replace("/\{(.*?)\}/",$action["\\\1"],$instruction); 
    ma ovviamente non va , credo che preg_replace non vada bene....
    Fabzine.it: Il blog italiano sulla digital fabrication

  2. #2
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/preg_replace Example #4 Using the 'e' modifier

  3. #3
    Originariamente inviato da filippo.toso
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/preg_replace Example #4 Using the 'e' modifier
    il manuale l'ho già letto solo che la sintassi di questa funzione non è molto chiara....
    Fabzine.it: Il blog italiano sulla digital fabrication

  4. #4
    Originariamente inviato da lupoz
    il manuale l'ho già letto solo che la sintassi di questa funzione non è molto chiara....
    Che cosa non ti risulta chiaro?

  5. #5
    La sintassi...

    ho provato a scrivere:

    Codice PHP:
    <?php
    $actions 
    "[A]{Action}";

    preg_match_all("^\[.+?\]\{.+?\}^"$actions$matches);

    for (
    $i=0$icount($matches[0]); $i++) {
       echo 
    $matches[0][$i]."
    \n"
    ;
       echo 
    $matches[1][$i] . "
    \n"
    ;

    }

    ?>
    ma non va, stampa la variabile non modificata e Notice: Undefined offset: 1 in xxxx.php on line 8
    Fabzine.it: Il blog italiano sulla digital fabrication

  6. #6
    Studiati questo codice:

    <pre>
    <?php
    $actions = "[A]{Action}\r\n[B]{Action2}\r\n[C]{Action3}";
    if (preg_match_all('#\[(.*?)\]\{(.*?)\}#si', $actions, $matches)) {
    print_r($matches);
    }
    ?>
    </pre>

  7. #7
    Codice PHP:
    $game "[A]{Action}";
    $game .= "[B]{Action2}";
    $game .= "[C]{Action3}";

    preg_match_all("#\[(.*?)\]\{(.*?)\}#si"$game$matches);

    for (
    $i=0$icount($matches[0]); $i++) {
        echo 
    $matches[1][$i] . "
    \n"
    ;
        echo 
    $matches[2][$i] . "
    \n"
    ;

    funziona

    grazie
    Fabzine.it: Il blog italiano sulla digital fabrication

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.