• User Newbie

    Ricerca Wordpress con visualizzazione parti di testo ricercato tramite RegExpr

    Buonasera,

    mi trovo all'interno della pagina content.php di un tema Wordpress. Il seguente codice ha la funzione di stampare a video l'estratto (excerpt) di un articolo, che io ho volutamente sostituito con il contenuto (content) per una questione di comodità dato che quest'ultimo ha molte più parole dell'estratto.

    [PHP]<?php$keys = explode(" ", $s);$excerpt = get_the_content();$excerpt = prev_match_all(...???...);echo apply_filters("the_excerpt", $excerpt) ;?>[/PHP]

    Il mio scopo è di visualizzare solo le parti di testo che contengano i termini ricercati. Ad esempio:

    Supponiamo che il contenuto dell'articolo sia "Tizio va a fare la spesa e Caio va a lavorare" e che io abbia effettuato un ricerca, tramite Wordpress, della parola "Caio". Fingendo che l'articolo abbia 300 parole e l'estratto ne visualizzi solamente 50, la mia intenzione non è di visualizzare l'estratto delle prime 50 parole dell'articolo dopo una ricerca, ma di estrarre dall'intero contenuto dell'articolo solo le parti che hanno i termini ricercati, come ad esempio "...spesa e Caio va a...".

    Ho bisogno di consigli sul come implementarlo. Io ho puntato la funzione prev_match_all che prevede una buona conoscenza di espressioni regolari che, purtroppo, io non ho.

    Se qualcuno riuscisse ad aiutarmi perché sono circa 2 ore che sto girovagando tra Google e terzi alla ricerca di una soluzione.

    Grazie e ancora buona serata!!


  • User Attivo

    @Lino12 said:

    Io ho puntato la funzione prev_match_all
    Non è che ti sei sbagliato, il nome della funzione dovrebbe essere preg_match_all


  • User Newbie

    @elmanisero said:

    Non è che ti sei sbagliato, il nome della funzione dovrebbe essere preg_match_all

    Ciao elmanisero,

    scusami, ma ho sbagliato a scrivere sul post. La funzione sul codice è scritta correttamente. Il problema è che non conosco bene le espressioni regolari e quindi sto facendo una faticaccia. Conosci per caso qualche sito che ti permette di testare le RegExpr?! Un sito fatto bene però, perché ne ho provati alcuni che sono davvero fatti male e mi complicano ancor di più la vita. Il mio fine è estrapolare da un articolo n frasi, che siano compiute o incompiute non ha importanza, in base ai termini ricercati. I termini ricercati si trovano all'interno dell'array $keys.

    Prendiamo, ad esempio, questo testo:

    Per molti decenni la precisa classificazione tassonomica del panda è stata oggetto di discussione, in quanto sia i Panda giganti sia i Panda rossi presentano al contempo caratteristiche appartenenti agli orsi e ai procioni. Comunque, esami genetici hanno rivelato che i Panda giganti sono veri e propri orsi, appartenenti a pieno titolo alla famiglia degli Ursidi. La specie di orsi ad essi più vicina è quella dell'orso dagli occhiali del Sud America. Resta in discussione se i Panda rossi vadano collocati o meno tra gli Ursidi piuttosto che nella famiglia dei Procyonidae. Le origini del panda gigante vanno ricercate in alcune forme del Miocene superiore (circa 10 milioni di anni fa). L’europeo Agriarctos sembra appartenere allo stesso ramo evolutivo di Ailuropoda, così come Ailurarctos, vissuto in Cina. Fossili di panda giganti veri e propri (genere Ailuropoda) risalgono al Pliocenesuperiore della Cina (poco meno di tre milioni di anni fa). Ailuropoda microta, questo il nome della specie fossile, possedeva già le specializzazioni della forma attuale, ma era più piccolo. Un'altra specie fossile, Ailuropoda baconi, più grande dell'odierno panda gigante, è conosciuta in terreni del Pleistocene cinese. (Fonte: Wikipedia)

    Supponendo che questo sia un articolo all'interno del mio sito Wordpress, effettuo una ricerca del termine "Ailuropoda". L'output che vorrei trovarmi sarà il seguente:

    ..ramo evolutivo di Ailuropoda, così come Ailurarctos...
    ..e propri (genere Ailuropoda) risalgono al Pliocenesuperiore...
    ..di anni fa). Ailuropoda microta, questo il...
    ..altra specie fossile, Ailuropoda baconi, più grande...
    ..ricerca del termine "Ailuropoda". L'output che...

    In pratica vorrei poter proporre all'utente tutte le parti dell'articolo che hanno i termini ricercati. Ogni risultato deve prendere n parole prima e dopo del termine ricercato, non contando spazi e punteggiature. Poter fare una cosa simile con le RegExpr sarebbe fulmineo, mentre con un ciclo appesantirebbe troppo la ricerca se i termini ricercati dovessero estrarre una quantità di articoli numerosa.

    Ho ripetuto ciò che avevo detto nel primo post, ma adesso è un po' più dettagliato!! 🙂


  • User Attivo

    Mi dispiace ma non conosco nessun sito valido che permette testare le RegExpr.


  • User Newbie

    Se a qualcuno dovesse servire, ho trovato questo RegExpr Tester online..

    cuneytyilmaz.com/prog/jrx

    ..in cui è possibile testare le Espressioni Regolari in Real Time.