mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 14:10:28 +01:00
444 lines
13 KiB
PHP
444 lines
13 KiB
PHP
<?php
|
||
/*
|
||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||
*
|
||
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
|
||
*
|
||
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
|
||
*
|
||
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
|
||
* to obtain the text of the corresponding license version.
|
||
*
|
||
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||
*/
|
||
?>
|
||
<?php
|
||
|
||
class WawiString
|
||
{
|
||
|
||
|
||
function __construct()
|
||
{
|
||
}
|
||
|
||
function Convert($value,$input,$output)
|
||
{
|
||
if($input=="")
|
||
return $value;
|
||
|
||
|
||
/*if (strpos($a, '\\') !== false)
|
||
$input = str_replace('/','\/',$input);*/
|
||
|
||
$array = $this->FindPercentValues($input);
|
||
$regexp = $this->BuildRegExp($array);
|
||
|
||
$elements =
|
||
preg_split($regexp,$value,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||
|
||
// input und elements stimmmen ueberein
|
||
|
||
$newout = $output;
|
||
$i = 0;
|
||
foreach($array as $key=>$value)
|
||
{
|
||
$newout = str_replace($key,isset($elements[$i])?$elements[$i]:'',$newout);
|
||
$i++;
|
||
}
|
||
return $newout;
|
||
}
|
||
|
||
/**
|
||
* @param string $string
|
||
*
|
||
* @return string
|
||
*/
|
||
public function removeUtf8Bom($string) {
|
||
if(!is_string($string) || strlen($string)< 3) {
|
||
return $string;
|
||
}
|
||
if(ord($string[0]) === 239 && ord($string[1]) === 187 && ord($string[2]) === 191) {
|
||
return substr($string,3);
|
||
}
|
||
return $string;
|
||
}
|
||
|
||
function BuildRegExp($array)
|
||
{
|
||
|
||
$regexp = '/^';
|
||
foreach($array as $value)
|
||
{
|
||
$value = str_replace('.','\.',$value);
|
||
$value = str_replace('+','\+',$value);
|
||
$value = str_replace('*','\*',$value);
|
||
$value = str_replace('?','\?',$value);
|
||
$regexp .= '(\S+)'.$value;
|
||
}
|
||
$regexp .= '/';
|
||
|
||
return $regexp;
|
||
}
|
||
|
||
function FindPercentValues($pattern)
|
||
{
|
||
preg_match_all('/(?:(%[0-9]+)|.)/i', $pattern, $matches);
|
||
$hash = '';
|
||
$collect = '';
|
||
$start = true;
|
||
foreach($matches[1] as $key=>$value)
|
||
{
|
||
if($value=="")
|
||
$collecting = true;
|
||
else
|
||
{
|
||
$collecting = false;
|
||
$oldhash = isset($hash)?$hash:null;
|
||
$hash = $value;
|
||
}
|
||
|
||
if(!$collecting)
|
||
{
|
||
if(!$start)
|
||
$replace[$oldhash] = $collect;
|
||
$collect="";
|
||
}
|
||
else
|
||
$collect .=$matches[0][$key];
|
||
$start = false;
|
||
}
|
||
$replace[$hash] = $collect;
|
||
return $replace;
|
||
}
|
||
|
||
function encodeText($string)
|
||
{
|
||
$string = str_replace("\\r\\n","#BR#",$string);
|
||
$string = str_replace("\n","#BR#",$string);
|
||
$encoded = htmlspecialchars(stripslashes($string), ENT_QUOTES);
|
||
|
||
|
||
return $encoded;
|
||
}
|
||
|
||
function decodeText($_str, $_form=true)
|
||
{
|
||
if ($_form) {
|
||
$_str = str_replace("#BR#", "\r\n", $_str);
|
||
}
|
||
else {
|
||
$_str = str_replace("#BR#", "<br>", $_str);
|
||
}
|
||
return($_str);
|
||
}
|
||
|
||
function valid_utf8( $string )
|
||
{
|
||
return !((bool)preg_match('~\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\xC0\xC1~ms',$string));
|
||
}
|
||
|
||
/**
|
||
* @param mixed $text
|
||
*
|
||
* @return string
|
||
*/
|
||
public function fixeUmlaute($text) {
|
||
if(!is_string($text)) {
|
||
return $text;
|
||
}
|
||
$umlaute = $this->getUmlauteArray();
|
||
|
||
return str_replace(array_keys($umlaute),array_values($umlaute), $text);
|
||
}
|
||
|
||
/**
|
||
* @return array
|
||
*/
|
||
public function getUmlauteArray() {
|
||
return array( 'ü'=>'ü', 'ä'=>'ä', 'ö'=>'ö', 'Ö'=>'Ö', 'Ã?'=>'ß','ß'=>'ß', 'à '=>'à', 'á'=>'á', 'â'=>'â', 'ã'=>'ã', 'ù'=>'ù', 'ú'=>'ú', 'û'=>'û', 'Ù'=>'Ù', 'Ú'=>'Ú', 'Û'=>'Û', 'Ãœ'=>'Ü', 'ò'=>'ò', 'ó'=>'ó', 'ô'=>'ô', 'è'=>'è', 'é'=>'é', 'ê'=>'ê', 'ë'=>'ë', 'À'=>'À', 'Ã<81>'=>'Á', 'Â'=>'Â', 'Ã'=>'Ã', 'Ä'=>'Ä', 'Ã…'=>'Å', 'Ç'=>'Ç', 'È'=>'È', 'É'=>'É', 'Ê'=>'Ê', 'Ë'=>'Ë', 'ÃŒ'=>'Ì', 'Ã<8d>'=>'Í', 'ÃŽ'=>'Î', 'Ã<8f>'=>'Ï', 'Ñ'=>'Ñ', 'Ã’'=>'Ò', 'Ó'=>'Ó', 'Ô'=>'Ô', 'Õ'=>'Õ', 'Ø'=>'Ø', 'Ã¥'=>'å', 'æ'=>'æ', 'ç'=>'ç', 'ì'=>'ì', 'Ã'=>'í', 'î'=>'î', 'ï'=>'ï', 'ð'=>'ð', 'ñ'=>'ñ', 'õ'=>'õ', 'ø'=>'ø', 'ý'=>'ý', 'ÿ'=>'ÿ', '€'=>'€' );
|
||
}
|
||
|
||
|
||
function unicode_decode($content) {
|
||
$ISO10646XHTMLTrans = array(
|
||
"&"."#34;" => """,
|
||
"&"."#38;" => "&",
|
||
"&"."#39;" => "'",
|
||
"&"."#60;" => "<",
|
||
"&"."#62;" => ">",
|
||
"&"."#128;" => "€",
|
||
"&"."#160;" => "",
|
||
"&"."#161;" => "¡",
|
||
"&"."#162;" => "¢",
|
||
"&"."#163;" => "£",
|
||
"&"."#164;" => "¤",
|
||
"&"."#165;" => "¥",
|
||
"&"."#166;" => "¦",
|
||
"&"."#167;" => "§",
|
||
"&"."#168;" => "¨",
|
||
"&"."#169;" => "©",
|
||
"&"."#170;" => "ª",
|
||
"&"."#171;" => "«",
|
||
"&"."#172;" => "¬",
|
||
"&"."#173;" => "",
|
||
"&"."#174;" => "®",
|
||
"&"."#175;" => "¯",
|
||
"&"."#176;" => "°",
|
||
"&"."#177;" => "±",
|
||
"&"."#178;" => "²",
|
||
"&"."#179;" => "³",
|
||
"&"."#180;" => "´",
|
||
"&"."#181;" => "µ",
|
||
"&"."#182;" => "¶",
|
||
"&"."#183;" => "·",
|
||
"&"."#184;" => "¸",
|
||
"&"."#185;" => "¹",
|
||
"&"."#186;" => "º",
|
||
"&"."#187;" => "»",
|
||
"&"."#188;" => "¼",
|
||
"&"."#189;" => "½",
|
||
"&"."#190;" => "¾",
|
||
"&"."#191;" => "¿",
|
||
"&"."#192;" => "À",
|
||
"&"."#193;" => "Á",
|
||
"&"."#194;" => "Â",
|
||
"&"."#195;" => "Ã",
|
||
"&"."#196;" => "Ä",
|
||
"&"."#197;" => "Å",
|
||
"&"."#198;" => "Æ",
|
||
"&"."#199;" => "Ç",
|
||
"&"."#200;" => "È",
|
||
"&"."#201;" => "É",
|
||
"&"."#202;" => "Ê",
|
||
"&"."#203;" => "Ë",
|
||
"&"."#204;" => "Ì",
|
||
"&"."#205;" => "Í",
|
||
"&"."#206;" => "Î",
|
||
"&"."#207;" => "Ï",
|
||
"&"."#208;" => "Ð",
|
||
"&"."#209;" => "Ñ",
|
||
"&"."#210;" => "Ò",
|
||
"&"."#211;" => "Ó",
|
||
"&"."#212;" => "Ô",
|
||
"&"."#213;" => "Õ",
|
||
"&"."#214;" => "Ö",
|
||
"&"."#215;" => "×",
|
||
"&"."#216;" => "Ø",
|
||
"&"."#217;" => "Ù",
|
||
"&"."#218;" => "Ú",
|
||
"&"."#219;" => "Û",
|
||
"&"."#220;" => "Ü",
|
||
"&"."#221;" => "Ý",
|
||
"&"."#222;" => "Þ",
|
||
"&"."#223;" => "ß",
|
||
"&"."#224;" => "à",
|
||
"&"."#225;" => "á",
|
||
"&"."#226;" => "â",
|
||
"&"."#227;" => "ã",
|
||
"&"."#228;" => "ä",
|
||
"&"."#229;" => "å",
|
||
"&"."#230;" => "æ",
|
||
"&"."#231;" => "ç",
|
||
"&"."#232;" => "è",
|
||
"&"."#233;" => "é",
|
||
"&"."#234;" => "ê",
|
||
"&"."#235;" => "ë",
|
||
"&"."#236;" => "ì",
|
||
"&"."#237;" => "í",
|
||
"&"."#238;" => "î",
|
||
"&"."#239;" => "ï",
|
||
"&"."#240;" => "ð",
|
||
"&"."#241;" => "ñ",
|
||
"&"."#242;" => "ò",
|
||
"&"."#243;" => "ó",
|
||
"&"."#244;" => "ô",
|
||
"&"."#245;" => "õ",
|
||
"&"."#246;" => "ö",
|
||
"&"."#247;" => "÷",
|
||
"&"."#248;" => "ø",
|
||
"&"."#249;" => "ù",
|
||
"&"."#250;" => "ú",
|
||
"&"."#251;" => "û",
|
||
"&"."#252;" => "ü",
|
||
"&"."#253;" => "ý",
|
||
"&"."#254;" => "þ",
|
||
"&"."#255;" => "ÿ",
|
||
"&"."#338;" => "Œ",
|
||
"&"."#339;" => "œ",
|
||
"&"."#352;" => "Š",
|
||
"&"."#353;" => "š",
|
||
"&"."#376;" => "Ÿ",
|
||
"&"."#402;" => "ƒ",
|
||
"&"."#710;" => "ˆ",
|
||
"&"."#732;" => "˜",
|
||
"&"."#913;" => "Α",
|
||
"&"."#914;" => "Β",
|
||
"&"."#915;" => "Γ",
|
||
"&"."#916;" => "Δ",
|
||
"&"."#917;" => "Ε",
|
||
"&"."#918;" => "Ζ",
|
||
"&"."#919;" => "Η",
|
||
"&"."#920;" => "Θ",
|
||
"&"."#921;" => "Ι",
|
||
"&"."#922;" => "Κ",
|
||
"&"."#923;" => "Λ",
|
||
"&"."#924;" => "Μ",
|
||
"&"."#925;" => "Ν",
|
||
"&"."#926;" => "Ξ",
|
||
"&"."#927;" => "Ο",
|
||
"&"."#928;" => "Π",
|
||
"&"."#929;" => "Ρ",
|
||
"&"."#931;" => "Σ",
|
||
"&"."#932;" => "Τ",
|
||
"&"."#933;" => "Υ",
|
||
"&"."#934;" => "Φ",
|
||
"&"."#935;" => "Χ",
|
||
"&"."#936;" => "Ψ",
|
||
"&"."#937;" => "Ω",
|
||
"&"."#945;" => "α",
|
||
"&"."#946;" => "β",
|
||
"&"."#947;" => "γ",
|
||
"&"."#948;" => "δ",
|
||
"&"."#949;" => "ε",
|
||
"&"."#950;" => "ζ",
|
||
"&"."#951;" => "η",
|
||
"&"."#952;" => "θ",
|
||
"&"."#953;" => "ι",
|
||
"&"."#954;" => "κ",
|
||
"&"."#955;" => "λ",
|
||
"&"."#956;" => "μ",
|
||
"&"."#957;" => "ν",
|
||
"&"."#958;" => "ξ",
|
||
"&"."#959;" => "ο",
|
||
"&"."#960;" => "π",
|
||
"&"."#961;" => "ρ",
|
||
"&"."#962;" => "ς",
|
||
"&"."#963;" => "σ",
|
||
"&"."#964;" => "τ",
|
||
"&"."#965;" => "υ",
|
||
"&"."#966;" => "φ",
|
||
"&"."#967;" => "χ",
|
||
"&"."#968;" => "ψ",
|
||
"&"."#969;" => "ω",
|
||
"&"."#977;" => "ϑ",
|
||
"&"."#978;" => "ϒ",
|
||
"&"."#982;" => "ϖ",
|
||
"&"."#8194;" => " ",
|
||
"&"."#8195;" => " ",
|
||
"&"."#8201;" => " ",
|
||
"&"."#8204;" => "‌",
|
||
"&"."#8205;" => "‍",
|
||
"&"."#8206;" => "‎",
|
||
"&"."#8207;" => "‏",
|
||
"&"."#8211;" => "–",
|
||
"&"."#8212;" => "—",
|
||
"&"."#8216;" => "‘",
|
||
"&"."#8217;" => "’",
|
||
"&"."#8218;" => "‚",
|
||
"&"."#8220;" => "“",
|
||
"&"."#8221;" => "”",
|
||
"&"."#8222;" => "„",
|
||
"&"."#8224;" => "†",
|
||
"&"."#8225;" => "‡",
|
||
"&"."#8226;" => "•",
|
||
"&"."#8230;" => "…",
|
||
"&"."#8240;" => "‰",
|
||
"&"."#8242;" => "′",
|
||
"&"."#8243;" => "″",
|
||
"&"."#8249;" => "‹",
|
||
"&"."#8250;" => "›",
|
||
"&"."#8254;" => "‾",
|
||
"&"."#8260;" => "⁄",
|
||
"&"."#8364;" => "€",
|
||
"&"."#8465;" => "ℑ",
|
||
"&"."#8472;" => "℘",
|
||
"&"."#8476;" => "ℜ",
|
||
"&"."#8482;" => "™",
|
||
"&"."#8501;" => "ℵ",
|
||
"&"."#8592;" => "←",
|
||
"&"."#8593;" => "↑",
|
||
"&"."#8594;" => "→",
|
||
"&"."#8595;" => "↓",
|
||
"&"."#8596;" => "↔",
|
||
"&"."#8629;" => "↵",
|
||
"&"."#8656;" => "⇐",
|
||
"&"."#8657;" => "⇑",
|
||
"&"."#8658;" => "⇒",
|
||
"&"."#8659;" => "⇓",
|
||
"&"."#8660;" => "⇔",
|
||
"&"."#8704;" => "∀",
|
||
"&"."#8706;" => "∂",
|
||
"&"."#8707;" => "∃",
|
||
"&"."#8709;" => "∅",
|
||
"&"."#8711;" => "∇",
|
||
"&"."#8712;" => "∈",
|
||
"&"."#8713;" => "∉",
|
||
"&"."#8715;" => "∋",
|
||
"&"."#8719;" => "∏",
|
||
"&"."#8721;" => "∑",
|
||
"&"."#8722;" => "−",
|
||
"&"."#8727;" => "∗",
|
||
"&"."#8730;" => "√",
|
||
"&"."#8733;" => "∝",
|
||
"&"."#8734;" => "∞",
|
||
"&"."#8736;" => "∠",
|
||
"&"."#8743;" => "∧",
|
||
"&"."#8744;" => "∨",
|
||
"&"."#8745;" => "∩",
|
||
"&"."#8746;" => "∪",
|
||
"&"."#8747;" => "∫",
|
||
"&"."#8756;" => "∴",
|
||
"&"."#8764;" => "∼",
|
||
"&"."#8773;" => "≅",
|
||
"&"."#8776;" => "≈",
|
||
"&"."#8800;" => "≠",
|
||
"&"."#8801;" => "≡",
|
||
"&"."#8804;" => "≤",
|
||
"&"."#8805;" => "≥",
|
||
"&"."#8834;" => "⊂",
|
||
"&"."#8835;" => "⊃",
|
||
"&"."#8836;" => "⊄",
|
||
"&"."#8838;" => "⊆",
|
||
"&"."#8839;" => "⊇",
|
||
"&"."#8853;" => "⊕",
|
||
"&"."#8855;" => "⊗",
|
||
"&"."#8869;" => "⊥",
|
||
"&"."#8901;" => "⋅",
|
||
"&"."#8968;" => "⌈",
|
||
"&"."#8969;" => "⌉",
|
||
"&"."#8970;" => "⌊",
|
||
"&"."#8971;" => "⌋",
|
||
"&"."#9001;" => "⟨",
|
||
"&"."#9002;" => "⟩",
|
||
"&"."#9674;" => "◊",
|
||
"&"."#9824;" => "♠",
|
||
"&"."#9827;" => "♣",
|
||
"&"."#9829;" => "♥",
|
||
"&"."#9830;" => "♦"
|
||
);
|
||
|
||
return str_replace(array_keys($ISO10646XHTMLTrans), array_values($ISO10646XHTMLTrans), $content);
|
||
}
|
||
|
||
/**
|
||
* @param string $string
|
||
*
|
||
* @return string
|
||
*/
|
||
public function ReadyForPDF($string='')
|
||
{
|
||
return trim(
|
||
html_entity_decode(
|
||
str_replace(
|
||
['“','„','–',"’","'","NONBLOCKINGZERO"],
|
||
['"','','-',"'","'",''],
|
||
$string
|
||
),
|
||
ENT_QUOTES,
|
||
'UTF-8'
|
||
)
|
||
);
|
||
}
|
||
}
|