Avatar billede dennism Nybegynder
24. april 2003 - 20:10 Der er 33 kommentarer og
1 løsning

PHP - lav om

Jeg har en database hvor jeg kører denne funktion, før data'ene kommer ind i tabellen:

$tekst = htmlentities($tekst);

Hvad kan jeg nu gøre for at redigere alle rækkerne i min tabel tilbage igen?

Jeg har nemlig bestemt mig for at jeg først vil køre disse lige før de printes til skærmen.
Avatar billede a_eriksen Nybegynder
24. april 2003 - 20:13 #1
Avatar billede dennism Nybegynder
24. april 2003 - 20:17 #2
Altså bare:

$tekst  = html_entity_decode($tekst);

??
Avatar billede a_eriksen Nybegynder
24. april 2003 - 20:18 #3
Noget i den stil, jeg har ikke prøvet
Avatar billede dennism Nybegynder
24. april 2003 - 20:20 #4
Tusind tak :)
Det var virkelig en stor hjælp!
Avatar billede a_eriksen Nybegynder
24. april 2003 - 20:22 #5
Det var da så lidt :)
Avatar billede dennism Nybegynder
24. april 2003 - 20:27 #6
Så har jeg bare det problem at den webserver der kører mit webhotel ikke har den funktion, da den ikke har nyeste version af PHP (det er ikke kommet til det OS endnu).. Den siger følgende:

Fatal error: Call to undefined function: html_entity_decode() in filnavn.php on line 9

Har du en ide, til hvordan jeg alligevel kan få gjort hvad jeg vil!?
Avatar billede a_eriksen Nybegynder
24. april 2003 - 20:33 #7
Jeg tror du bliver nødt til at gøre det manuelt med f.eks str_replace()

http://www.php.net/manual/en/print/function.str-replace.php

Hvis det skal være php3 kan jeg ikke lige se andre metoder.
Avatar billede dennism Nybegynder
24. april 2003 - 20:35 #8
Jeg har lige sendt en mail til min hostmaster!.. Ser lige om han har en go' ide!
Avatar billede dennism Nybegynder
24. april 2003 - 21:50 #9
Han sagde at jeg skulle lave min egen funktion ala denne:

