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.
Annonceindlæg fra gavdi
24. april 2003 - 20:13
#1
24. april 2003 - 20:17
#2
Altså bare: $tekst = html_entity_decode($tekst); ??
24. april 2003 - 20:18
#3
Noget i den stil, jeg har ikke prøvet
24. april 2003 - 20:20
#4
Tusind tak :) Det var virkelig en stor hjælp!
24. april 2003 - 20:22
#5
Det var da så lidt :)
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!?
24. april 2003 - 20:35
#8
Jeg har lige sendt en mail til min hostmaster!.. Ser lige om han har en go' ide!
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("<", "<", $text); $html = ereg_replace(">", ">", $text); $html = ereg_replace("&", "&", $text); return $html; } Men er der ikke flere ting den rigtige funktion ændrer (bl.a. æ,ø,å)?
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?
24. april 2003 - 22:02
#11
Ja, men hvis php'en kun er version 3 findes get_html_translation_table() ifølge dokumentationen ikke.
24. april 2003 - 22:04
#12
Lort :) Er der andre ting end de fire før nævnte der skal ændres om?
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.
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!
24. april 2003 - 22:09
#15
Her grib: Array ( [ ] => [¡] => ¡ [¢] => ¢ [£] => £ [¤] => ¤ [¥] => ¥ [¦] => ¦ [§] => § [¨] => ¨ [©] => © [ª] => ª [«] => « [¬] => ¬ [] => ­ [®] => ® [¯] => ¯ [°] => ° [±] => ± [²] => ² [³] => ³ [´] => ´ [µ] => µ [¶] => ¶ [·] => · [¸] => ¸ [¹] => ¹ [º] => º [»] => » [¼] => ¼ [½] => ½ [¾] => ¾ [¿] => ¿ [À] => À [Á] => Á [Â] => Â [Ã] => Ã [Ä] => Ä [Å] => Å [Æ] => Æ [Ç] => Ç [È] => È [É] => É [Ê] => Ê [Ë] => Ë [Ì] => Ì [Í] => Í [Î] => Î [Ï] => Ï [Ð] => Ð [Ñ] => Ñ [Ò] => Ò [Ó] => Ó [Ô] => Ô [Õ] => Õ [Ö] => Ö [×] => × [Ø] => Ø [Ù] => Ù [Ú] => Ú [Û] => Û [Ü] => Ü [Ý] => Ý [Þ] => Þ [ß] => ß [à] => à [á] => á [â] => â [ã] => ã [ä] => ä [å] => å [æ] => æ [ç] => ç [è] => è [é] => é [ê] => ê [ë] => ë [ì] => ì [í] => í [î] => î [ï] => ï [ð] => ð [ñ] => ñ [ò] => ò [ó] => ó [ô] => ô [õ] => õ [ö] => ö [÷] => ÷ [ø] => ø [ù] => ù [ú] => ú [û] => û [ü] => ü [ý] => ý [þ] => þ [ÿ] => ÿ [&] => & ["] => " [<] => < [>] => > )
24. april 2003 - 22:12
#16
Genialt... Må man spørge hvordan du kom frem til dette (er ligt nysgerrig)?
24. april 2003 - 22:13
#17
Sådan: <HTML><PRE> <? print_r (get_html_translation_table(HTML_ENTITIES)); ?> </PRE></HTML>
24. april 2003 - 22:16
#18
Oki... Og jeg anser disse for at være relavante: [ ] => [¡] => ¡ [¨] => ¨ [©] => © [«] => « [] => ­ [´] => ´ [¸] => ¸ [¹] => ¹ [»] => » [½] => ½ [Å] => Å [Æ] => Æ [ß] => ß [æ] => æ [ç] => ç [é] => é [÷] => ÷ [ø] => ø [&] => & ["] => " [<] => < [>] => > Synes du der er nogle jeg mangler?
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.
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! :)
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"); ?>
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?
26. april 2003 - 08:52
#23
Kan du hjælpe? Jeg vil gerne have besked hvis du ikke kan!
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); }
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]'"); } ??
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
26. april 2003 - 16:23
#27
$trans_tbl = '$var=array(" " .... skal være: $trans_tbl =array(" " og "<", ">" => ">"); '; skal være "<", ">" => ">");
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
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: "\"" => """,
26. april 2003 - 16:46
#30
Sådan nu her koden: 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]'"); } 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");
26. april 2003 - 16:49
#31
Du mangler stadig at fjerne "); efter arrayet
26. april 2003 - 16:54
#32
Jeg har nu en række i min tabel hvor kollonen tekst indeholder: Æblegrød Altså Æblegrød. Når jeg kører det scipt, så står der stadig det samme bagefter!.. Altså bliver tegnene ikke erstattet!?
26. april 2003 - 20:01
#34
Vi tilbyder markedets bedste kurser inden for webudvikling