also see function "urlencode()", useful for passing text with ampersand and other special chars through url
(i.e. the text is encoded as if sent from form using GET method)
e.g.
<?php
echo "<a href='foo.php?text=".urlencode("foo?&bar!")."'>link</a>";
?>
produces
<a href='foo.php?text=foo%3F%26bar%21'>link</a>
and if the link is followed, the $_GET["text"] in foo.php will contain "foo?&bar!"
htmlspecialchars
(PHP 4, PHP 5)
htmlspecialchars — Wandelt Sonderzeichen in HTML-Codes um
Beschreibung
$string
[, int $flags = ENT_COMPAT | ENT_HTML401
[, string $encoding = 'UTF-8'
[, bool $double_encode = true
]]] )Bestimmte Zeichen haben in HTML eine spezielle Bedeutung und sollten in HTML-Code dargestellt werden, um ihre Bedeutung zu behalten. Diese Funktion liefert einen String zurück, in dem manche dieser Konvertierungen durchgeführt wurden. Die hier vorgenommenen Umwandlungen sind die gebräuchlichsten für die tägliche Web-Programmierung. Sofern Sie eine vollständige Konvertierung der HTML-Zeichen benötigen, sollten Sie stattdessen htmlentities() verwenden.
Diese Funktion ist hilfreich, um vom Benutzer gelieferten Text frei von HTML-Code zu halten, wie z.B. in Foren oder Gästebüchern.
Folgende Umwandlungen werden vorgenommen:
- '&' (Ampersand/kaufmännisches Und) wird zu '&'.
-
'"' (doppeltes Anführungszeichen) wird zu '"',
wenn
ENT_NOQUOTESnicht gesetzt ist. -
"'" (einfaches Anführungszeichen) wird nur zu ''',
wenn
ENT_QUOTESgesetzt ist. - '<' (kleiner als) wird zu '<'
- '>' (größer als) wird zu '>'
Parameter-Liste
-
string -
Die zu konvertierende Zeichenkette.
-
flags -
Eine Bitmaske von einem oder mehreren der folgenden Flags, die die Behandlung von Anführungszeichen, ungültigen Zeichenfolgen und den genutzten Dokumententyp festlegen. Der Standardwert ist ENT_COMPAT | ENT_HTML401.
Verfügbare flagsKonstantenKonstante Beschreibung ENT_COMPATKonvertiert nur doppelte Anführungszeichen und lässt einfache Anführungszeichen unverändert. ENT_QUOTESKonvertiert sowohl doppelte als auch einfache Anführungszeichen. ENT_NOQUOTESLässt doppelte und einfache Anführungszeichen unverändert. ENT_IGNOREVerwirft ungültige Code Unit Sequenzen anstatt eine leere Zeichenkette zurückzugeben. Die Nutzung dieser Option ist nicht empfehlenswert, da sie » Auswirkungen auf die Sicherheit haben kann. ENT_SUBSTITUTEErsetzt ungültige Code Unit Sequenzen mit einem Unicode Ersatz Zeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls) anstatt eine leere Zeichenkette zurückzugeben. ENT_DISALLOWEDErsetzt Code Unit Sequenzen, welche in dem angegebenen Dokumenttyp ungültig sind, mit einem Unicode Ersatz Zeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls). ENT_HTML401Behandle Code als HTML 4.01. ENT_XML1Behandle Code als XML 1. ENT_XHTMLBehandle Code als XHTML. ENT_HTML5Behandle Code als HTML 5. -
charset -
Definiert die zu verwendende Zeichenkodierung. Standardwert ist ISO-8859-1 in PHP Versionen vor 5.4.0 und UTF-8 in PHP 5.4.0 und neuer.
Für den Gebrauch dieser Funktion sind die Zeichenkodierungen ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 und KOI8-R tatsächlich äquivalent, vorausgesetzt der
stringselbst ist gültig in der Zeichenkodierung, da die von htmlspecialchars() betroffenen Zeichen in allen genannten Zeichenkodierungen an gleicher Position stehen.Die folgenden Zeichensätze werden mit PHP 4.3.0 und höher unterstützt:
Unterstützte Zeichensätze Zeichensatz Alias Beschreibung ISO-8859-1 ISO8859-1 Westeuropäisch, Latin-1 ISO-8859-15 ISO8859-15 Westeuropäisch, Latin-9. Enthält das Euro-Zeichen sowie französische und finnische Buchstaben, die in Latin-1(ISO-8859-1) fehlen. UTF-8 ASCII-kompatibles Multi-Byte 8-Bit Unicode. cp866 ibm866, 866 DOS-spezifischer Kyrillischer Zeichensatz. Dieser Zeichensatz wird ab PHP Version 4.3.2 unterstützt. cp1251 Windows-1251, win-1251, 1251 Windows-spezifischer Kyrillischer Zeichensatz. Dieser Zeichensatz wird ab PHP Version 4.3.2 unterstützt. cp1252 Windows-1252, 1252 Windows spezifischer Zeichensatz für westeuropäische Sprachen. KOI8-R koi8-ru, koi8r Russisch. Dieser Zeichensatz wird ab PHP Version 4.3.2 unterstützt. BIG5 950 Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet. GB2312 936 Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz. BIG5-HKSCS Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch. Shift_JIS SJIS, 932 Japanisch EUC-JP EUCJP Japanisch Hinweis: Weitere Zeichensätze sind nicht implementiert, an ihrer Stelle wird ISO-8859-1 verwendet.
-
double_encode -
Wird der Parameter
double_encodeausgeschaltet, kodiert PHP bereits existierende HTML-Entities nicht noch einmal. Standardmäßig werden jedoch alle Zeichen konvertiert.
Rückgabewerte
Der konvertierte string.
Enthält der string eine in dem übergebenen
encoding ungültige Code Unit Sequenz, wird eine
leere Zeichenkette zurückgegeben, sofern weder das ENT_IGNORE
noch das ENT_SUBSITUTE Flag gesetzt sind.
Changelog
| Version | Beschreibung |
|---|---|
| 5.4.0 |
Der Standardwert für encoding wurde
zu UTF-8 geändert.
|
| 5.4.0 |
Die Konstanten ENT_SUBSTITUTE, ENT_DISALLOWED,
ENT_HTML401, ENT_XML1,
ENT_XHTML
und ENT_HTML5 wurden hinzugefügt.
|
| 5.3.0 |
Die Konstante ENT_IGNORE wurde hinzugefügt.
|
| 5.2.3 |
Der Parameter double_encode wurde hinzugefügt.
|
| 4.1.0 |
Der Parameter encoding wurde hinzugefügt.
|
Beispiele
Beispiel #1 htmlspecialchars()-Beispiel
<?php
$neu = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $neu; // <a href='test'>Test</a>
?>
Anmerkungen
Hinweis:
Beachten Sie, dass diese Funktion nur die o.a. Umwandlungen durchführt. Für vollständige Code-Umwandlung verwenden Sie bitte htmlentities().
Siehe auch
- get_html_translation_table() - Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
- htmlspecialchars_decode() - Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben
- strip_tags() - Entfernt HTML- und PHP-Tags aus einem String
- htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
- nl2br() - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
htmlspecialchars
16-Jun-2007 12:21
19-May-2007 03:19
There's a tiny error on alex-0 at hotmail dot co dot uk example:
The line:
$new = htmlspecialchars($_POST[message], ENT_QUOTES);
Should be written as:
$new = htmlspecialchars($_POST['message'], ENT_QUOTES);
Regards,
27-Apr-2007 07:04
To html-encode Unicode characters that may not be part of your document character set (given in the META tag of your page), and so can not be output directly into your document source, you need to use mb_encode_numericentity(). Pay attention to it's conversion map argument.
16-Jan-2007 10:25
If you seem to have a problem with rendering dynamic RSS files from a database - try using htmlspecialchars() or htmlentities() on the text you are rendering.
Since XML and RSS is very strict about what is allowed inside nodes, you need to make sure everything is "A-OK" according to XML standards ...
Especially if the database you're pulling data from is fi. Latin-Swedish encoding, which seems to be the standard setting for MySQL databases.
23-Dec-2006 10:09
You can also use variables.
This is handy when working with forms to clear out an malicious html
<?php
$new = htmlspecialchars($_POST[message], ENT_QUOTES);
echo $new;
?>
12-Apr-2006 10:05
<?php
// Escapes strings to be included in javascript
function jsspecialchars($s) {
return preg_replace('/([^ !#$%@()*+,-.\x30-\x5b\x5d-\x7e])/e',
"'\\x'.(ord('\\1')<16? '0': '').dechex(ord('\\1'))",$s);
}
?>
<script>
var some_variable = '<?= jsspecialchars($_GET['some_variable']) ?>';
</script>
03-Mar-2006 10:06
I had a script which detected swearing and wanted to make sure that words such as 'f ü c k' didn't slip through the system.
After using htmlentities(), the following line converts most extended alphabet characters back to the standard alphabet so you can spot such problems..
$text=eregi_replace("&([a-z])[a-z0-9]{3,};", "\\\\1", $text);
This changes, for example, 'ü' into 'u' and 'ß' into 's'. Sadly it also converts '£' and '¶' into 'p' so it's not perfect but does solve a lot of the problems
06-Oct-2005 11:40
I am not sure, maybe I'm missing something, but I have found something interesting:
I've been working on a project, where I had to use htmlspecialchars (for opbvious reasons). I olso needed to de-code the encoded string. What I have done was almost a copy and paste from php.net:
$trans=get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES);
$trans=array_flip($trans);
$string=strtr($encoded, $trans);
(it looked a bit different in my code, but the idea is clear)
I couldn't get the apostrophe sign de-coded, and I needed it for the <A> tags. After an hour or so of debuging, I decided do print_r($trans). What I got was:
...
['] => '
...
BUT the apostrophe was encoded to $#039; -> note the zero.
I don't suppose it's a bug, but it definetely IS a potential pitfall, watch out for this one.
01-Sep-2005 03:16
Hello,
If you are getting trouble to SGDB write/read HTML data, try to use this:
<?php
//from html_entity_decode() manual page
function unhtmlentities ($string) {
$trans_tbl =get_html_translation_table (HTML_ENTITIES );
$trans_tbl =array_flip ($trans_tbl );
return strtr ($string ,$trans_tbl );
}
//read from db
$content = stripslashes (htmlspecialchars ($field['content']));
//write to db
$content = unhtmlentities (addslashes (trim ($_POST['content'])));
//make sure result of function get_magic_quotes_gpc () == 0, you can get strange slashes in your content adding slashes twice
//better to do this using addslashes
$content = (! get_magic_quotes_gpc ()) ? addslashes ($content) : $content;
?>
12-Jul-2005 02:37
I have found that this regular expression is sufficient for making sure that existing character entities show after htmlspecialchars() replaces _all_ occurrences of & with the & entity.
<?php
// Note: hsc is an abbreviation of htmlspecialchars
function hscFixed($str)
{
return preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;", htmlspecialchars($str));
}
?>
The only flaw I can think of is if you have text of the vein; "&[word];", that is not meant to be a character but rather uses the ampersand and semicolon in their traditional grammatical denotations. However I think this is highly unlikely to occur (among other reasons, the fact that anyone with enough grammatical inclination to use them as such probably won't leave out the space between the ampersand and the word).
You can't use htmlspecialchars to create RSS feeds, since it expands ampersands.You need to use something like this:
$content = preg_replace(array('/</', '/>/', '/"/'), array('<', '>', '"'), $content);
16-May-2005 10:29
To Alexander Nofftz and urbanheroes:
It's not an IE problem. There is no ' in HTML. So it's only a problem if someone else does render this as an apostraphe on an HTML page.
09-May-2005 06:50
function reverse_htmlentities($mixed)
{
$htmltable = get_html_translation_table(HTML_ENTITIES);
foreach($htmltable as $key => $value)
{
$mixed = ereg_replace(addslashes($value),$key,$mixed);
}
return $mixed;
}
this is my version of a reversed htmlentities function
06-May-2005 07:06
If there're any n00bs out there looking for a way to ensure that no html/special chars are getting sent to their databases/put through forms/etc., this has been doing the trick for me (though being at least slightly n00bish, if this won't always work perhaps someone will ammend :-)
function checkforchars ($foo) {
if ($foo === htmlspecialchars($foo)) {
return "Valid entry.";
} else {
return "Invalid entry.";
}
}
30-Apr-2005 08:32
In response to the note made by Alexander Nofftz on October 2004, ' is used instead of ' because IE unfortunately seems to have trouble with the latter.
28-Apr-2005 06:55
Here is the recursive version that works for both arrays and strings. Doesn't look as elegant as the other recursive versions, because of the input checks.
function HTML_ESC($_input = null, $_esc_keys = false)
{
if ((null != $_input) && (is_array($_input)))
{
foreach($_input as $key => $value)
{
if($_esc_keys)
{
$_return[htmlspecialchars($key)] = HTML_ESC($value,$_esc_keys);
}
else
{
$_return[$key] = HTML_ESC($value);
}
}
return $_return;
}
elseif(null != $_input)
{
return htmlspecialchars($_input);
}
else
{
return null;
}
}
23-Apr-2005 06:14
The Algo from donwilson at gmail dot com to reverse the action of htmlspecialchars(), edited for germany:
function unhtmlspecialchars( $string )
{
$string = str_replace ( '&', '&', $string );
$string = str_replace ( ''', '\'', $string );
$string = str_replace ( '"', '"', $string );
$string = str_replace ( '<', '<', $string );
$string = str_replace ( '>', '>', $string );
$string = str_replace ( 'ü', 'ü', $string );
$string = str_replace ( 'Ü', 'Ü', $string );
$string = str_replace ( 'ä', 'ä', $string );
$string = str_replace ( 'Ä', 'Ä', $string );
$string = str_replace ( 'ö', 'ö', $string );
$string = str_replace ( 'Ö', 'Ö', $string );
return $string;
}
function htmlspecialchars_array($arr = array()) {
$rs = array();
while(list($key,$val) = each($arr)) {
if(is_array($val)) {
$rs[$key] = htmlspecialchars_array($val);
}
else {
$rs[$key] = htmlspecialchars($val, ENT_QUOTES);
}
}
return $rs;
}
01-Feb-2005 11:46
After inspecting the non-native encoding problem, I noticed that for example, if the encoding is cyrillic, and I write Latin characters that are not part of the encoding (æ for example - ae-ligature), the browser will send the real entity, such as æ for this case.
Therefore, the only way I see to display multilingual text that is encoded with entities is by:
<?php
echo str_replace('&', '&', htmlspecialchars($txt));
?>
The regex for numeric entities will skip the Latin-1 textual entities.
14-Dec-2004 01:46
A sample function, if anybody want to turn html entities (and special characters) back to simple. (eg: "è", "<" etc)
function html2specialchars($str){
$trans_table = array_flip(get_html_translation_table(HTML_ENTITIES));
return strtr($str, $trans_table);
}
21-Oct-2004 10:03
Quite often, on HTML pages that are not encoded as UTF-8, and people write in not native encoding, some browser (for sure IExplorer) will send the different charset characters using HTML Entities, such as б for small russian 'b'.
htmlspecialchars() will convert this character to the entity, since it changes all & to &
What I usually do, is either turn & back to & so the correct characters will appear in the output, or I use some regex to replace all entities of characters back to their original entity:
<?php
// treat this as pseudo-code, it hasn't been tested...
$result = preg_replace('/&#(x[a-f0-9]+|[0-9]+);/i', '&#$1;', $source);
?>
20-Oct-2004 01:41
Why '? The HTML and XML DTDs proposed ' for this.
See http://www.w3.org/TR/html/dtds.html#a_dtd_Special_characters
So better use this:
$text = htmlspecialchars($text, ENT_QUOTES);
$text = preg_replace('/�*39;/', ''', $text);
07-Oct-2004 01:45
The code in the previous note has a bug. If the original text was `>' then htmlspecialchars will turn it into `&gt;' and the suggested code will turn that into `>'. The & translation must be last.
25-Sep-2004 06:58
To reverse the action of htmlspecialchars(), use this code:
<?php
unhtmlspecialchars( $string )
{
$string = str_replace ( '&', '&', $string );
$string = str_replace ( ''', '\'', $string );
$string = str_replace ( '"', '\"', $string );
$string = str_replace ( '<', '<', $string );
$string = str_replace ( '>', '>', $string );
return $string;
}
?>
02-Sep-2004 08:51
heres a version of the recursive escape function that takes the array byref rather than byval so saves some resources in case of big arrays
function recurse_array_HTML_safe(&$arr) {
foreach ($arr as $key => $val)
if (is_array($val))
recurse_array_HTML_safe($arr[$key]);
else
$arr[$key] = htmlspecialchars($val, ENT_QUOTES);
}
21-Apr-2004 01:04
Here are some usefull functions.
They will apply || decode, htmlspecialchars || htmlentities recursivly to arrays() || to regular $variables. They also protect agains "double encoding".
<?PHP
function htmlspecialchars_or( $mixed, $quote_style = ENT_QUOTES ){
return is_array($mixed) ? array_map('htmlspecialchars_or',$mixed, array_fill(0,count($mixed),$quote_style)) : htmlspecialchars(htmlspecialchars_decode($mixed, $quote_style ),$quote_style);
}
function htmlspecialchars_decode( $mixed, $quote_style = ENT_QUOTES ) {
if(is_array($mixed)){
return array_map('htmlspecialchars_decode',$mixed, array_fill(0,count($mixed),$quote_style));
}
$trans_table = get_html_translation_table( HTML_SPECIALCHARS, $quote_style );
if( $trans_table["'"] != ''' ) { # some versions of PHP match single quotes to '
$trans_table["'"] = ''';
}
return (strtr($mixed, array_flip($trans_table)));
}
function htmlentities_or($mixed, $quote_style = ENT_QUOTES){
return is_array($mixed) ? array_map('htmlentities_or',$mixed, array_fill(0,count($mixed),$quote_style)) : htmlentities(htmlentities_decode($mixed, $quote_style ),$quote_style);
}
function htmlentities_decode( $mixed, $quote_style = ENT_QUOTES ) {
if(is_array($mixed)){
return array_map('htmlentities_decode',$mixed, array_fill(0,count($mixed),$quote_style));
}
$trans_table = get_html_translation_table(HTML_ENTITIES, $quote_style );
if( $trans_table["'"] != ''' ) { # some versions of PHP match single quotes to '
$trans_table["'"] = ''';
}
return (strtr($mixed, array_flip($trans_table)));
}
?>
These functions are an addition to an earlier post. I would like to give the person some credit but I do not know who it was.
<? ;llnu=u!eJq dHd?>
20-Feb-2004 02:58
Here is a handy function that will escape the contents of a variable, recursing into arrays.
<?php
function escaporize($thing) {
if (is_array($thing)) {
$escaped = array();
foreach ($thing as $key => $value) {
$escaped[$key] = escaporize($value);
}
return $escaped;
}
// else
return htmlspecialchars($thing);
}
?>
20-Nov-2003 11:13
Here's a handy function that guards against 'double' encoding:
# Given a string, this function first strips out all html special characters, then
# encodes the string, safely returning an encoded string without double-encoding.
function get_htmlspecialchars( $given, $quote_style = ENT_QUOTES ){
return htmlspecialchars( html_entity_decode( $given, $quote_style ), $quote_style );
}
# Needed for older versions of PHP that do not have this function built-in.
function html_entity_decode( $given_html, $quote_style = ENT_QUOTES ) {
$trans_table = get_html_translation_table( HTML_SPECIALCHARS, $quote_style );
if( $trans_table["'"] != ''' ) { # some versions of PHP match single quotes to '
$trans_table["'"] = ''';
}
return ( strtr( $given_html, array_flip( $trans_table ) ) );
}
Note: I set the default to ENT_QUOTES, as this makes more sense to me than the PHP function's default of ENT_COMPAT.
15-Jun-2003 07:28
most simple function for decoding html-encoded strings:
function htmldecode($encoded) {
return strtr($encoded,array_flip(get_html_translation_table(HTML_ENTITIES)));
}
13-Mar-2003 04:58
Sorry, part of that code was unnecessary. Here's a more readable version:
function SpecialChars($Security)
{
if (is_array($Security))
{
while(list($key, $val) = each($Security))
{
$Security[$key] = SpecialChars($val);
}
}
else
{
$Security = htmlspecialchars(stripslashes($Security), ENT_QUOTES);
}
return $Security;
}
29-Jan-2003 07:51
for those of you using V 4.3.0+ you can use html_entity_decode() to decode a string encoded with htmlspecialschars(), this should be faster and easier then using a str_replace or ereg.
14-Sep-2002 11:21
People, don't use ereg_replace for the most simple string replacing operations (replacing constant string with another).
Use str_replace.
16-May-2002 06:15
If you need to htmlspecialchars a jis string, here's a function that does:
function htmlspecialchars_jis($text) {
$ret="";
if ($text=="") return "";
$esc=chr(27);
$text=$esc."$B".$esc."$B".$text;
$text=str_replace($esc."(B", $esc."$B", $text);
$trans=explode($esc."$B", $text);
$enc=0;
while (list (, $val) = each ($trans)) {
if ($enc==0) {
$val.="";
if ($val!="") $ret.=htmlspecialchars($val);
$enc=1;
} else {
$val.="";
if ($val!="") $ret.=$esc."$B".$val.$esc."(B";
$enc=0;
};
}
return $ret;
};
BTW: I'm very(!) sure that JIS is iso-2022-jp, not iso-2002-jp
01-May-2002 06:09
I was trying to retrieve information from a database to display it into the browser. However it did not work as I was expecting. For instance double quotes (“”) and single quotes (‘’) were conflicting in HTML in an INPUT selector.
The first approach to solve this was to use htmlspecialchars to convert special characters to HTML entities to display the input box with its value.
$encode=htmlspecialchars($str, ENT_QUOTES);
However, the result was having HTML entities with a \ (backslash) preceding it (escape characters). For instance ampersand (&) becomes \& displaying \& and double quotes becomes \" displaying \”
So the final solution was to replace first any \ (backslash) and then ask htmlspecialchars to make the conversion.
[Editor's Note: This is the wrong way to do this. The proper way is to use
$encoded = htmlspecialchars(stripslashes($str), ENT_QUOTES);
]
$encoded=htmlspecialchars(str_replace('\\', '', $str), ENT_QUOTES);
Try this example to see it your self.
<form action="<?php echo $PHP_SELF; ?>">
<input type="text" name="str" size="20" value="">
<input type="submit" value="Submit">
<br>
<?php
if (!empty($str)) {
$encoded=htmlspecialchars(str_replace('\\', '', $str), ENT_QUOTES);
echo "<br><p>Result: <b>".$encoded."</b>. It should be the same you just typed</p>";
echo "<p>But source code is transformed to:<b><xmp>".$encoded."</xmp></b></p>";
// I know, I know <xmp> is deprecated in HTML 4 but was easy to use this time to display result.
}
?>
</form>
Hope this will helps someone.
01-Apr-2002 07:42
Beware of parsing JIS (aka 'iso-2002-jp') text through this function, as this function does not appear to have a sense for multibyte characters and may corrupt some characters. Eg. the japanese comma (the two ascii characters !" as viewed by an ascii client) gets transferred into !" , which transforms the comma into a 'maru' mark and the following characters into garbage.
Conceivably this could affect other multibyte charsets.
20-Feb-2002 10:21
Here is a handy function to htmlalize an array (or scalar) before you hand it off to xml.
function htmlspecialchars_array($arr = array()) {
$rs = array();
while(list($key,$val) = each($arr)) {
if(is_array($val)) {
$rs[$key] = htmlspecialchars_array($val);
}
else {
$rs[$key] = htmlspecialchars($val, ENT_QUOTES);
}
}
return $rs;
}
If your sending data from one form to another, the data in the textareas and text inputs may need to have htmlspecialchars("form data", ENT_QUOTES) applied, assuming you will ever have quotes or less-than signs or any of those special characters. Using htmlspecialchars will make the text show up properly in the second form. The changes are automatically undone whenever the form data is submitted. It does seem a little strange, but it works and my headache is now starting to go away.
AZ
29-Jun-2001 12:06
Actually, if you're using >= 4.0.5, this should theoretically be quicker (less overhead anyway):
$text = str_replace(array(">", "<", """, "&"), array(">", "<", "\"", "&"), $text);
14-Sep-2000 04:49
To replace the swedish characters...
$s=ereg_replace(197, "Å",$s);
$s=ereg_replace(196, "Ä",$s);
$s=ereg_replace(214, "Ö",$s);
$s=ereg_replace(229, "å",$s);
$s=ereg_replace(228, "ä",$s);
$s=ereg_replace(246, "ö",$s);
14-Sep-2000 03:31
For HTML to text conversion see example 3 on http://www.php.net/manual/en/function.preg-replace.php
09-Dec-1999 02:26
to convert a document back from this,
do string replacements in this order:
> >
< <
" "
& &
Doing the last phase first will
reveal erroneous results.. For example:
'<' => specialchars() => '<' '<' => convert ampersands => '<' => convert everything else => '<'