Visualizzazione dei risultati da 1 a 5 su 5

Discussione: eregi_replace HELP!

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    3

    eregi_replace HELP!

    Ciao a tutti, sono nuovo nel forum e mi affido alla vostra skill per venirne fuori da un problema che mi ha creato i crampi ala pancia.
    Allora:
    la funzione semplice di eregi_replace la scrivo così:

    Codice PHP:
    function testo($testo){
    $testo eregi_replace("\\[Purl]([-_./a-z 0-9!&%#?+,'=:;@~]+)\\[PurlE]","\\\1"),$testo);
    return 
    $testo;} 
    Quindi, dato un testo del tipo:

    Codice PHP:
    $stringa testo("Creo una stringa che [Purl]contiene[PurlE] il testo per la funzione"); 
    Il risultato sarà effettivamente:
    Creo una stringa che contiene il testo per la funzione

    E fino a qui, tutto ok.

    Il mio problema nasce dal fatto che, all'interno dei campi di delimitazione (quindi [Purl] e [PurlE]), vorrei metterci dei numeri, i quali vanno a pescare tale numero all'interno di un database.

    Quindi scrivendo la stringa:

    Codice PHP:
    $string "Mi piace molto [Purl]5[PurlE] e [Purl]13[PurlE]; 
    ritornandomi come risultato:

    Mi piace molto pane e vino

    Ho provato in vari modi, ve ne espongo uno, quello che pensavo andar bene:

    Codice PHP:
    // funzione per andare a cercare gli ID nel database
    function searchDB($stringa,$database_DB,$DB){
    // seleziono il db
    mysql_select_db($database_DB$DB);
    // la query
    $query_search_pietanza "SELECT * FROM pietanze WHERE id = '".$stringa."'";
    $search_pietanza mysql_query($query_search_pietanza$DB) or die(mysql_error());
    $row_search_pietanza mysql_fetch_assoc($search_pietanza);
    $totalRows_search_pietanza mysql_num_rows($search_pietanza);
    //la stringa che mi ritorna
    return $row_search_pietanza['nome_pietanza'];
    }

    // ora riscrivo la funzione testo con la modifica per la richiesta al database 

    function testo($testo,$database_DB,$DB){

    $testo eregi_replace("\\[Purl]([0-9!&%#?+,'=:;@~]+)\\[PurlE]",searchDB("\\1",$database_DB,$DB),$testo);

    return 
    $testo;} 
    Con questa funzione, in realtà funziona... ma male. Mooooolto male!!!
    Ovvero, sì, va a pescarmi dal database i dati, me li reistituisce, MA...
    mi prende sempre l'ID 1.
    L'ID, ossia l'1, viene preso dalla funzione searchDB(\\1,....)...all'interno dell'eregi_replace
    Il mio risultato della precedente stringa sarà quindi:
    Mi piace molto pasta e pasta

    Quindi, quando il risultato dell'eregi_replace non è richiamato all'interno di una funzione, da il risultato sperato, nel momento che è all'interno di una funzione (in questo caso searchDB) diventa una stringa a tutti gli effetti.

    Spero di essermi spiegato bene.
    Come posso ovviare a questo problema? Il fatto di fare due funzioni è dato dal fatto che all'interno di reregi_replace non posso creare un costrutto, però mettere una funzione all'interno dello stessoè consentito.

    Grazie a tutti quanti

  2. #2
    Ciao,
    eregi_replace() è deprecata ed è quindi consigliato usare preg_replace() al suo posto..

    però a parte questo

    tu hai creato una funzione searchDB($stringa,...)
    che fa
    "SELECT * FROM pietanze WHERE id = '".$stringa."'";

    è chiaro che se poi tu scrivi nel codice
    Codice PHP:
    $testo eregi_replace("\[Purl]([0-9!&%#?+,'=:;@~]+)\[PurlE]",
    searchDB("\1",$database_DB,$DB),$testo); 
    mettendo searchBD("\1",...)
    otterrai sempre e solo il la pietanza con id 1!!!!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    3
    Grazie philbert per la risposta.
    Per quanto riguarda la funzione deprecata, hai perfettamente ragione. Inizialmente prima di creare il post l'avevo anche scritto ma poi l'ho cancellato.
    Per l'altro discorso invece, nella funzione nn sto mettendo "1" come stringa nella funzione, ma "\\1" come risultante di eregi_replace.
    Cmq si è capito che nn funziona...
    Come è possibile farlo allora?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    3
    up

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    3
    Nessuno riesce a darmi una risposta, oppure solamente incanalarmi verso la direzione giusta.
    Pliiiiiiiis, pliiiiiiiis

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.