Neconvertire caractere in cod decimal in pagina

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
alexinio3d
Mesaje:96

Neconvertire caractere in cod decimal in pagina

Salutare
Am urmatoarea functie :

Cod: Selectaţi tot

    /* Functie convertire caractere speciale */
    function convert($string){
        $semne = array(',', '(', ')', '/', '~', '&', '#', '!', '<script>');
        $html = array('&#44;', '&#40;', '&#41;', '&#47;', '&#126;', '&', '&#35;', '&#33;', '<script>');
        $string = str_replace($semne, $html, $string);
        
        return $string;
    } 
care imi converteste caracterele in caractere html si toate merg foarte bine ( adica de modificat din caractere in caractere speciale le modifica ), dar am o problema minor / mare, ca atunci cand ia din baza de date acele coduri html si le afiseaza intro pagina ele nu mai se modifica in caractere normale, le afiseaza cum is scrise .
Exemplu :

Cod: Selectaţi tot

mama are mere&#44; tata are pere&#44; vasile are struguri&#44; marie are ananas
Unde am gresit de nu converteste cum trebuie, sau care ar fii buba care sami blocheze afisarea caracterelor asa cum trebuie .
Va multumesc
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

MarPlo Mesaje:4343
Salut
In codul decimal trebuie la inceput direct "&", nu valoarea lui decimala '&', adica: "&#44;".
Vezi daca te ajuta acest exemplu:

Cod: Selectaţi tot

$str = 'mama are mere&#44; tata are pere&#44; vasile are struguri&#44; marie are ananas';
$str = str_replace('&', '&', $str);
echo $str;
 

alexinio3d Mesaje:96
acuma imi arata asa :

Cod: Selectaţi tot

mama are mere&#44; tata are pere&#44; vasile are struguri&#44; marie are ananas
deci la transformat pe &#38 in & dar tot nu transforma si restul :) .
Am incercat sa scot si & din array si tot asa imi da .
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

MarPlo Mesaje:4343
Nu stiu care e problema, am testat exemplu de mai sus si afiseaza corect. Unele browsere mai vechi nu recunosc cod decimal.
Cel mai bine e sa faci conversia invers dupa preluare din baza de date.

Cod: Selectaţi tot

$text = str_replace($html, $semne, $text);
 

alexinio3d Mesaje:96
Da asa am facut pana la urma cum ai specificat tu si a mers .
Acuma urmeaza sa mai imbunatatesc codul ca sa nu am probleme pe viitor :) .
Multumesc pentru idei .
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

Subiecte similare