13 messaggi dal 04 ottobre 2002
Ciao a tutti,
ho un piccolo problema nel gestire la funzione replace per evidenziare le parole ricercate. Il problema è che nel corrispondente campo del DB, dove eseguo la ricerca, oltre al testo è anche presente del codice HTML e quindi mi sostituisc anche quello!!!!
Come Posso risolvere?

[°°FaBr|z|o°°]
13 messaggi dal 04 ottobre 2002
up :(

[°°FaBr|z|o°°]
879 messaggi dal 09 luglio 2002
www.i-studio.it
Ti dico subito che ho affrontato un problema proprio uguale a quello che hai tu e non c'e' stata una soluzione immediata...

Il mio problema era che se nel testo del DB c'era scritto ad esempio:
"Per accedere al forum di AspItalia cliccare <a hr ef="http://forum.aspitalia.com">qui</a>"
e qualcuno mi cercava la parola "italia" io facevo un replace per evidenziare il testo e quello che succedeva era che il testo diventava cosi':
"Per accedere al forum di AspItalia cliccare <a hr ef="http://forum.asp<span class="evidenziato">italia</span>.com">qui</a>"

Insomma veniva fuori un bel casino...
Non c'e' rimedio a questa cosa, perche' quando fai il replace non hai idea di quale testo stai "modificando"...
La soluzione che mi era venuta in mente (e che ora ti propongo) era quella di modificare il testo cercando di eliminare a priori i link. Ad esempio, se hai quel testo di prima:
"Per accedere al forum di AspItalia cliccare <a hr ef="http://forum.aspitalia.com">qui</a>"
l'idea era di trasformare il testo in questo modo:
"Per accedere al forum di AspItalia cliccare <L1>qui</L1>"
e creare una tabella "link" collegata nella quale i record (in questo caso quello con ID 1) contengono un campo "url" con dentro "http://forum.aspitalia.com".

A quel punto, il problema del replace non c'e' piu' e occorre solo fare un altro replace quando si mostra il testo per sostituire la stringa "<L1>qui</L1>" con il relativo link.

Non so se sono stato chiaro ma credo che la cosa funzioni in questo modo.

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it
13 messaggi dal 04 ottobre 2002
Grazie per la risposta, una cosa del genere mi era venuta in mente anche a me ma vista la complessità spervo di trovare una soluzione + semplice. Indicizzare 10.000 pagine con dei link all'interno è un po un casino...visto cmq che soluzioni non ce ne sono, mi sa che devo cercare di implementare questa soluzione da te proposta.
Ciao

[°°FaBr|z|o°°]
879 messaggi dal 09 luglio 2002
www.i-studio.it
Secondo me potresti cercare di creare uno script ASP che ti un "replace" per tutti i record. L'algoritmo potrebbe essere una cosa del genere:
1) cerca tutte le sequenze "<a href="
2) dal primo carattere "doppi-apici" spostati in avanti fino a trovare il successivo carattere uguale
3) tutto il testo contenuto tra questi due "intervalli" e' l'indirizzo web da inserire nella tabella "LINK"
4) sostituire al testo "<a href="xyz">" il testo "<Ln>" con n che e' stato preso dalla tabella "link"
5) sostituire al testo "</a>" il corrispondente "</Ln>"

C'e' anche un'altra possibilita': questa "trasformazione" potresti anche farla quando leggi il testo da mostrare nella pagina. Cioe', potresti seguire questa strada:
1) leggi il testo dal DB
2) applichi la trasformazione (in questo caso, i link li puoi memorizzare in un array nella pagina)
3) una volta terminata la trasformazione, applichi la funzione "replace" per evidenziare il testo
4) applichi di nuovo la "replace" per ricostruire il link

Che ne dici?

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it
13 messaggi dal 04 ottobre 2002
mi sa che la seconda è decisamente migliore...vedo di prendere questa strada...appena butto giù qualcosa ti faccio sapere
Ciao

P.S. scusa per le brevi risposte ma ho molta fretta e grazie X l'aiuto

[°°FaBr|z|o°°]

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.