Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    23

    Intercettare una parola in un documento php e sostituila con un link

    Salve a tutti e scusate il titolone!

    Spesso la tecnica viene usata dai siti per inserire pubblicità. A me serve per inserire i significati di alcune parole. L'utente inserisce un testo nel database. Quando il testo viene riproposto in formato html, a determinate parole, presenti in una tabella di glossario, bisognerebbe sostituire un link che si ricollega alla pagina con il significato. In realtà la procedura potrebbe pure essere semplice ma significa caricare e scorrere tutta una tabella. Magari invece se fosse presente qualche sistema ottimizzatissimo, sarebbe l'ideale.

    Cmq io l'ho pensata così:
    [list=1][*]Carico il glossario tramite una select[*]scorro parola per parola ciclando il recorset[*]sostituisco con un replace le parole del testo con il link del recorset[*]visualizzo il risultato a video[/list=1]

    Che ne pensate? Se la tabella contiene 20 valori va pure bene, ma se ne contiene 200 già è un pelo oneroso per il DB e il webserver.
    Qualche info migliore?

    Grazie!!!

  2. #2
    con str_replace dovresti farlo facilmente e in maniera poco stressante per il server...
    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    23
    si ma questo significa ciclare tutto il recorset.

    Non c'è altro modo?

  4. #4
    Io farei un misto di php (per estrarre dal db le parole da sostuire) e il carissimo jquery per rimpiazarle nella pagina.

    Inoltre puoi fare un js statico da aggiornare (fopen-fwrite-etc.etc.) solo all'inserimento di una nuova parola
    Demo:
    codice:
    <html>
    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    <script type="text/javascript" language="javascript"> 
    $(function () {
    	// la lista deve essere generata tramite php
    	$("#content").html($("#content").html().replace("parole", "<a href=\"#\">parole</a>"));
    	$("#content").html($("#content").html().replace("ciao", "<a href=\"#\">ciao</a>"));
    	}); 
    </script> 
    </head>
    
    <body>
    <div id="content">
    
    
    
    ciao non sò se questo possa fare a caso tuo.
    In pratica tramite jquery si va a sostituire alcune parole indicate nello js e presenti nel div con id "content" con un determinato link.
    Ovviamente il codice js dovrà essere generato dinamicamente esternamente alla pagina da php.
    </p>
    </div>
    
    <div id="altro">
    ciao parole
    </div>
    
    </body>
    </html>

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    perché ciclare il recordset? metti la stringa intera nella funzione e sostituisci con il link...

    le sostituzioni le metti in un array che alimenti con un DB o con un file di testo e sei a cavallo... non è dispendiosa per il server

    jQuery è un'idea simpatica, con la controindicazione che il Javascript deve essere attivo sul client, altrimenti non funziona...

  6. #6
    Guarda che puoi usare gli array per le stringhe da cercare e le sostituzioni...
    Ciao!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    23
    Originariamente inviato da fmortara
    Guarda che puoi usare gli array per le stringhe da cercare e le sostituzioni...
    Si ma difatti posso caricare il testo in una variabile, e il recordset in un array multidimensionale. Ciclo l'array, trovo le parole e le sostituisco. Se questa è la procedura + valida allora devo solo verificare se è onerosa per il webserver. Parliamo cmq di testi da n.1 pagina di word massimo e di almeno 500 parole nell'array... boh spero di nn rallentare troppo nella visualizzazione della pagina.

    Grazie!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.