825 lines
16 KiB
PHP
Executable File
825 lines
16 KiB
PHP
Executable File
<?php
|
|
require_once __DIR__ . '/system-config.class.php';
|
|
require_once __DIR__ . '/database-manager.class.php';
|
|
|
|
class Util extends SystemError
|
|
{
|
|
private $DB = null;
|
|
private $DBSelect = null;
|
|
|
|
private $activeEmpresaId = null;
|
|
|
|
public function DB()
|
|
{
|
|
if($this->DB == null )
|
|
{
|
|
$this->DB = new DB();
|
|
}
|
|
return $this->DB;
|
|
}
|
|
|
|
public function DBSelect($empresaId)
|
|
{
|
|
if($this->DBSelect == null || $this->activeEmpresaId != $empresaId)
|
|
{
|
|
$this->DBSelect = new DB(false, $empresaId);
|
|
$this->activeEmpresaId = $empresaId;
|
|
}
|
|
return $this->DBSelect;
|
|
}
|
|
|
|
function RoundNumber($number)
|
|
{
|
|
return round($number, 6);
|
|
}
|
|
|
|
function TruncateFloat($number, $digitos)
|
|
{
|
|
$raiz = 10;
|
|
$multiplicador = pow ($raiz,$digitos);
|
|
$resultado = ((int)($number * $multiplicador)) / $multiplicador;
|
|
|
|
return number_format($resultado, $digitos,'.','');
|
|
|
|
}
|
|
|
|
function FormatSeconds($sec, $padHours = false)
|
|
{
|
|
$hms = "";
|
|
$hours = intval(intval($sec) / 3600);
|
|
$hms .= ($padHours) ? str_pad($hours, 2, "0", STR_PAD_LEFT). ":" : $hours. ":";
|
|
$minutes = intval(($sec / 60) % 60);
|
|
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ":";
|
|
$seconds = intval($sec % 60);
|
|
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
|
|
|
|
return $hms;
|
|
}
|
|
|
|
function FormatMins($mins)
|
|
{
|
|
if($mins > 60)
|
|
{
|
|
$horas = floor($mins / 60);
|
|
$mins = $mins - ($horas * 60);
|
|
return $horas."h ".$mins."m";
|
|
}
|
|
else
|
|
{
|
|
return $mins."m";
|
|
}
|
|
}
|
|
|
|
function FormatFecha($date)
|
|
{
|
|
$meses = array(1 => "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
|
|
$trozos = explode("-",$date);
|
|
$trozos[1] = $meses[(int)$trozos[1]];
|
|
$trozos[2] = substr($trozos[2],0,2);
|
|
return $trozos[2]." de ".$trozos[1]." de ".$trozos[0];
|
|
}
|
|
|
|
function FormatHora($hora)
|
|
{
|
|
$trozos = explode(":",$hora);
|
|
return $trozos[0].":".$trozos[1]." hrs";
|
|
}
|
|
|
|
function FormatFechaHora($date)
|
|
{
|
|
$meses = array(1 => "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
|
|
$trozos = explode(" ",$date);
|
|
$fecha = $trozos[0];
|
|
$hora = $trozos[1];
|
|
|
|
$trozosFecha = explode("-",$fecha);
|
|
$trozosFecha[1] = $meses[(int)$trozosFecha[1]];
|
|
$trozosFecha[2] = substr($trozosFecha[2],0,2);
|
|
$fechaFormateada = $trozosFecha[2]." de ".$trozosFecha[1]." de ".$trozosFecha[0];
|
|
|
|
$trozosHora = explode(":",$hora);
|
|
$horaFormateada = $trozosHora[0].":".$trozosHora[1]." hrs";
|
|
|
|
return $fechaFormateada." ".$horaFormateada;
|
|
}
|
|
|
|
function FormatFechaServidor($date)
|
|
{
|
|
$trozos = explode("/",$date);
|
|
$trozos[1] = (strlen($trozos[1]) == 1) ? "0".$trozos[1] : $trozos[1];
|
|
$trozos[0] = (strlen($trozos[0]) == 1) ? "0".$trozos[0] : $trozos[0];
|
|
return $trozos[2]."-".$trozos[1]."-".$trozos[0];
|
|
}
|
|
|
|
function GetMonth($mes, $format = null)
|
|
{
|
|
$meses = array(1 => "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
|
|
$mesesAbrev = array(1 => "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic");
|
|
if($format == "abreviado")
|
|
return $mesesAbrev[(int)$mes];
|
|
else
|
|
return $meses[(int)$mes];
|
|
}
|
|
|
|
function GetLetters($string)
|
|
{
|
|
preg_match_all('/([a-zA-Z]+)/',$string,$results);
|
|
return implode('', $results[0]);
|
|
}
|
|
|
|
function GetNumbers($string)
|
|
{
|
|
preg_match_all('/([0-9]+)/',$string,$results);
|
|
return implode('', $results[0]);
|
|
}
|
|
|
|
function ValidateString($value, $max_chars=50, $minChars = 1, $field = "Atributo")
|
|
{
|
|
if(strlen($value) > $max_chars || strlen($value) < $minChars)
|
|
{
|
|
return $this->setError(10001, "error", "", $field);
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}//validateString
|
|
|
|
function ValidateInteger($value, $max = null, $min = null, $field = "Atributo")
|
|
{
|
|
if(ctype_digit((string)$value) == false)
|
|
{
|
|
return $this->setError(10020, "error", "", $field);
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}//ValidateInteger
|
|
|
|
function ValidateFloat($value, $field)
|
|
{
|
|
if(!is_numeric($value))
|
|
{
|
|
return $this->setError(10020, "error", "", $field);
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}//ValidateFloat
|
|
|
|
function ValidateMail($mail, $field = 'Email')
|
|
{
|
|
$mail = strtolower($mail);
|
|
if (!preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',trim($mail)))
|
|
{
|
|
return $this->setError(10002, "error", "", $field);
|
|
}
|
|
}
|
|
|
|
function ValidateUrl($url)
|
|
{
|
|
if (!preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url))
|
|
{
|
|
$this->error = 10001;
|
|
return 10001;
|
|
}
|
|
}
|
|
|
|
function ValidateFile($pathToFile)
|
|
{
|
|
$handle = @fopen($pathToFile, "r");
|
|
if ($handle === false)
|
|
{
|
|
$this->error = 10003;
|
|
return 10003;
|
|
}
|
|
fclose($handle);
|
|
return true;
|
|
}
|
|
|
|
function wwwRedirect()
|
|
{
|
|
if(!preg_match("/^www./", $_SERVER['HTTP_HOST']))
|
|
{
|
|
header("location: http://www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
|
|
}
|
|
}
|
|
|
|
function UploadFile($name, $dir)
|
|
{
|
|
$path_parts = pathinfo($_FILES[$name]['name']);
|
|
$ext = strtolower($path_parts["extension"]);
|
|
$extArray = array("jpg", "png", "gif", "jpeg", "pdf", "doc", "docx", "txt", "xlsx");
|
|
|
|
if(!in_array($ext, $extArray))
|
|
{
|
|
$this->setError(10010, "error", "", "Imagen");
|
|
}
|
|
else
|
|
{
|
|
$newFileName = time().".".$ext;
|
|
|
|
if(move_uploaded_file($_FILES[$name]['tmp_name'], WEB_ROOT ."/".$dir."/".$newFileName))
|
|
{
|
|
return $newFileName;
|
|
}
|
|
else
|
|
{
|
|
$this->setError(10011, "error", "", "Imagen");
|
|
}
|
|
}
|
|
}
|
|
|
|
function UploadImage($name, $dir, $size = null)
|
|
{
|
|
$path_parts = pathinfo($_FILES[$name]['name']);
|
|
$ext = strtolower($path_parts["extension"]);
|
|
$extArray = array("jpg", "png", "gif", "jpeg");
|
|
|
|
if(!in_array($ext, $extArray))
|
|
{
|
|
return $this->setError(10010, "error", "", "Imagen");
|
|
}
|
|
|
|
if($size)
|
|
{
|
|
list($width, $height) = getimagesize($_FILES[$name]['tmp_name']);
|
|
if($width > $size || $height > $size)
|
|
return $this->setError(10012, "error", "", "Imagen");
|
|
}
|
|
|
|
$newFileName = time().".".$ext;
|
|
|
|
if(move_uploaded_file($_FILES[$name]['tmp_name'], WEB_ROOT ."/".$dir."/".$newFileName))
|
|
{
|
|
return $newFileName;
|
|
}
|
|
else
|
|
{
|
|
return $this->setError(10011, "error", "", "Imagen");
|
|
}
|
|
}
|
|
|
|
function HandleMultipages($page, $total_items, $link, $pagevar = "p", $limit = 5)
|
|
{
|
|
$items_per_page = defined('ITEMS_PER_PAGE') ? ITEMS_PER_PAGE : 20;
|
|
$total_pages = ceil($total_items / $items_per_page);
|
|
|
|
$pages = array();
|
|
$pages["numbers"] = array();
|
|
$pages["first"] = false;
|
|
$pages["prev"] = false;
|
|
$pages["next"] = false;
|
|
$pages["last"] = false;
|
|
|
|
// Lógica simple de reemplazo o concatenación
|
|
$hasPlaceholder = (strpos($link, "|$pagevar|") !== false);
|
|
|
|
if($page > 0){
|
|
if(!$hasPlaceholder)
|
|
$pages["first"] = $link."/".$pagevar."/0";
|
|
else
|
|
$pages["first"] = str_replace("|$pagevar|", "0", $link);
|
|
|
|
if(!$hasPlaceholder)
|
|
$pages["prev"] = $link."/".$pagevar."/".($page-1);
|
|
else
|
|
$pages["prev"] = str_replace("|$pagevar|", (string)($page-1), $link);
|
|
}
|
|
|
|
for($i = ($page - $limit); $i <= ($page + $limit); $i++)
|
|
{
|
|
if($i >= 0 && $i < $total_pages)
|
|
{
|
|
if(!$hasPlaceholder)
|
|
$pages["numbers"][$i + 1] = $link."/".$pagevar."/".$i;
|
|
else
|
|
$pages["numbers"][$i + 1] = str_replace("|$pagevar|", (string)($i), $link);
|
|
}
|
|
}
|
|
|
|
if($page < $total_pages - 1){
|
|
if(!$hasPlaceholder)
|
|
$pages["next"] = $link."/".$pagevar."/".($page+1);
|
|
else
|
|
$pages["next"] = str_replace("|$pagevar|", (string)($page+1), $link);
|
|
|
|
if(!$hasPlaceholder)
|
|
$pages["last"] = $link."/".$pagevar."/".(max(0, $total_pages - 1));
|
|
else
|
|
$pages["last"] = str_replace("|$pagevar|", (string)(max(0, $total_pages - 1)), $link);
|
|
}
|
|
|
|
$pages["current"] = $page+1;
|
|
$pages["items_per_page"] = $items_per_page;
|
|
$pages["start"] = $page * $items_per_page;
|
|
|
|
return $pages;
|
|
|
|
}//handle_multipages
|
|
|
|
function hs_eregi($var1,$var2,$var3 = array()){
|
|
|
|
if(function_exists("mb_eregi"))
|
|
return mb_eregi($var1,$var2,$var3);
|
|
else
|
|
return preg_match($var1,$var2,$var3);
|
|
|
|
}//hs_eregi
|
|
|
|
|
|
function hs_preg_replace($var1,$var2,$var3){
|
|
|
|
// mb_preg_replace no existe, usar directamente preg_replace
|
|
return preg_replace($var1,$var2,$var3);
|
|
|
|
}//hs_preg_replace
|
|
|
|
function SexoString($sex)
|
|
{
|
|
switch($sex)
|
|
{
|
|
case "m": $sexo = "Masculino";break;
|
|
case "f": $sexo = "Femenino";break;
|
|
default: $sexo = "Masculino";
|
|
}
|
|
return $sexo;
|
|
}
|
|
function CalculateIva($price)
|
|
{
|
|
$ivaRate = 16; // Default IVA rate
|
|
if (isset($_ENV['IVA_RATE'])) {
|
|
$ivaRate = (float)$_ENV['IVA_RATE'] * 100; // Convert from decimal to percentage
|
|
}
|
|
return $price * ($ivaRate / 100);
|
|
}
|
|
|
|
function ReturnLang()
|
|
{
|
|
if(!isset($_SESSION['lang']) || !$_SESSION['lang'])
|
|
{
|
|
$lang = "es";
|
|
}
|
|
elseif(isset($_SESSION['lang']) && $_SESSION['lang'] == "es")
|
|
{
|
|
$lang = "es";
|
|
}
|
|
else
|
|
{
|
|
$lang = "en";
|
|
}
|
|
|
|
return $lang;
|
|
}
|
|
|
|
function FormatOutputText(&$text)
|
|
{
|
|
$text = nl2br($text);
|
|
}
|
|
|
|
function SetIp()
|
|
{
|
|
if ($_SERVER)
|
|
{
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
|
|
{
|
|
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
}
|
|
elseif (isset($_SERVER['HTTP_CLIENT_IP']))
|
|
{
|
|
$realip = $_SERVER['HTTP_CLIENT_IP'];
|
|
}
|
|
else
|
|
{
|
|
$realip = $_SERVER['REMOTE_ADDR'];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )
|
|
{
|
|
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
|
|
}
|
|
elseif ( getenv( 'HTTP_CLIENT_IP' ) )
|
|
{
|
|
$realip = getenv( 'HTTP_CLIENT_IP' );
|
|
}
|
|
else
|
|
{
|
|
$realip = getenv( 'REMOTE_ADDR' );
|
|
}
|
|
}
|
|
|
|
return $realip;
|
|
}
|
|
|
|
function setError($value = NULL, $type="error", $custom = "", $errorField = "")
|
|
{
|
|
$this->type[] = $type;
|
|
$this->error[] = $value;
|
|
$this->errorField[] = $errorField;
|
|
$this->complete = true;
|
|
}
|
|
|
|
function GetError()
|
|
{
|
|
if(!$this->complete)
|
|
return false;
|
|
else
|
|
return true;
|
|
}
|
|
|
|
function GetErrors()
|
|
{
|
|
return $this->error;
|
|
}
|
|
|
|
function GetErrorField()
|
|
{
|
|
return $this->errorField;
|
|
}
|
|
|
|
function GetType()
|
|
{
|
|
return $this->type;
|
|
}
|
|
|
|
function GetField()
|
|
{
|
|
return $this->errorField;
|
|
}
|
|
|
|
function Reset()
|
|
{
|
|
$this->type = array();
|
|
$this->error = array();
|
|
$this->errorField = array();
|
|
$this->complete = false;
|
|
}
|
|
|
|
function PrintErrors()
|
|
{
|
|
if(empty($this->error)){
|
|
return false;
|
|
}
|
|
|
|
$errorStr = "<div id='error-box'>";
|
|
foreach($this->error as $key => $val)
|
|
{
|
|
$msg = $this->errorMessage($val);
|
|
$field = isset($this->errorField[$key]) ? $this->errorField[$key] : '';
|
|
|
|
$errorStr .= "<div class='error-item'>";
|
|
if($field != "")
|
|
{
|
|
$errorStr .= "<b>".$field.":</b> ";
|
|
}
|
|
$errorStr .= $msg;
|
|
$errorStr .= "</div>";
|
|
}
|
|
$errorStr .= "</div>";
|
|
echo $errorStr;
|
|
return true;
|
|
}
|
|
|
|
function errorMessage($code)
|
|
{
|
|
global $property;
|
|
return $property['error'][$code];
|
|
}
|
|
|
|
function ValidateRfc($rfc, $field)
|
|
{
|
|
if(strlen($rfc) > 13)
|
|
{
|
|
return $this->setError(10013,"error","", $field);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function ExportToExcel($data, $filename)
|
|
{
|
|
header("Content-type: application/octet-stream");
|
|
header("Content-Disposition: attachment; filename=\"$filename\"");
|
|
header("Pragma: no-cache");
|
|
header("Expires: 0");
|
|
foreach($data as $row)
|
|
{
|
|
echo implode("\t", $row) . "\n";
|
|
}
|
|
}
|
|
|
|
function GetMonthRange($startDate, $endDate, $type = "default")
|
|
{
|
|
$startTime = strtotime($startDate);
|
|
$endTime = strtotime($endDate);
|
|
|
|
if($startTime > $endTime)
|
|
return false;
|
|
|
|
$meses = array();
|
|
|
|
if($type == "default")
|
|
{
|
|
while($startTime <= $endTime)
|
|
{
|
|
$mes = date("n", $startTime);
|
|
$year = date("Y", $startTime);
|
|
|
|
$meses["$year-$mes"] = $this->GetMonth($mes)." ".$year;
|
|
|
|
$startTime = strtotime("+1 month", $startTime);
|
|
}
|
|
}
|
|
|
|
return $meses;
|
|
}
|
|
|
|
function PrepareToSql($data)
|
|
{
|
|
$data = trim($data);
|
|
$data = stripslashes($data);
|
|
$data = htmlspecialchars($data);
|
|
|
|
return $data;
|
|
}
|
|
|
|
function ConvertToView($data)
|
|
{
|
|
$data = stripslashes($data);
|
|
$data = htmlspecialchars_decode($data);
|
|
|
|
return $data;
|
|
}
|
|
|
|
function ToName($string)
|
|
{
|
|
$string = strtolower($string);
|
|
$string = ucwords($string);
|
|
return $string;
|
|
}
|
|
|
|
function ValidateFileFormat($file, $formats)
|
|
{
|
|
$filePathParts = pathinfo($file);
|
|
$fileExt = strtolower($filePathParts["extension"]);
|
|
|
|
if(in_array($fileExt, $formats))
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
|
|
function GetImageSize($src, $maxwidth = null, $maxheight = null)
|
|
{
|
|
$size = getimagesize($src);
|
|
|
|
if(!$maxwidth)
|
|
$maxwidth = 200;
|
|
|
|
if(!$maxheight)
|
|
$maxheight = 200;
|
|
|
|
$width = $size[0];
|
|
$height = $size[1];
|
|
|
|
if($width > $maxwidth)
|
|
{
|
|
$height = ($maxwidth / $width) * $height;
|
|
$width = $maxwidth;
|
|
}
|
|
|
|
if($height > $maxheight)
|
|
{
|
|
$width = ($maxheight / $height) * $width;
|
|
$height = $maxheight;
|
|
}
|
|
|
|
return array('width' => round($width), 'height' => round($height));
|
|
}
|
|
|
|
function SendEmail($to, $subject, $body, $from = null, $fromName = null)
|
|
{
|
|
global $mail;
|
|
|
|
if(!$from)
|
|
$from = SMTP_USER;
|
|
|
|
if(!$fromName)
|
|
$fromName = "Ventas System";
|
|
|
|
$mail->ClearAddresses();
|
|
$mail->AddAddress($to);
|
|
$mail->Subject = $subject;
|
|
$mail->Body = $body;
|
|
$mail->From = $from;
|
|
$mail->FromName = $fromName;
|
|
|
|
if(!$mail->Send())
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function utf8fix($text)
|
|
{
|
|
$text = $text;
|
|
$length = strlen($text);
|
|
$out = '';
|
|
$escaped = false;
|
|
for($i=0;$i<$length;$i++) {
|
|
$c = ord($text[$i]);
|
|
if ($c > 128) {
|
|
if (!$escaped) {
|
|
$out .= '&#';
|
|
$escaped = true;
|
|
}
|
|
$out .= $c;
|
|
} else {
|
|
if ($escaped) {
|
|
$out .= ';';
|
|
$escaped = false;
|
|
}
|
|
$out .= $text[$i];
|
|
}
|
|
}
|
|
if ($escaped) {
|
|
$out .= ';';
|
|
$escaped = false;
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
function SendContactFormEmail($fields, $recipients, $subject, $extra = null)
|
|
{
|
|
global $mail;
|
|
|
|
$mail->ClearAddresses();
|
|
|
|
foreach($recipients as $recipient)
|
|
$mail->AddAddress($recipient);
|
|
|
|
$mail->Subject = $subject;
|
|
$mail->From = SMTP_USER;
|
|
$mail->FromName = "Ventas System";
|
|
|
|
$body = "<table>";
|
|
foreach($fields as $field => $value)
|
|
{
|
|
$body .= "<tr>";
|
|
$body .= "<td><b>".$field."</b></td>";
|
|
$body .= "<td>".$value."</td>";
|
|
$body .= "</tr>";
|
|
}
|
|
|
|
if(is_array($extra))
|
|
{
|
|
foreach($extra as $key => $val)
|
|
{
|
|
$body .= "<tr>";
|
|
$body .= "<td><b>".$key."</b></td>";
|
|
$body .= "<td>".$val."</td>";
|
|
$body .= "</tr>";
|
|
}
|
|
}
|
|
|
|
$body .= "</table>";
|
|
|
|
$mail->Body = $body;
|
|
|
|
if(!$mail->Send())
|
|
{
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function SaveLog($txt, $operation = "info")
|
|
{
|
|
$file = DOC_ROOT."/log/log.txt";
|
|
$fp = fopen($file, "a");
|
|
fwrite($fp, $operation." : ".date('Y-m-d H:i:s')." : ".$txt."\n");
|
|
fclose($fp);
|
|
}
|
|
|
|
function GetNameUsrType($type)
|
|
{
|
|
switch($type)
|
|
{
|
|
case 'admin': return 'Administrador';
|
|
case 'vendedor': return 'Vendedor';
|
|
case 'gerente': return 'Gerente';
|
|
case 'supervisor': return 'Supervisor';
|
|
case 'cajero': return 'Cajero';
|
|
case 'almacen': return 'Almacén';
|
|
case 'chofer': return 'Chofer';
|
|
case 'cliente': return 'Cliente';
|
|
case 'facturacion': return 'Facturación';
|
|
case 'direccion': return 'Dirección';
|
|
case 'capturista': return 'Capturista';
|
|
case 'maquilador': return 'Maquilador';
|
|
case 'centralizador': return 'Centralizador';
|
|
default: return ucfirst($type);
|
|
}
|
|
}
|
|
|
|
function DecodeUrlResult($result)
|
|
{
|
|
if(!is_array($result))
|
|
return $result;
|
|
|
|
foreach($result as $k => $var)
|
|
{
|
|
if(is_array($var))
|
|
{
|
|
foreach($var as $k2 => $var2)
|
|
{
|
|
$result[$k][$k2] = urldecode($var2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$result[$k] = urldecode($var);
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function DecodeResult($result)
|
|
{
|
|
if(!is_array($result))
|
|
return $result;
|
|
|
|
foreach($result as $k => $var)
|
|
{
|
|
if(is_array($var))
|
|
{
|
|
foreach($var as $k2 => $var2)
|
|
{
|
|
$result[$k][$k2] = htmlspecialchars_decode($var2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$result[$k] = htmlspecialchars_decode($var);
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function EncodeRow($result)
|
|
{
|
|
if(!is_array($result))
|
|
return $result;
|
|
|
|
foreach($result as $k => $var)
|
|
{
|
|
if(is_array($var))
|
|
{
|
|
foreach($var as $k2 => $var2)
|
|
{
|
|
$result[$k][$k2] = urlencode($var2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$result[$k] = urlencode($var);
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function EncodeResult($result)
|
|
{
|
|
if(!is_array($result))
|
|
return $result;
|
|
|
|
foreach($result as $k => $var)
|
|
{
|
|
if(is_array($var))
|
|
{
|
|
foreach($var as $k2 => $var2)
|
|
{
|
|
$result[$k][$k2] = htmlspecialchars($var2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$result[$k] = htmlspecialchars($var);
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
}//Util
|
|
|
|
?>
|