Files
ms1inscription-v5/rapports/components/utils/string_utils.php
2026-05-13 09:43:32 -04:00

219 lines
6.1 KiB
PHP

<?php
class JavaScriptStringLiteralEscapeMode
{
const DoubleQuote = 1;
const SingleQuote = 2;
}
class StringUtils
{
const EmptyStr = '';
const Space = ' ';
public static function SameText($val1, $val2)
{
return strtolower($val1) == strtolower($val2);
}
public static function NormalizeQuotation($string, $firstQuote, $lastQuote)
{
return StringUtils::QuoteString(
StringUtils::UnquoteString($string, $firstQuote, $lastQuote),
$firstQuote, $lastQuote) ;
}
public static function UnquoteString($string, $firstQuote, $lastQuote)
{
return ltrim(rtrim($string, $lastQuote), $firstQuote);
}
public static function QuoteString($string, $firstQuote, $lastQuote)
{
return $firstQuote . $string. $lastQuote;
}
public static function SplitString($delimiter, $string)
{
return explode ($delimiter, $string);
}
public static function JSStringLiteral($stringLiteral,
$mode = JavaScriptStringLiteralEscapeMode::DoubleQuote)
{
switch ($mode)
{
case JavaScriptStringLiteralEscapeMode::DoubleQuote:
$searches = array( '"', "\n" );
$replacements = array( '\\"', "\\n\"\n\t+\"" );
$quote = '"';
break;
case JavaScriptStringLiteralEscapeMode::SingleQuote:
$searches = array( "'", "\n" );
$replacements = array( "\\'", "\\n'\n\t+'" );
$quote = "'";
break;
}
return $quote . str_replace( $searches, $replacements, $stringLiteral ) . $quote;
}
/**
* @static
* @param string $value
* @return string
*/
public static function Upper($value)
{
return strtoupper($value);
}
/**
* @static
* @param string $value
* @return string
*/
public static function Lower($value)
{
return strtolower($value);
}
public static function ReplaceVariableInTemplate($template, $varName, $varValue)
{
return str_ireplace('%' . $varName . '%', $varValue, $template);
}
public static function StartsWith($string, $pattern)
{
$matches = array();
return preg_match("/^$pattern/", $string, $matches) >= 1;
}
public static function EndsBy($string, $pattern)
{
$matches = array();
return preg_match('/' . $pattern . '$/', $string, $matches) >= 1;
}
public static function Contains($string, $pattern)
{
$matches = array();
return preg_match("/$pattern/", $string, $matches) >= 1;
}
public static function EscapeXmlString($strin)
{
$strout = null;
for ($i = 0; $i < strlen($strin); $i++) {
$ord = ord($strin[$i]);
if (($ord > 0 && $ord < 32) || ($ord >= 127)) {
$strout .= "&amp;#{$ord};";
}
else {
switch ($strin[$i]) {
case '<':
$strout .= '&lt;';
break;
case '>':
$strout .= '&gt;';
break;
case '&':
$strout .= '&amp;';
break;
case '"':
$strout .= '&quot;';
break;
default:
$strout .= $strin[$i];
}
}
}
return $strout;
}
public static function AddStr(&$result, $string, $delimiter = '')
{
if (isset($string) && $string != '')
{
if(!($result == ''))
$result = $result . $delimiter;
$result = $result . $string;
}
}
public static function Replace($oldValue, $newValue, $string)
{
return str_replace($oldValue, $newValue, $string);
}
public static function ApplyVarablesMapToTemplate($template, $varArray)
{
$result = $template;
foreach($varArray as $varName => $varValue)
$result = StringUtils::ReplaceVariableInTemplate($result, $varName, $varValue);
return $result;
}
public static function Combine($Left, $Right, $Delimiter = ' = ')
{
return $Left . $Delimiter . $Right;
}
public static function IsNullOrEmpty($value, $trimmed = false)
{
if (!isset($value))
return true;
else if (!$trimmed)
return ($value === '');
else
return (trim($value) === '');
}
public static function ReplaceIllegalPostVariableNameChars($string)
{
return StringUtils::Replace(' ', '_', $string);
}
public static function Format($format)
{
$arg_list = func_get_args();
return call_user_func_array('sprintf', $arg_list);
}
public static function ConvertTextToEncoding($text, $sourceEncoding, $targetEncoding)
{
$iconvEncodings = array('windows-1250', 'windows-1253', 'windows-1254', 'windows-1255', 'windows-1256', 'windows-1257');
if ($sourceEncoding != '' && $targetEncoding != '' && $targetEncoding != $sourceEncoding)
{
if (!in_array($sourceEncoding, $iconvEncodings) &&
!in_array($targetEncoding, $iconvEncodings) &&
function_exists("mb_convert_encoding"))
{
if ($sourceEncoding == null)
return mb_convert_encoding($text, $targetEncoding);
else
return mb_convert_encoding($text, $targetEncoding, $sourceEncoding);
}
elseif (function_exists("iconv"))
return iconv($sourceEncoding, $targetEncoding, $text);
else
return $text;
}
else
{
return $text;
}
}
public static function SubString($value, $start, $length, $encoding)
{
if (function_exists('mb_substr') && $encoding != '')
return mb_substr($value, $start, $length, $encoding);
else
return substr($value, $start, $length);
}
}