Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema funzione con espressione regolare

    Ciao a tutti! Ho un problema con una funzione (..non so le espressioni regolari.. )
    devo passare a questa funzione tipo laser_1 laser_4 oppure robot_2 ammo_3 e questa mi deve dare in output tipo se passo laser_1 torna L1 se passo laser_2 torna L2 e cosi via...

    Questa e la funzione
    Codice PHP:
    function getImageName($obj){
        
    $obj preg_replace('laser_','L',$obj);
        
    $obj preg_replace('generatoreScudo_','S',$obj);
        
    $obj preg_replace('generatoreProp_','P',$obj);
        
    $obj preg_replace('ammo_','A',$obj);
        
    $obj preg_replace('razzo_','R',$obj);
        
    $obj preg_replace('mina_','M',$obj);
        
    $obj preg_replace('robot_','Rb',$obj);
        
    $obj preg_replace('invisibility_','I',$obj);
        return 
    $obj;

    Grazie a tutti!
    Cerco Sviluppatori Flash: http://forum.html.it/forum/showthread.php?threadid=1418906

  2. #2
    Nessuno e capace???? daii suuu
    Cerco Sviluppatori Flash: http://forum.html.it/forum/showthread.php?threadid=1418906

  3. #3

    Re: Problema funzione con espressione regolare

    Originariamente inviato da dedo93
    Ciao a tutti! Ho un problema con una funzione (..non so le espressioni regolari.. )
    devo passare a questa funzione tipo laser_1 laser_4 oppure robot_2 ammo_3 e questa mi deve dare in output tipo se passo laser_1 torna L1 se passo laser_2 torna L2 e cosi via...
    -------------------
    Nessuno e capace???? daii suuu
    Scusa Dedo, ma qui non è una questione di capacità: non si capisce cosa debba fare la tua espressione regolare.
    Sostanzialmente, dalla tua funzione vedo che SE il file $obj ha laser_ nel nome, lo sostituisco con una L maiuscola, altrimenti se ha generatoreScudo_, lo sostituisco con S eccetera.
    Credo sia impossibile risolvere con una espressione regolare, mentre ti basta uno str_replace(), magari passando due array come argomenti: uno con le chiavi da sostituire, l'altro con le relative sostituzioni.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    function getImageName($obj){
        
    $reps=array(
          
    'laser'           =>'l',
          
    'generatoreScudo' =>'s',
          
    'ammo'            =>'a',
          
    'razzo'           =>'r',
          
    'mina'            =>'m',
          
    'robot'           =>'rb',
          
    'invisibility'    =>'i'
          
    );
        
        list(
    $name,$num)=explode('_',$obj);
        return 
    ucfirst($reps[$name]).$num;
        } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Uei Doc... ben trovato!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da alcio74
    Uei Doc... ben trovato!
    bella alcio!!!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Hai provato ad usare str_replace piuttosto che preg_replace ?

  8. #8
    Originariamente inviato da bombyboom
    Hai provato ad usare str_replace piuttosto che preg_replace ?
    Ehmm..... :master:
    Letto qui sopra???
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    ho risolto cosi

    Codice PHP:
    function getImageName($obj){
    return 
    strtoupper(preg_replace("/(\w)[^_]+_(\d)/","\\1\\2",$obj)); } 
    e ho modificato alcuni dei campi che mi prendevo dal DB tipo generatoreScudo_1 l'ho fatto diventare scudo_1

    ora funziona
    Grazie cmq a tutti!
    Cerco Sviluppatori Flash: http://forum.html.it/forum/showthread.php?threadid=1418906

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.