Visualizzazione dei risultati da 1 a 8 su 8

Discussione: errore su preg_replace

  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592

    errore su preg_replace

    ho un motore di ricerca e funziona tutto. ma il cliente dopo 8 mesi che gli ho consegnato il lavoro mi trova un "bug". quando mette le parentesi nel motore di ricerca, gli ritorna un errore..
    lo script incriminato è questo:
    Codice PHP:
    $TESTO_NOTE $row_Autori['TESTO_NOTE'];    for ($x 0$x count($keys); $x++) {$TESTO_NOTE preg_replace("/$keys[$x]/i""<strong>$0</strong>"$TESTO_NOTE);  

    in sostanza le parole che vengono cercate, nell'output vengono messe in bold..
    l'errore è Compilation failed: missing ) at offset 3 in [nome del file] at line...
    ho cercato ma non ho trovato nulla.. l'unica cosa che ho "trovato" è eliminare dalla stringa di ricerca le parentesi..

  2. #2
    Scusa eh, ma che pretendi? Se in $keys[$x] ci sono caratteri che per la regular expression hanno un senso, salta tutto. Perchè, se ci mette un punto che succede? o se ci mette un punto interrogativo? devi fare l'escape dei caratteri "pericolosi" (li fai precedere da \). quindi punti, parentesi tonde, quadre, punti interrogativi, e chi più ne ha più ne metta http://www.fon.hum.uva.nl/praat/manu...haracters.html
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non ho capito dove devo fare questa cosa, se alla fonte o l�, nel codice che ho messo.. (credo la seconda)
    devo fare delle str_replace? con cosa? non riesco a trovare.. trovo come sostituire i caratteri accentati ma non trovo il carattere per le parentesi..

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    c'è questa funzione

    http://php.net/preg_quote

  5. #5
    Quote Originariamente inviata da boots Visualizza il messaggio
    c'è questa funzione

    http://php.net/preg_quote
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ...che sbaglio?
    Codice PHP:
    for ($x 0$x count($keys); $x++) {
            
    $TESTO_NOTE preg_quote($TESTO_NOTE'(');
            
    $TESTO_NOTE preg_replace("/$keys[$x]/i""<strong>$0</strong>"$TESTO_NOTE);  

    Warning: preg_replace(): Compilation failed: missing ) at offset 3 in nome_file on line 480

    Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 7 in nome_fileon line 480



    La riga 480 ovviamente è quella della preg_replace

  7. #7
    http://php.net/manual/it/function.preg-quote.php

    codice:
    $TESTO_NOTE = preg_quote($TESTO_NOTE);
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    sbagliavo perchè facevo così...
    $TESTO_NOTE = preg_quote($TESTO_NOTE);invece è giusto
    Codice PHP:
    $keys[$x] = preg_quote($keys[$x]);
            
    $TESTO_NOTE preg_replace("/$keys[$x]/i""<strong>$0</strong>"$TESTO_NOTE); 

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.