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

    Htmlentities e lettere maiuscole accentate

    Buon giorno, purtroppo l'htmlentities con le lettere accentate maiuscole non funziona, sapere dirmi come posso ovviare a questo inconveniente?
    Grazie mille....

  2. #2
    Ciao,

    non so se ho capito bene il tuo problema...
    non riesci a scrivere in html le letter maiuscole accentate?

    si fa così:

    À -> per fare la A maiuscola e l'accento grave
    Á -> per fare la A maiuscola e l'accento acuto

    e così via per tutte le lettere.

  3. #3
    ti spiego in breve.
    Estrapolo da db una stringa, la stessa la devo ripulire con una funzione dai caratteri speciali.
    Purtroppo la stringa essendo un titolo, lo devo mettere in maiuscolo.
    Facendo in questo modo ho il problema che la funzione non riesce a convertire il risultato in maiuscolo...
    cosi:

    codice:
    //questa funzione l'ho presa qui sul forum
    function convalida_w3c($valore)
      {
       //per le normali conversioni in HTML e per togliere gli slash inseriti dalla fun. addslashes
       $valore = stripslashes(htmlentities($valore));
    
       //per i caratteri accentati copincollati da word, outlook ecc
       $valore= str_replace("a’", "à", $valore);
       $valore= str_replace("e’", "è", $valore);
       //$valore= str_replace("È", "è", $valore);
       $valore= str_replace("i’", "ì", $valore);
       $valore= str_replace("o’", "ò", $valore);
       $valore= str_replace("u’", "ù", $valore);
       //per gli apici copincollati da word, outlook ecc
       $valore= str_replace("’", "'", $valore);
       $valore= str_replace("‘", "'", $valore);
       //per le virgolette copincollate da word, outlook ecc
       $valore= str_replace("“", """, $valore);
       $valore= str_replace("”", """, $valore);
       //per le altre cose
       $valore= str_replace("–", "-", $valore);
       $valore= str_replace("…", "...", $valore);
       $valore= str_replace("……", "......", $valore);
      
       return $valore;
      }
    
    
    $News.= "<h2>".convalida_w3c(strtoupper($arrNews[$nI]['cTitolo']))."</h2>";
    Il risultato in questo modo è:
    codice:
    "STANZIAMENTO PER RISTRUTTURAZIONE 21 STRADE è UN'OTTIMA NOTIZIA"
    La "è" la lascia minuscola

    se faccio cosi:
    codice:
    "STANZIAMENTO PER RISTRUTTURAZIONE 21 STRADE &EGRAVE; UN'OTTIMA NOTIZIA"
    Non converte la "è"..

    Sapresti dirmi per favore come posso risolvere?
    Grazie mille buona giornata

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    119
    E aggiungere un

    Codice PHP:
    $valorestr_replace("è""È"$valore); 
    appena dopo al momento in cui il risultato è questo

    "STANZIAMENTO PER RISTRUTTURAZIONE 21 STRADE è UN'OTTIMA NOTIZIA"

    ?

    Ciao




    __________________________________________________ ______
    Hotel Parma

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    prova con questa funzione... frutto di lunghe guerre con i clienti
    dovrebbe funzionare anche con codice html, ovvero estrae i testi e li converte

    Codice PHP:
    // funzione per convertire i testi in codice html nelle sue entità html
    function HTMLconvert($text)
      {
      
    $finded   =array();
      
    $filtered =array();
      
    $pattern="/(<\/?\w+\s*[^>]*\/?\> )?([^<>]*)/mis";
      
    preg_match_all($pattern$text$stringsPREG_SET_ORDER);

      foreach(
    $strings as $arr)
        {
        if( !empty(
    $arr[2]) ) $finded[]=$arr[2];
        }
      
      
    $elements=array_unique($finded);

      foreach(
    $elements as $el)
        {
        if (
    substr($el,0,1) !='/' && !in_array("/$el",$elements)) 
          {
          
    $filtered[]=$el;
          }
        }
      
      foreach(
    $filtered as $s_key=>$s_val)
        {
        if(
    mb_detect_encoding($s_val)=='UTF-8')
          {
    $s_val=iconv('UTF-8'"ISO-8859-1//TRANSLIT",$s_val);}
        else       
          {
    $s_val=iconv('ISO-8859-1'mb_detect_encoding($s_val)."//TRANSLIT",$s_val);}

        
    $entities[$s_key]=htmlentities($s_val,ENT_QUOTES);
        }
      
      
    $text=str_replace($filtered,$entities,$text);
      return (
    $text);
      } 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    salve ragazzi, allora la funzione mi restituisce questo errore:
    codice:
    preg_match_all() [function.preg-match-all]: Unknown modifier '?' in /var/www/html/interno/function.ssi on line 38
    
    //la linea 38 è questa:
    preg_match_all($pattern, $text, $strings, PREG_SET_ORDER);
    In pratica?
    grazie ancora

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    il forum sega gli slash... cambia la riga con $patter= ....

    in

    $pattern="/(<\/?\w+\s*[^>]*\/?\> )?([^<>]*)/mis";
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Sinceramente ho notato la funziona htmlentities si impalla e non funziona se usi una codifica di caratteri diversa dalla codifica iso ....

    Se usi stringhe utf-8 dovresti specificare alla funzione la differente codifica.

    tipo
    Codice PHP:
    $str htmlentities$str ENT_NOQUOTES "UTF-8" ) ; 
    cmq controlla bene la documentazione perche' e' sempre utile : http://www.php.net/manual/en/function.htmlentities.php

    Se poi hai problemi con cartatteri utf-8 fai parecchia attenzione anche come i client inviano tali dati e come il server li gestisce.

    Ho notato che ff e ie si comportano in maniera diametralmente opposta nell'invio di caratteri cinesi/giapponesi/russi.

    FF tende a convertire tali caratteri in &#[numero]; mentre ie no
    Queste differenze di codifica possono spesso far impazzire ... per fortuna c'e' js.

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.