Visualizzazione dei risultati da 1 a 10 su 10

Discussione: manipolazione stringa

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    271

    manipolazione stringa

    avendo delle stringe del tipo "Luogo: A. Luogo: B." come faccio a modificarle in "Luogo: A-B." ? Ci sto provando da un pò con le espressioni regolari ma ancora nessun risultato

  2. #2
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    $a = "Luogo: A";
    $b = "Luogo: B";

    $a1 = explode(":",$a);
    $b1 = explode(":",$b);

    $stringa = $a1[0]." ".trim($a1[1])."-".trim($b1[1]);

    //non testata
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    271
    la stringa di partenza però è:
    $stringa = "Testo. Luogo: A. Luogo: B. Testo"
    quindi come faccio? :master:

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    271
    per ora ho fatto così:

    codice:
     eregi("(Luogo:){1}(.)*(Luogo:){1}.*(\.){1}", $stringa, $regs);
    $a = explode("Luogo:",$regs[0]);
    $b1 = explode(".",$a[1]);
    $b2 = explode(".",$a[2]);
    $sub_str = "Luogo: " . $b2[0] . " - " . $b1[0] .".";
    $stringa = str_replace($regs[0], $sub_str, $stringa);
    che a funzionare funziona... ma sono certo che si possa fare decisamente meglio... in realtà per ora mi va bene così tanto mi serviva solo per una cosetta, ma mi piacerebbe conoscere il modo corretto di affrontare questo "problema"...

  5. #5
    Originariamente inviato da dogo21sob
    la stringa di partenza però è:
    $stringa = "Testo. Luogo: A. Luogo: B. Testo"
    quindi come faccio? :master:
    Codice PHP:
         $stringa "Testo. Luogo: A. Luogo: B. Luogo: C. Luogo: D. Testo";
         
         
    $c explode("Testo.",$stringa);
         
    $a explode("Luogo:",$c[1]);
         
         
    $return "Luogo:";
         
         
    $mul 0;
         
        while (
    $mul <= count($a)) {
         
            
    $b explode(".",$a[$mul]);
            
    print_r($b);
            
    $return .= "-".$b[0];
            
            
    $mul++;
        }
        
        echo 
    $return

  6. #6
    Un espressione regolare è di sicuro più elegante.


  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    271
    I Luoghi sono esattamente 2, quindi sempre e solo A e B (che corrispondono a regione e città) ma il testo è generico, cioè non c'è un testo fisso, quindi mi servirebbe qualcosa che va bene per ogni caso...

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    271
    Originariamente inviato da Elmapomap
    Un espressione regolare è di sicuro più elegante.

    A saperla scrivere... :master:

  9. #9
    Originariamente inviato da dogo21sob
    I Luoghi sono esattamente 2, quindi sempre e solo A e B (che corrispondono a regione e città) ma il testo è generico, cioè non c'è un testo fisso, quindi mi servirebbe qualcosa che va bene per ogni caso...
    Alla fine di ogni testo c'è un .?
    se si basta modificare con $c = explode(".",$stringa);

    A e B se cambiano non succede nulla

  10. #10
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    se crei una funzione e passi le stringhe come argomenti
    è abbastanza elegante
    2000 post e sono più vecchio di 4 anni...
    grazie a tutti....

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.