Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133

    funzione str_replace che non sostituisce!!!

    ho creato una funzione che dovrebbe sostituire alcuni caratteri particolari se presenti all'interno di un campo di testo, per poi inserire il testo nel database (ma questo funziona, è la parte di sostituzione dei caratteri che non funziona...)

    ecco il codice:

    codice:
    foreach($var as $key=>$val)
    {
           if(trim($val) == "") $var[$key] = NULL;
           else
           {
              $var[$key] = str_replace('’', "'", $var[$key]);
              $var[$key] = str_replace('“', "\"", $var[$key]);
              $var[$key] = str_replace('”', "\"", $var[$key]);
           }
    }
    praticamente, se il campo è vuoto, setto il valore di var[key] a NULL, altrimenti eseguo la sostituzione dei caratteri indicati... la cosa strana è che se gli metto ad esempio un qualche controllo (echo "valore trovato") mettendo la sostituzione all'interno di un if, mi stampa effettivamente "valore trovato", ma poi la sostituzione sembra che non la faccia proprio, infatti quando vado a rivedere il testo inserito, ritrovo sempre i caratteri che invece sarebbero dovuti sparire...

    potete aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    esattamente dove lo mettevi echo
    "valore trovato"
    ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    aggiungevo qualcosa del tipo

    codice:
    if(!(strpos($var[$key], '’'))===false) echo "valore trovato";
    e puntualmente mi stampava "valore trovato"

    EDIT: mi correggo... non stampa "valore trovato", eppure io so che quei caratteri sono presenti, in quanto ho fatto copia incolla proprio dal contenuto di queste textarea!!! continuo a non capire...

  4. #4
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    non sono completamente sicuro di questa if...

    prova a farti stampare anche la posizione:

    Codice PHP:
    if(!(strpos($var[$key], '’'))===false) {echo "valore trovato, posizione ".strpos($var[$key], '’');} 

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    ehm... errore mio... in realtà, dalla strpos sembra che il carattere non compaia... eppure SO che c'è, perchè ho prelevato il carattere con un copia incolla proprio dal campo di testo stesso!!!

    la butto lì: può essere dovuto al fatto che io sviluppo l'applicazione in ambiente win, ma poi questa gira in ambiente unix? non so... se è così mi pare molto strano...

  6. #6
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    prova ad andare per esclusione:

    if(!(strpos($var[$key], '’'))===false) {echo "valore trovato, variabile: ".$var[$key].", posizione ".strpos($var[$key], '’');}

    cosi che ti dà?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    no, mi sono corretto, la strpos non le trova, ma io so che ci sono!... può essere che non le trovi perchè la stringa è in formato unicode (supponendo che invece PHP "lavori" con il classico ISO)?

  8. #8
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    no, non hai capito
    volevo solo che verificassi che funzione strpos facesse il controllo nella stringa esatta, ecco perchè volevo che stampassi anche la stringa:
    Codice PHP:
    echo $var[$key

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    ah.. scusa... non avevo capito... ora provo e poi posto la stringa.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    133
    allora, ecco una delle tante stringhe della pagina:

    codice:
    Il lavoro della tesi di laurea deve essere adeguato all’impegno previsto nel regolamento didattico per acquisire i crediti riservati alla prova finale. In particolare, è opportuno distinguere tra tesi di tipo “compilativo” e tesi di tipo “progettuale”. Nelle prime, il compito del laureando è di approfondire l’argomento proposto dal relatore, acquisendone una conoscenza sufficiente per poterne esporre in maniera competente gli aspetti fondamentali in sede di discussione. Nel secondo caso, oltre alla fase di studio ed eventuale ricerca bibliografica sull’argomento oggetto di tesi, il progetto sviluppato dal laureando deve contenere una componente significativa di contributo personale, anche se non originale. Tipicamente, gli elaborati che prevedono la produzione di software, sono strutturati in due parti: nella prima parte vengono analizzati il contesto e i requisiti del progetto, insieme alle metodologie di sviluppo ed eventualmente all’impatto sull’applicazione; nella seconda parte viene riportato (eventualmente in forma ridotta) il codice sviluppato dallo studente. E’ possibile per il laureando sviluppare il progetto di tesi in concomitanza con l’attività di stage e/o in collaborazione con ditte o enti esterni; tuttavia l’elaborato di tesi deve rimanere ben distinto dall’attività di tirocinio.
    come si nota, i caratteri che cerco ci sono! eppure, la str_replace non me li sostituisce...

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.