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

    Modificare parte prefissata di una stringa

    Salve a tutti,
    ho la necessità di intervenire su una stringa di variabile fissata, sovrascrivendo i caratteri da un certa posizione ad un'altra.
    Ad esempio, supponiamo una stringa lunga 16 caratteri "KKKKKKKKKKKKKKKK" in cui devo sovrascrivere la sottostringa compresa tra i caratteri 6 e 12 con la stringa "QQQQQQQ". Dovrei quindi ottenere "KKKKKQQQQQQQKKKK"

    Qual è il modo migliore per ottenere questo risultato?

    Grazie mille

  2. #2
    Le stringhe in PHP possono essere trattate come array:

    Codice PHP:
    <?php
    $str 
    "QWERTYUIOP";
    for (
    $i 3$i 7$i++) {
        
    $str[$i] = "X";
    }
    echo 
    $str;
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    satifal, l'esempio dei caratteri tutti uguali era solo un esempio... In realtà vorrei poter sostituire l'intera seconda stringa all'interno della prima stringa (nella posizione specificata), senza dover agire carattere per carattere.

    Qualcosa di simile alla funzione substr() ma in scrittura. Esiste?

  4. #4
    Potresti fare una substr della parte di stringa che vuoi rimpiazzare e poi effettuare uno str replace, ma niente ti assicura che la stringa individuata non sia presente più volte nella stringa originale.
    In altrenativa puoi farlo manualmente. Ad esempio:

    Codice PHP:
    <?php
    function subStrReplace($str$rep$start) {
        for (
    $i $start$i $start strlen($rep); $i++) {
            
    $str[$i] = $rep[$i $start];
        }
        return 
    $str;
    }

    $start 5// Indice di inizio sostituzione
    $str "KKKKKKKKKKKKKKKK"// Stringa di partenza
    $rep "QQQQQQQ"// Stringa da sostituire

    echo subStrReplace($str$rep$start);
    ?>
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Perchè non dividere semplicemente la stringa e sostituire la parte centrale?

    Codice PHP:
    $string 'CANELOLLOSORELGH'//16 caratteri

      
    function stringer($a){
            
    $st1 substr($a,0,5);//prima parte della stringa
            
    $st2 substr($a,12);//seconda parte della stringa
            
    $new $st1.'1234567'.$st2;//nuova stringa
           
    return $new;
        }

    //richiamo la funzione e stampo
    $teststringer($string);
    echo 
    $test//output: CANEL1234567ELGH 

  6. #6
    Grazie RoTeam, la tua soluzione è esattamente quella che ho usato.

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.