Project

General

Profile

« Previous | Next » 

Revision 468

Added by Matthias over 17 years ago

Fixed bug in search with some html tags (Thanks to thorn)

View differences:

functions.php
340 340

  
341 341
// Function as replecement for php's htmlspecialchars()
342 342
function my_htmlspecialchars($string) {
343
	$string = umlauts_to_entities($string);
344
	$string = entities_to_umlauts($string, DEFAULT_CHARSET, 1);
343
	$string = strtr($string, array("<"=>"&lt;", ">"=>"&gt;", "\""=>"&quot;", "\'"=>"&#039;"));
345 344
	return($string);
346 345
}
347 346

  
......
402 401
				}
403 402
			}
404 403
		} else {
404
			$string = strtr($string, array("&lt;"=>"&_lt;", "&gt;"=>"&_gt;", "&amp;"=>"&_amp;", "&quot;"=>"&_quot;", "&#039;"=>"&_#039;"));
405 405
			$string=mb_convert_encoding($string, $charset_out, $charset_in);
406
			$string = strtr($string, array("&_lt;"=>"&lt;", "&_gt;"=>"&gt;", "&_amp;"=>"&amp;", "&_quot;"=>"&quot;", "&_#039;"=>"&#039;"));
406 407
		}
407 408
		return $string;
408 409
	}
......
475 476
				$string = $match[2];
476 477
			}
477 478
			$string = $char;
478
			$string_htmlspecialchars_decode=array("&lt;"=>"<", "&gt;"=>">", "&amp;"=>"&", "&quot;"=>"\"", "&#039;"=>"\'");
479
			$string = strtr($string, $string_htmlspecialchars_decode);
480 479
			$string = strtr($string, $numbered_to_named_entities);
481 480
		}
482 481
		return $string;
......
606 605
	$charset_out = strtoupper($charset_out);
607 606
	if ($charset_out == '') { $charset_out = 'ISO-8859-1'; }
608 607
	$string = string_to_utf8($string);
609
	if($convert_htmlspecialchars == 1) {
610
		$string=htmlspecialchars($string);
611
	}
612 608
	if($charset_out!='UTF-8' && is_UTF8($string)) {
613 609
		$string=mb_convert_encoding_wrapper($string, $charset_out, 'UTF-8');
614 610
	}
......
616 612
}
617 613

  
618 614
// Function to convert a string from mixed html-entitites/$charset_in-umlauts to pure html-entities
619
function umlauts_to_entities($string, $charset_in=DEFAULT_CHARSET, $convert_htmlspecialchars=1) {
615
function umlauts_to_entities($string, $charset_in=DEFAULT_CHARSET, $convert_htmlspecialchars=0) {
620 616
	$charset_in = strtoupper($charset_in);
621 617
	if ($charset_in == "") { $charset_in = 'ISO-8859-1'; }
622 618
	$string = string_to_utf8($string, $charset_in);
623
	if($convert_htmlspecialchars == 1) {
624
		$string=htmlspecialchars($string,ENT_QUOTES);
625
	}
626 619
	if (is_UTF8($string)) {
627 620
		$string=mb_convert_encoding_wrapper($string,'HTML-ENTITIES','UTF-8');
628 621
	}

Also available in: Unified diff