Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [RE] conversione dei tag in minuscolo

    ciao, ho un problema con la conversione dei tag HTML mediante una Regular Expression.

    ho un testo che viene generato da un editor che però inserisce dei tag maiuscoli ed inoltre non chiude quelli senza attributi (tipo il br).
    quindi mi servirebbe intercettare in una stringa data i tag HTML e convertirli in minuscolo.
    ho provato a creare una funzione in questo modo:

    Codice PHP:
    function convert()
        {
            
    $text '<HTML><HEAD><META><TITLE></TITLE>';
            
    $re "<([/]?[A-Za-z0-9]*)>";
            
    $new "<\\1>";
            
            echo 
    eregi_replace($re$new$text);
        } 
    il problema è che non so come rendere minuscolo il contenuto delle parentesi acute, ho provato anche così

    Codice PHP:
    echo eregi_replace($restrolower($new), $text); 
    ma niente

    per quanto riguarda i BR, IMG e gli altri tag che non hanno un corrispondente tag di chiusura ho pensato di fare in questo modo:

    Codice PHP:
    function convert()
        {
            
    $text '
    [img]\dir\subdir\img.jpg[/img]'
    ;
            
    $re "<([A-Za-z0-9\"]*)>";
            
    $new "<\\1 />";
            
            echo 
    eregi_replace($re$new$text);
        } 
    qui invece nasce il problema che non devo rendere minuscolo tutto il testo tra parentesi acute, ma solamente i nomi dei tag e degli attributi, quindi tutto a parte ciò che sta dentro i doppi apici.

    mi potete dare una mano?
    www.matteosteri.it

  2. #2
    Se hai la possibilità prova la libreria TidyTidy
    Dovrebbe risolvere tutto senza tanta fatica......

  3. #3
    si ho notato che esiste quella libreria, ma ho notato anche che aggiunge tutti i tag anche se non mi servono, tipo html, head, ect.
    io ho un testo che viene estratto da un form-editor ed incluso in una pagina già formata.
    quello che serve a me è semplicemente rendere i tag minuscoli.

    ... poi non so, magari fa a fare pure quello che serve a me.
    www.matteosteri.it

  4. #4
    Prova un po' con questo codice, io gli ho passato direttamente una pagina html e sembrerebbe funzionare, rende minuscoli attributi e tag e chiude quei tag che devono essere chiusi con lo slash in fondo. Però è da testare un po'

    codice:
    #callback function
    function cb_tag_replace($mth){
    	$slash=null;
    	if(preg_match('/^(?:br|img|input|meta|link)(?:.*(.))?$/i',$mth[1],$m))
    		$slash=(!isset($m[1]) || $m[1]!='/')?'/':null;
    	
    
    	return '<'.stripslashes(
    		preg_replace(
    			'/([A-Z]+)(=("|\').*?\\3)?/ie'
    			,'strtolower("$1")."$2"'
    			,$mth[1]
    		)
    	).$slash.'>';
    }
    
    
    
    
    
    $myTag='...';
    $myTag=preg_replace_callback('/<([^<>]+)>/i','cb_tag_replace',$myTag);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  5. #5
    grazie mille lo provo subito
    www.matteosteri.it

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.