Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    problema con str_replace

    é davvero strano....o forze sbaglio....

    La pagina originale è di print.php sul cms di flatnuke....

    Inzialmente vengono inserite queste variabili:

    Codice PHP:
    $news=$_GET['news'];
    $sect=$_GET['mod'];
    $file=$_GET['file']; 
    e dove avvengono gli include:

    Codice PHP:
        if($file=="")

            include(
    "public/sections/$sect/section.php");
        else
        
            include(
    'public/sections/'.$sect.'/'.$file); 
    quello che praticamente volevo fare era un str_replace di alcune parole esempio (parola) da sostituire con (parole).

    Cosi ho creato questo:

    $file = str_replace("'\[parola|parole\]'" , include('public/sections/$sect/section.php') , $file ); // Login

    ma non modifica nulla...... l'ho inserito prima degli include ::-ohmy.gif::


    dove chiaramente $file indica un contenuto di lettere dentro un file di testo

  2. #2
    Codice PHP:
     $file str_replace("'\[parola|parole\]'" , include('public/sections/$sect/section.php') , $file ); // Login 
    VVoVe:

    alora, ci sono quelle 15/20 cose che non vanno ^^
    [list=1][*]la funzione str_replace(), come dice anche il nome stesso, opera su stringhe, non su files[*]'\[parola|parole\]' --> Secondo me stai facendo casino con le espressioni regolari, che sono un'altra cosa[*]str_replace vuole almeno 3 parametri (vd. manuale) e opera così:
    Codice PHP:
    $stringadamodificare "Questa funzione fallisce";
    $nuova_stringa str_replace("fallisce""funziona"$stringadamodificare); 
    [/list=1]

    Comunque per una panoramica completa guarda il manuale all'indirizzo cheti ho dato!

    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    Originariamente inviato da iraiscoming223
    Codice PHP:
     $file str_replace("'\[parola|parole\]'" , include('public/sections/$sect/section.php') , $file ); // Login 
    VVoVe:

    alora, ci sono quelle 15/20 cose che non vanno ^^
    [list=1][*]la funzione str_replace(), come dice anche il nome stesso, opera su stringhe, non su files[*]'\[parola|parole\]' --> Secondo me stai facendo casino con le espressioni regolari, che sono un'altra cosa[*]str_replace vuole almeno 3 parametri (vd. manuale) e opera così:
    Codice PHP:
    $stringadamodificare "Questa funzione fallisce";
    $nuova_stringa str_replace("fallisce""funziona"$stringadamodificare); 
    [/list=1]

    Comunque per una panoramica completa guarda il manuale all'indirizzo cheti ho dato!

    capito....

    ma c'è un piccolo particolare....

    tu hai in $stringadamodificare un valore giusto? cioè un testo no?

    Bene io non ho valori di niente....

    ho solo un echo con un include di $file che indica il percorso da leggere....

    ripeto messo in questo modo:
    include('public/sections/'.$sect.'/'.$file);

    quindi se io voglio modificare la formattazione dei caratteri contenuti dentro al percorso di $file?

    ho provato ad utilizzare fopen ma poi ho alcuni problemi nel visualizzare il linguaggio php che viene completamente visionato in html.

    Spero hai capito

  4. #4
    Originariamente inviato da alessiofbt
    quindi se io voglio modificare la formattazione dei caratteri contenuti dentro al percorso di $file?
    Per modificare il percorso semplicemente lo tratti come una stringa, se vuoi modificare il contenuto del file l'unica idea che mi viene in mente è di utilizzare la funzione file() per salvare tutto il contenuto in unarray, poi intervenire sull'array e quindi riscrivere il file...

    Poi vedi tu se trovi un'idea migliore...

    Era questo quello che volevi fare?
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  5. #5
    Originariamente inviato da iraiscoming223
    Per modificare il percorso semplicemente lo tratti come una stringa, se vuoi modificare il contenuto del file l'unica idea che mi viene in mente è di utilizzare la funzione file() per salvare tutto il contenuto in unarray, poi intervenire sull'array e quindi riscrivere il file...

    Poi vedi tu se trovi un'idea migliore...

    Era questo quello che volevi fare?
    esatto hai appreso in pieno il problema con la seconda cosa che hai detto, quella di modificare il contenuto del file

    dal link che mi hai dato ho capito come utilizzare la funzione di file()

    però non ho capito come intervenire con le array però ho provato con str_replace:

    Codice PHP:
    $lines file("public/sections/$sect/$file");
    $linet str_replace("parole""parola"$lines);

    echo 
    "$linet"

    inutile dire che non mi funziona.....


    mi puoi fare un tuo di esempio?


  6. #6
    visto che file scrive ogni riga di un file in ogni posizione dell'array fai una cosa tipo:

    Codice PHP:
    $lines file("public/sections/$sect/$file");
    for(
    $i=0$i <= count($file); $i++)
    $linet[$i] = str_replace("parole""parola"$lines[$i]); 
    Non ho il tempo di provarla perchè sono di frettissima, ma dovrebbe funzionare... fammi sapere, torno stasera =)
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  7. #7
    mi dice

    Array

    uhm :master:

    avevo provato anche con questa:

    $source = file_get_contents("public/section/$sect/$file");
    $text = str_replace("parole", "parola", $source);

    e mettere

    echo "$text";

    neanche questa funziona addirittura non mi mostra nulla :master:

  8. #8
    ti dice array cosa?? chi si permette di dirti ciò???

    Hai per caso fatto un

    echo $linet;

    ??

    Gli array non li stampi così
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  9. #9
    Originariamente inviato da iraiscoming223
    ti dice array cosa?? chi si permette di dirti ciò???

    Hai per caso fatto un

    echo $linet;

    ??

    Gli array non li stampi così
    chiaro...sbaglio?

    dimmi come perchè gli array non li uso quasi mai

  10. #10
    allora se lo vuoi stampare su un file usa una delle funzioni tipo
    file_put_contents() (vd il link al manuale degli altri post) o fwrite() (anche se è più laboriosa)..

    Purtroppo gli array non li utilizzo quasi mai nemmeno io, se non in query o quando è strettamente necessario...
    In C (ma sicuro funziona anche in PHP), faccio così:
    Codice PHP:
    for($i=0$i <= count($linet); $i++)
    echo 
    $linet[$i]; 
    Forse (anzi, quasi sicuramente) c'è una funzione per stampare gli array, ma al momento non mi viene in mente...
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

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.