Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441

    Espressioni regolari, preg_replace

    Ciao a tutti, sarò breve, ho un textarea dove inserito un testo questo viene inviato ad un database...vorrei che se in questo testo fosse inserita una parola preceduta dal simbolo # (es: #Microsoft) questa venisse sostituita con un link esteticamente uguale (cioè #Microsoft).

    Ho navigato nel web e ho trovato quello che stavo cercando: la funzione, se funzione è realmente, preg_replace (QUI).

    Nella guida ho capito come funziona, però il problema dove sta? Il mio problema è che non trovo il modo di trovare la parola preceduta da # e di sostituirla, fino ad adesso sono arrivato qui: come potete vedere la variabile $cerca l'ho lasciata vuota perchè non saprei che codice inserire dentro per eseguire la ricerca della variabile $text, chi ne sapesse qualcosa, chiedo estremo aiuto! GRAZIE

    (Chi conosce twitter dovrebbe capirmi per le hashtag: sono la stessa cosa che vorrei creare in breve! )

    Codice PHP:
    $text $_POST['post'];
    $cerca '          ';
    $sostituisci '#link'
    $text preg_replace($cerca$sostituisci$text); 

  2. #2
    Il Cross-posting è vietato dal regolamento. Hai già aperto la stessa discussione in QUESTO post.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Cross-posting significa postare lo stesso messaggio in piu' sezioni diverse, e non e' questo il caso.
    Creare un nuovo thread per approfondire una parte specifica di una domanda gia' posta invece non e' contro il regolamento.

    Tornando al quesito, la cosa piu' utile da fare e' stabilire quali caratteri sono validi per l'identificatore: solo lettere, lettere e numeri, trattini, underscore, etc. Una volta stabilito quello e' piu' semplice costruire la regular expression corretta.

  4. #4
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Si ok, questo lo sapevo anche io, il problema è che le ho provate tutte: non crredo di avere capito il sistema.
    Per esempio in questo caso se scrivessi: 'eccoci a #casa' mi verrebbe stampato sulla pagina 'eccoci a #linkcasa' e quello che vorrei ottenere è 'eccoci a #link'

    Codice PHP:
    $cerca '/[#]/';
    $sostituisci '#link';
    $text preg_replace($cerca$sostituisci$text); 

  5. #5
    Beh si scrivere le regular expression a caso difficilmente porta al risultato desiderato

    Bisogna anche sapere in che modo trasformi una parola in link.

  6. #6
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    beh, perchè allora non mi aiuti concretamente? la sostituzione in link è un problema in secondo piano. Ripeto, non riesco a comprendere il sistema, anche perché di guide fatte bene nel web io non le trovo. Non provate a linkarmele ritenendo questa una risposta più che sufficiente perchè quello lo posso fare anche io di cercarmele.

  7. #7
    Il sistema e' questo: nel testo cerchi tutte le occorrenze di # + alcuni caratteri (come dicevo e' necessario sapere quali tipi di carattere, ma non mi hai risposto). Supponendo che tu voglia solo lettere, allora devi cercare tutte le sequenze di # + lettere. Bene il pattern per questo e' semplicemente

    codice:
    /#[a-z]+/
    poi immagino che ti servira' catturare la parola trovata per utilizzarla nella sostituzione (che non e' una questione di secondo piano), allora devi usare le parentesi

    codice:
    /#([a-z]+)/
    come usare cio' che trovi dipende da come devi costruire il link a partire da quella parola.

    Comunque il vero modo di aiutarti concretamente sarebbe dirti di studiarti almeno le basi delle regular expressions

  8. #8
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Ecco, risolto questo (GRAZIE MILLE ) veniamo alla sostituzione.
    Vorrei riuscire ad arrivare a far si di riprendere la parola racchiusa nella variabile $cerca e di trasformarla in un link all'interno delle tag </a> con tutti i suoi attributi............

    Codice PHP:
    $cerca '/#([a-z]+)/';
    $sostituisci '<a>$cerca</a>';
    $text preg_replace($cerca$sostituisci$text); 

  9. #9
    Fai un esempio concreto. Metti di avere #microsoft, fammi un esempio di come dovrebbe essere il link finale.

  10. #10
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Non so se tu hai presente twitter, come ho detto nel primo post da #Microsoft dovrebbe diventare #Microsoft, esteticamente uguale, tranne per l'attributo color in style, però di natura link

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.