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

    str_replace non dà segni di vita

    Ciao a tutti!

    ho un problema con la funzione di str_replace... Nel senso che utilizzata sul testo che mi serve non restituisce assolutamente nulla...

    la chiamata alla funzione è dentro un ciclo for

    codice:
    $res = str_replace($old, $replax, $str);
    e deve sostituire una cosa simile

    codice:
    $foto[0]["titolo"]["it"] = "Monte Bianco";
    con una del genere

    codice:
    $foto[0]["titolo"]["it"] = "Monte Rosa";
    all'interno di un altro file php (con le dovute accortezze di fopen fwrite ecc... ho già verificato che il problema è nella funzione e penso che riguardi i parametri di sostituzione)

    Grazie in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sarebbe il caso che postassi un po' di codice.
    Nello specifico il contenuto delle variabili $old, $replax, $str e il ciclo for

  3. #3
    ad esempio deve sostituire une stringa

    Codice PHP:
    $old '$foto[0]["titolo"]["it"] = "Monte Bianco";'
    con

    Codice PHP:
    $replax '$foto[0]["titolo"]["it"] = "Monte Rosa";'
    la funzione sarebbe

    Codice PHP:
    <?php

    // $campo         => attributo es. "'titolo'", "'descrizione'"
    // $campobis    => nome form es. "'titit'", "'titen'"
    // $filemod        => URL file da modificare es. "'Upload/Foto.php'"
    // $array        => var array contenuta in $filemod es. "$foto"
    // $arrayname    => nome array contanuto in $filemod es. "'foto'"
    // $ling        => lingua attributo modificato es. "'it'", "'en'", "'fr'"

    function modifica($campo$campobis$filemod$array$arrayname$ling) {
            
            
            
    $testof file($filemod);
            
    $testofTOT "";
            
            
            for(
    $i 0$i count($testof); $i++){
                
    $testofTOT .= $testof[$i];
            }
            
            
            for(
    $i 0$i count($array); $i++){
            
                
    $cont $campobis.$i;
            
                if(
    $ling){
                        
    $replax '$'.$arrayname.'['.$i.']["'.$campo.'"]["'.$ling.'"] = "'.$array[$i][$campo][$ling].'";';
                    }else{
                        
    $replax '$'.$arrayname.'['.$i.']["'.$campo.'"] = "'.$array[$i][$campo].'";';
                    }
            
                if(
    $ling){
                        
    $replaz '$'.$arrayname.'['.$i.']["'.$campo.'"]["'.$ling.'"] = "'.$_POST[$cont].'";';
                    }else{
                        
    $replaz '$'.$arrayname.'['.$i.']["'.$campo.'"] = "'.$_POST[$cont].'";';
                    }
                    
                    
    //fino a qui tutto regolare... poi. . . . .
            
                
                
    if($replax != $replaz){
                    
    $res str_replace($replax$replaz$testoTOT);
                }

            }
            
            
    $file fopen($filemod"w+");
                    
    fwrite($file$res);
                    
    fclose($file);
            
        }

    ?>
    eseguita all'interno di un ciclo for che man mano cambia i paramatri (andando a modificare $foto[$i])...

    lo so, è un tantino intricato...

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Essendo stringa verrà trattata come tale, non verrà eseguita da php. Devi ciclare l'array, anche se non ho ben capito cosa devi ottenere/fare

  5. #5
    Originariamente inviato da Ranma2
    Essendo stringa verrà trattata come tale, non verrà eseguita da php. Devi ciclare l'array, anche se non ho ben capito cosa devi ottenere/fare
    non ho capito di che stringa parli... $res?

    e come dovrei ciclare l'array?

  6. #6
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Spiega cosa vuoi ottenere.

  7. #7
    ho un file (Foto.php) che contiene un database con tutte le proprietà di un album fotografico (titolo, descrizione, dimensioni ecc). La funzione di cui sopra dovrebbe servirmi per permettere ad un utente di modificare le proprietà delle foto tramite un form...

    Ora, funziona tutto: database, form, inizializzazione delle variabili da settare... l'unico passaggio che non riesco a far funzionare è str_replace...

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.