ciao
una mia curiosità in quanto lo script che ho fatto ora funziona e questa è la cosa principale.
comunque vorrei sapere il perchè.
ho fatto un piccolo motore di ricerca che cerca una parola e una piccola frase in un testo, inserendola mi mostra i link di tutte le pagine in cui la parola o la frase viene trovata.
il problema è nato con le parole che contencono caratteri accentati (à, è....).
prendiamo ad esempio che nella pagina ci sia il testo Arquà Petrarca
1° prova
lo script che cerca la parola/frase era
dove $cerca la parola/frase da cercare e $speciale il testo dove cercare
inserendo nel form di ricerca Arquà o Arquà Petrarca sempre corrispondenza non trovata
2° prova
mi sono ricordato che nell'html non è scritto Arquà Petrarca, ma Arquà Petrarca per cui, dopo varie prove ho corretto lo script in
e primo mistero
inserendo Arquà -> corrispondenza non trovata
inserendo Arquà Petrarca -> crea il link alla pagina in cui la frase c'è
3° prova
dopo vari esperimenti ho modificato l'array $con aggiungendo uno spazio dopo il ;
risultato
inserendo Arquà -> crea il link alla pagina in cui la parola c'è
inserendo Arquà Petrarca -> corrispondenza non trovata
4° prova
che finalmente funziona
risultato
inserendo Arquà -> crea il link alla pagina in cui la parola c'è
inserendo Arquà Petrarca -> crea il link alla pagina in cui la frase c'è
chi sa spiegarmi il mistero di quello spazio che esiste e non esiste?
una mia curiosità in quanto lo script che ho fatto ora funziona e questa è la cosa principale.
comunque vorrei sapere il perchè.
ho fatto un piccolo motore di ricerca che cerca una parola e una piccola frase in un testo, inserendola mi mostra i link di tutte le pagine in cui la parola o la frase viene trovata.
il problema è nato con le parole che contencono caratteri accentati (à, è....).
prendiamo ad esempio che nella pagina ci sia il testo Arquà Petrarca
1° prova
lo script che cerca la parola/frase era
PHP:
if (preg_match("/\b".$cerca."\b/i", $speciale)){
//.....
}//.....
inserendo nel form di ricerca Arquà o Arquà Petrarca sempre corrispondenza non trovata
2° prova
mi sono ricordato che nell'html non è scritto Arquà Petrarca, ma Arquà Petrarca per cui, dopo varie prove ho corretto lo script in
PHP:
$rep=array('à','è','é','ì','ò','ù');
$con_01=array('à','è','é','ì','ò','ù');
$cerca_01=str_replace($rep, $con_01, $cerca);
//...
if (preg_match("/\b".$cerca."\b/i", $speciale) || preg_match("/\b".$cerca_01."\b/i", $speciale)){
//.....
}//.....
inserendo Arquà -> corrispondenza non trovata
inserendo Arquà Petrarca -> crea il link alla pagina in cui la frase c'è
3° prova
dopo vari esperimenti ho modificato l'array $con aggiungendo uno spazio dopo il ;
PHP:
$con_01=array('à ','è ','é ','ì ','ò ','ù ');
inserendo Arquà -> crea il link alla pagina in cui la parola c'è
inserendo Arquà Petrarca -> corrispondenza non trovata
4° prova
che finalmente funziona
PHP:
$rep=array('à','è','é','ì','ò','ù');
$con_01=array('à','è','é','ì','ò','ù');
$con_02=array('à ','è ','é ','ì ','ò ','ù ');
$cerca_01=str_replace($rep, $con_01, $cerca);
//...
if (preg_match("/\b".$cerca."\b/i", $speciale) || preg_match("/\b".$cerca_01."\b/i", $speciale) || preg_match("/\b".$cerca_02."\b/i", $speciale)){
//.....
}//.....
inserendo Arquà -> crea il link alla pagina in cui la parola c'è
inserendo Arquà Petrarca -> crea il link alla pagina in cui la frase c'è
chi sa spiegarmi il mistero di quello spazio che esiste e non esiste?