function html_entity_decode($text) {
    $html = ereg_replace(""", "\"", $text);
    $html = ereg_replace("&lt;", "<", $text);
    $html = ereg_replace("&gt;", ">", $text);
    $html = ereg_replace("&amp;", "&", $text);

    return $html;
}

Men er der ikke flere ting den rigtige funktion ændrer (bl.a. æ,ø,å)?
Avatar billede dennism Nybegynder
24. april 2003 - 21:52 #10
Sad lige og kigge på funktion-side og så at der stod:

// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities ($string)
{
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}

Gør denne funktion det samme?
Avatar billede a_eriksen Nybegynder
24. april 2003 - 22:02 #11
Ja, men hvis php'en kun er version 3 findes get_html_translation_table() ifølge dokumentationen ikke.
Avatar billede dennism Nybegynder
24. april 2003 - 22:04 #12
Lort :)

Er der andre ting end de fire før nævnte der skal ændres om?
Avatar billede a_eriksen Nybegynder
24. april 2003 - 22:05 #13
Kan jeg ikke sådan lige huske.. Du kan jo bare teste med forskellige tegn du har mistanke til.
Avatar billede dennism Nybegynder
24. april 2003 - 22:07 #14
Oki... Jeg opretter lige et spm. her på eksperten for at få de korrekte tegn!.. Men tusind tak for din hjælp!
Avatar billede a_eriksen Nybegynder
24. april 2003 - 22:09 #15
Her grib:

Array
(
    [ ] => &nbsp;
    [¡] => &iexcl;
    [¢] => &cent;
    [£] => &pound;
    [¤] => &curren;
    [¥] => &yen;
    [¦] => &brvbar;
    [§] => &sect;
    [¨] => &uml;
    [©] => &copy;
    [ª] => &ordf;
    [«] => &laquo;
    [¬] => &not;
    [­] => &shy;
    [®] => &reg;
    [¯] => &macr;
    [°] => &deg;
    [±] => &plusmn;
    [²] => &sup2;
    [³] => &sup3;
    [´] => &acute;
    [µ] => &micro;
    [¶] => &para;
    [·] => &middot;
    [¸] => &cedil;
    [¹] => &sup1;
    [º] => &ordm;
    [»] => &raquo;
    [¼] => &frac14;
    [½] => &frac12;
    [¾] => &frac34;
    [¿] => &iquest;
    [À] => &Agrave;
    [Á] => &Aacute;
    [Â] => &Acirc;
    [Ã] => &Atilde;
    [Ä] => &Auml;
    [Å] => &Aring;
    [Æ] => &AElig;
    [Ç] => &Ccedil;
    [È] => &Egrave;
    [É] => &Eacute;
    [Ê] => &Ecirc;
    [Ë] => &Euml;
    [Ì] => &Igrave;
    [Í] => &Iacute;
    [Î] => &Icirc;
    [Ï] => &Iuml;
    [Ð] => &ETH;
    [Ñ] => &Ntilde;
    [Ò] => &Ograve;
    [Ó] => &Oacute;
    [Ô] => &Ocirc;
    [Õ] => &Otilde;
    [Ö] => &Ouml;
    [×] => &times;
    [Ø] => &Oslash;
    [Ù] => &Ugrave;
    [Ú] => &Uacute;
    [Û] => &Ucirc;
    [Ü] => &Uuml;
    [Ý] => &Yacute;
    [Þ] => &THORN;
    [ß] => &szlig;
    [à] => &agrave;
    [á] => &aacute;
    [â] => &acirc;
    [ã] => &atilde;
    [ä] => &auml;
    [å] => &aring;
    [æ] => &aelig;
    [ç] => &ccedil;
    [è] => &egrave;
    [é] => &eacute;
    [ê] => &ecirc;
    [ë] => &euml;
    [ì] => &igrave;
    [í] => &iacute;
    [î] => &icirc;
    [ï] => &iuml;
    [ð] => &eth;
    [ñ] => &ntilde;
    [ò] => &ograve;
    [ó] => &oacute;
    [ô] => &ocirc;
    [õ] => &otilde;
    [ö] => &ouml;
    [÷] => &divide;
    [ø] => &oslash;
    [ù] => &ugrave;
    [ú] => &uacute;
    [û] => &ucirc;
    [ü] => &uuml;
    [ý] => &yacute;
    [þ] => &thorn;
    [ÿ] => &yuml;
    [&] => &amp;
    ["] => &quot;
    [<] => &lt;
    [>] => &gt;
)
Avatar billede dennism Nybegynder
24. april 2003 - 22:12 #16
Genialt... Må man spørge hvordan du kom frem til dette (er ligt nysgerrig)?
Avatar billede a_eriksen Nybegynder
24. april 2003 - 22:13 #17
Sådan:

<HTML><PRE>
<?
        print_r (get_html_translation_table(HTML_ENTITIES));
?>
</PRE></HTML>
Avatar billede dennism Nybegynder
24. april 2003 - 22:16 #18
Oki...

Og jeg anser disse for at være relavante:

    [ ] => &nbsp;
    [¡] => &iexcl;
    [¨] => &uml;
    [©] => &copy;
    [«] => &laquo;
    [­] => &shy;
    [´] => &acute;
    [¸] => &cedil;
    [¹] => &sup1;
    [»] => &raquo;
    [½] => &frac12;
    [Å] => &Aring;
    [Æ] => &AElig;
    [ß] => &szlig;
    [æ] => &aelig;
    [ç] => &ccedil;
    [é] => &eacute;
    [÷] => &divide;
    [ø] => &oslash;
    [&] => &amp;
    ["] => &quot;
    [<] => &lt;
    [>] => &gt;

Synes du der er nogle jeg mangler?
Avatar billede a_eriksen Nybegynder
24. april 2003 - 22:20 #19
Det kommer jo nok mest an på hvad det skal bruges til, men er der nogen grund til ikke at tage dem alle med?
Du kan da hurtigt lave lidt kode der formatterer outputtet rigtigt så det kan sættes ind i et array.
Avatar billede dennism Nybegynder
24. april 2003 - 22:23 #20
Er det noget du kan give et lille eksampel på? Jeg tror kun jeg kan komme i tankte om den manuale Cut and past metode! :)
Avatar billede a_eriksen Nybegynder
24. april 2003 - 22:44 #21
<?
        $a=get_html_translation_table(HTML_ENTITIES);
                                               
        reset($a);                             
                                               
        echo ("\$var=array(\"".key($a)."\" => \"".current($a)."\"");
                                               
        for ($cnt=1; $cnt<count($a); $cnt++)   
        {                                     
                next($a);                     
                echo (",\n          \"".key($a)."\" => \"".current($a)."\"");
        }                                     
        echo (");\n");                         
?>
Avatar billede dennism Nybegynder
25. april 2003 - 10:38 #22
Nu får 50 point ekstra, hvis du også lige hjælper mig med dette!

Før var min kode:

$mysql = mysql_query("SELECT tekst, id FROM gb");

while($row = mysql_fetch_array($mysql)) {

$row[tekst]  = html_entity_decode($row[tekst]);
mysql_query("UPDATE gb SET tekst = '$row[tekst]' WHERE id = '$row[id]'");

}

Hvordan skal denne kode se ud for at din funktion bliver indbygget i den?
Avatar billede dennism Nybegynder
26. april 2003 - 08:52 #23
Kan du hjælpe? Jeg vil gerne have besked hvis du ikke kan!
Avatar billede a_eriksen Nybegynder
26. april 2003 - 16:11 #24
Jo da. Men jeg sidder jo ikke og kigger på eksperten 24h i døgnet. :)

Først genererer du dit array med den kode jeg skrev oven over, på en server med en ny php version. Derefter indsætter du outputtet i din egen kode og laver funktionen:

function unhtmlentities ($string)
{
    $trans_tbl = 'arrayet fra før';
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}
Avatar billede dennism Nybegynder
26. april 2003 - 16:15 #25
Altså sådan her:

function unhtmlentities ($string)
{
    $trans_tbl = '$var=array(" " => " ", "¡" => "¡", "¢" => "¢", "£" => "£", "¤" => "¤", "¥" => "¥", "¦" => "¦", "§" => "§", "¨" => "¨", "©" => "©", "ª" => "ª", "«" => "«", "¬" => "¬", "­" => "­", "®" => "®", "¯" => "¯", "°" => "°", "±" => "±", "²" => "²", "³" => "³", "´" => "´", "µ" => "µ", "¶" => "¶", "·" => "·", "¸" => "¸", "¹" => "¹", "º" => "º", "»" => "»", "¼" => "¼", "½" => "½", "¾" => "¾", "¿" => "¿", "À" => "À", "Á" => "Á", "Â" => "Â", "Ã" => "Ã", "Ä" => "Ä", "Å" => "Å", "Æ" => "Æ", "Ç" => "Ç", "È" => "È", "É" => "É", "Ê" => "Ê", "Ë" => "Ë", "Ì" => "Ì", "Í" => "Í", "Î" => "Î", "Ï" => "Ï", "Ð" => "Ð", "Ñ" => "Ñ", "Ò" => "Ò", "Ó" => "Ó", "Ô" => "Ô", "Õ" => "Õ", "Ö" => "Ö", "×" => "×", "Ø" => "Ø", "Ù" => "Ù", "Ú" => "Ú", "Û" => "Û", "Ü" => "Ü", "Ý" => "Ý", "Þ" => "Þ", "ß" => "ß", "à" => "à", "á" => "á", "â" => "â", "ã" => "ã", "ä" => "ä", "å" => "å", "æ" => "æ", "ç" => "ç", "è" => "è", "é" => "é", "ê" => "ê", "ë" => "ë", "ì" => "ì", "í" => "í", "î" => "î", "ï" => "ï", "ð" => "ð", "ñ" => "ñ", "ò" => "ò", "ó" => "ó", "ô" => "ô", "õ" => "õ", "ö" => "ö", "÷" => "÷", "ø" => "ø", "ù" => "ù", "ú" => "ú", "û" => "û", "ü" => "ü", "ý" => "ý", "þ" => "þ", "ÿ" => "ÿ", "&" => "&", """ => """, "<" => "<", ">" => ">"); ';
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}


$mysql = mysql_query("SELECT tekst, id FROM gb");

while($row = mysql_fetch_array($mysql)) {

unhtmlentities($row[tekst]);
mysql_query("UPDATE gb SET tekst = '$row[tekst]' WHERE id = '$row[id]'");

}

??
Avatar billede dennism Nybegynder
26. april 2003 - 16:16 #26
Jeg får i hvert fald disse fejl:

Warning: array_flip() [function.array-flip]: The argument should be an array in c.php on line 7

Warning: strtr() [function.strtr]: The second argument is not an array. in c.php on line 8
Avatar billede a_eriksen Nybegynder
26. april 2003 - 16:23 #27
$trans_tbl = '$var=array(" " ....

skal være:

$trans_tbl =array(" "

og

"<", ">" => ">"); ';

skal være

"<", ">" => ">");
Avatar billede dennism Nybegynder
26. april 2003 - 16:27 #28
Jeg har nu:

function unhtmlentities ($string)
{
$trans_tbl =array(" " => " ", "¡" => "¡", "¢" => "¢", "£" => "£", "¤" => "¤", "¥" => "¥", "¦" => "¦", "§" => "§", "¨" => "¨", "©" => "©", "ª" => "ª", "«" => "«", "¬" => "¬", "­" => "­", "®" => "®", "¯" => "¯", "°" => "°", "±" => "±", "²" => "²", "³" => "³", "´" => "´", "µ" => "µ", "¶" => "¶", "·" => "·", "¸" => "¸", "¹" => "¹", "º" => "º", "»" => "»", "¼" => "¼", "½" => "½", "¾" => "¾", "¿" => "¿", "À" => "À", "Á" => "Á", "Â" => "Â", "Ã" => "Ã", "Ä" => "Ä", "Å" => "Å", "Æ" => "Æ", "Ç" => "Ç", "È" => "È", "É" => "É", "Ê" => "Ê", "Ë" => "Ë", "Ì" => "Ì", "Í" => "Í", "Î" => "Î", "Ï" => "Ï", "Ð" => "Ð", "Ñ" => "Ñ", "Ò" => "Ò", "Ó" => "Ó", "Ô" => "Ô", "Õ" => "Õ", "Ö" => "Ö", "×" => "×", "Ø" => "Ø", "Ù" => "Ù", "Ú" => "Ú", "Û" => "Û", "Ü" => "Ü", "Ý" => "Ý", "Þ" => "Þ", "ß" => "ß", "à" => "à", "á" => "á", "â" => "â", "ã" => "ã", "ä" => "ä", "å" => "å", "æ" => "æ", "ç" => "ç", "è" => "è", "é" => "é", "ê" => "ê", "ë" => "ë", "ì" => "ì", "í" => "í", "î" => "î", "ï" => "ï", "ð" => "ð", "ñ" => "ñ", "ò" => "ò", "ó" => "ó", "ô" => "ô", "õ" => "õ", "ö" => "ö", "÷" => "÷", "ø" => "ø", "ù" => "ù", "ú" => "ú", "û" => "û", "ü" => "ü", "ý" => "ý", "þ" => "þ", "ÿ" => "ÿ", "&" => "&", """ => """, "<" => "<", ">" => ">");
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}


$mysql = mysql_query("SELECT tekst, id FROM gb");

while($row = mysql_fetch_array($mysql)) {

unhtmlentities($row[tekst]);
mysql_query("UPDATE gb SET tekst = '$row[tekst]' WHERE id = '$row[id]'");

}

Det giver denne fejl:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in c.php on line 6
Avatar billede a_eriksen Nybegynder
26. april 2003 - 16:39 #29
Ahh.. Det var lige en smutter.

Det er den her der giver problemer. """ den skal laves til "\""
Iøvrigt skal du tage source fra outputtet og ikke bare outputtet på websiden. Det vil jo være fortolket af webbrowseren. Ovensstående skal f.eks se sådan ud:
"\"" => "&quot;",
Avatar billede dennism Nybegynder
26. april 2003 - 16:46 #30
Sådan nu her koden:

function unhtmlentities ($string)
{
$trans_tbl = array(" " => "&nbsp;",
          "¡" => "&iexcl;",
          "¢" => "&cent;",
          "£" => "&pound;",
          "¤" => "&curren;",
          "¥" => "&yen;",
          "¦" => "&brvbar;",
          "§" => "&sect;",
          "¨" => "&uml;",
          "©" => "&copy;",
          "ª" => "&ordf;",
          "«" => "&laquo;",
          "¬" => "&not;",
          "­" => "&shy;",
          "®" => "&reg;",
          "¯" => "&macr;",
          "°" => "&deg;",
          "±" => "&plusmn;",
          "²" => "&sup2;",
          "³" => "&sup3;",
          "´" => "&acute;",
          "µ" => "&micro;",
          "¶" => "&para;",
          "·" => "&middot;",
          "¸" => "&cedil;",
          "¹" => "&sup1;",
          "º" => "&ordm;",
          "»" => "&raquo;",
          "¼" => "&frac14;",
          "½" => "&frac12;",
          "¾" => "&frac34;",
          "¿" => "&iquest;",
          "À" => "&Agrave;",
          "Á" => "&Aacute;",
          "Â" => "&Acirc;",
          "Ã" => "&Atilde;",
          "Ä" => "&Auml;",
          "Å" => "&Aring;",
          "Æ" => "&AElig;",
          "Ç" => "&Ccedil;",
          "È" => "&Egrave;",
          "É" => "&Eacute;",
          "Ê" => "&Ecirc;",
          "Ë" => "&Euml;",
          "Ì" => "&Igrave;",
          "Í" => "&Iacute;",
          "Î" => "&Icirc;",
          "Ï" => "&Iuml;",
          "Ð" => "&ETH;",
          "Ñ" => "&Ntilde;",
          "Ò" => "&Ograve;",
          "Ó" => "&Oacute;",
          "Ô" => "&Ocirc;",
          "Õ" => "&Otilde;",
          "Ö" => "&Ouml;",
          "×" => "&times;",
          "Ø" => "&Oslash;",
          "Ù" => "&Ugrave;",
          "Ú" => "&Uacute;",
          "Û" => "&Ucirc;",
          "Ü" => "&Uuml;",
          "Ý" => "&Yacute;",
          "Þ" => "&THORN;",
          "ß" => "&szlig;",
          "à" => "&agrave;",
          "á" => "&aacute;",
          "â" => "&acirc;",
          "ã" => "&atilde;",
          "ä" => "&auml;",
          "å" => "&aring;",
          "æ" => "&aelig;",
          "ç" => "&ccedil;",
          "è" => "&egrave;",
          "é" => "&eacute;",
          "ê" => "&ecirc;",
          "ë" => "&euml;",
          "ì" => "&igrave;",
          "í" => "&iacute;",
          "î" => "&icirc;",
          "ï" => "&iuml;",
          "ð" => "&eth;",
          "ñ" => "&ntilde;",
          "ò" => "&ograve;",
          "ó" => "&oacute;",
          "ô" => "&ocirc;",
          "õ" => "&otilde;",
          "ö" => "&ouml;",
          "÷" => "&divide;",
          "ø" => "&oslash;",
          "ù" => "&ugrave;",
          "ú" => "&uacute;",
          "û" => "&ucirc;",
          "ü" => "&uuml;",
          "ý" => "&yacute;",
          "þ" => "&thorn;",
          "ÿ" => "&yuml;",
          "&" => "&amp;",
          "\"" => "&quot;",
          "<" => "&lt;",
          ">" => "&gt;");");
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}

$mysql = mysql_query("SELECT tekst, id FROM gb");

while($row = mysql_fetch_array($mysql)) {

unhtmlentities($row[tekst]);
mysql_query("UPDATE gb SET tekst = '$row[tekst]' WHERE id = '$row[id]'");

}

Men jeg får denne fejl:
Parse error: parse error, unexpected T_STRING in c.php on line 111

Linie 111 er:
$mysql = mysql_query("SELECT tekst, id FROM gb");
Avatar billede a_eriksen Nybegynder
26. april 2003 - 16:49 #31
Du mangler stadig at fjerne "); efter arrayet
Avatar billede dennism Nybegynder
26. april 2003 - 16:54 #32
Jeg har nu en række i min tabel hvor kollonen tekst indeholder:
&AElig;blegr&oslash;d

Altså Æblegrød.
Når jeg kører det scipt, så står der stadig det samme bagefter!.. Altså bliver tegnene ikke erstattet!?
Avatar billede a_eriksen Nybegynder
26. april 2003 - 17:02 #33
Jeg er nødt til at smutte nu, men du kan få min kode og se om du kan se hvad der går galt for dig.

http://droids.dk/test.php
http://droids.dk/test.phps
Avatar billede dennism Nybegynder
26. april 2003 - 20:01 #34
Tusind tak for hjælpen..
Her:

http://www.eksperten.dk/spm/345089
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester