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

    Problema con strtolower!

    Ho un textarea dove si ha la possibilità di inviare del testo in un database per poi ritrovarselo stampato in una pagina web.
    Tutte le parole precedute da questo simbolo # sono trasformate in link, o meglio, sostituite da un link ($con).
    Il problema? Se io nel testo inserisco: Oggi il #SOLE è alto nel cielo; oppure: Oggi il #Sole è alto nel cielo, vorrei che le tag #SOLE e #Sole venissero stampate in minuscolo, sebbene siano state inserite in maiuscolo, o sia con lettere maiuscole e minuscole.
    Come risolvo?

    Questo è il mio script:
    Codice PHP:
    if (isset($_POST['post'])) {        
        
    $text $_POST['post'];    
        if (!empty(
    $text)) {
            
    $con '[url="http://127.0.0.1:8080/tag.php?q=$1"]#$1[/url]';
            
    $text preg_replace('/#([\w]+)/'$con$text); 

  2. #2

  3. #3
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    No, non è così semplice.
    Perchè io non voglio che tutto il testo sia lower, ma solo le tag!

  4. #4
    Allora passa alla funzione solo le tag, no?

    codice:
    strtolower($1);

  5. #5
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    e ovviamente mi da errore di sintassi, perché la variabile è un numero

  6. #6
    Guardando il tuo codice mi pare di capire che la tag è $text...

  7. #7
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    No, guardando il mio codice tutte le parole precedute da # nel testo $text vengono sostituite dalla variabile $con, ovvero da un link; solo che io vorrei tutto minuscolo, e non capisco come si possa fare questo.

  8. #8
    Gia' da quello che dici e' evidente che basta fare strtolower() sulla variabile $con:

    codice:
    $text = preg_replace('/#([\w]+)/', strtolower($con), $text);

  9. #9
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    Ho già provato così, ma niente.
    Se dopo quella riga di codice provassi a scrivere 'echo $con' mi verrebbe stampato il link seguente: #$1

  10. #10
    Giusto:
    codice:
    $text = preg_replace('/#([\w]+)/e', "strtolower('$con')", $text);

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.