function convertEncoding($arr, $toEncoding, $fromEncoding = '', $convertKey = false) { /*{{{*/ if (empty($arr)) { return $arr; } if ($toEncoding == $fromEncoding) { return $arr; } if (is_array($arr)) { $keys = array_keys($arr); for ($i = 0, $max = count($keys); $i < $max; $i++) { $key = $keys[$i]; $res = $arr[$key]; if ($convertKey) { unset($arr[$key]); $key = mb_convert_encoding($key, $toEncoding, $fromEncoding); } if (is_array($res)) { $res = convertEncoding($res, $toEncoding, $fromEncoding, $convertKey); } else { $res = mb_convert_encoding($res, $toEncoding, $fromEncoding); } $arr[$key] = $res; } } else { $arr = mb_convert_encoding($arr, $toEncoding, $fromEncoding); } return $arr; }
<?php $cube_db = new mysqli('localhost', 'root', '', 'parfumerie'); $cube_db->set_charset('ISO-8859-2'); $stmt = $cube_db->prepare('select description from cubecart_inventory where productId = 14'); $stmt->execute(); $result = $stmt->get_result(); if ($row = $result->fetch_assoc()) { $description = $row['description']; } $stmt->close(); echo $description; echo '<br/>'; function convertEncoding($str, $encfrom, $encto) { //return $str; //$str2 = mb_convert_encoding($str, $encto, $encfrom); $str2 = iconv($encfrom, $encto, $str); echo sprintf('<b>from: %s, to: %s</b><br/>', $encfrom, $encto); echo $str2; echo '<br/>'; } $enclist = array('UTF-8', 'ASCII', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16', 'Windows-1251', 'Windows-1252', 'Windows-1254', 'Windows-1250', 'latin1'); for ($i = 0, $maxi = count($enclist) - 1; $i < $maxi; $i++) { convertEncoding($description, $enclist[$i], 'UTF-8'); //for ($y = 0, $maxy = count($enclist)-1; $y < $maxy; $y++) { // convertEncoding($description, $enclist[$i], $enclist[$y]); //} }
/** * Get/Set a $_COOKIE value * * @param string $key * @param string $value The value to set * @param int $expire A unix timestamp how long the cookie is valid, 0 for session like behaviour * @return mixed */ function cookie($key, $value = null, $expire = 0) { $key = slugify($key); if ($value === null) { return convertEncoding(arrayValue($_COOKIE, $key)); } $value = (string) $value; $_COOKIE[$key] = $value; setcookie($key, $value, $expire, CHOQ_RequestManager::$cookieParams["path"], CHOQ_RequestManager::$cookieParams["domain"], CHOQ_RequestManager::$cookieParams["secure"], CHOQ_RequestManager::$cookieParams["httponly"]); }
$category->save(); } $stmt->close(); } */ $stmt = SqlQuery::select($cube_db, 'cubecart_inventory'); if ($stmt) { $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { $product = new Product($db); $product->loadByExtId($row['productId']); // import new product if (!$product->is_loaded) { $product->data['product_ext_id'] = $row['productId']; $product->data['product_name'] = myTrim(convertEncoding($row['name'])); $product->data['product_price'] = parseFloat($row['price']); $category = loadCategory($row['cat_id']); if (isset($category)) { $product->data['product_category_id'] = $category->ival('category_id'); } $new++; } else { $updated++; } $product->data['product_description'] = convertEncoding($row['description']); $product->data['product_image'] = $row['image']; $product->save(); } $stmt->close(); } echo sprintf('Imported %s new, %s updated.', $new, $updated);
unset($zaznamy[1]); // rozseparuje riadok na predmety $predmety = preg_split("/;/", $zaznamy[2]); // ziska zoznam predmetov z riadku, predmety idu ale az od 4 stlpca $predmety = array_slice($predmety, 3); // vyhodime grant total array_pop($predmety); // spravne kodovanie aby vedel robit match na predmety convertEncoding($predmety); // vyhodime aj predmety aby boli len studenti unset($zaznamy[2]); $studenti = array(); // kluc bude AIS ID foreach ($zaznamy as $zaznam) { $hodnoty = preg_split("/;/", $zaznam); convertEncoding($hodnoty); // vyberie zapisane predmety $zapisanePredmety = array_slice($hodnoty, 3); // zaevidujeme studenta $studenti[$hodnoty[AIS_ID]] = array("meno" => $hodnoty[MENO], "priezvisko" => $hodnoty[PRIEZVISKO], "osobne_cislo" => $hodnoty[AIS_ID], "rocnik" => 1, "studijny_program" => 1, "fakulta" => "FIIT STU"); foreach ($zapisanePredmety as $key => $zapisanyPredmet) { // nema na vyber zaznaci si len nazov predmetu if ($zapisanyPredmet == "1") { $studenti[$hodnoty[AIS_ID]]["zapisane"][] = $predmety[$key]; } } } //var_dump($studenti); //rollback nech neblokuje ine updaty lebo bol v transakcii //$dbh->TransactionRollback(); //throw new Exception("TEST ONLY");
/** * Converts a file's contents' encoding to desired encoding if it does not match. * @param string $filename * @param string $desiredEncoding */ function convertFileEncoding($filename, $desiredEncoding = 'UTF-8') { $contents = file_get_contents($filename); if ($desiredEncoding !== determineEncoding($contents)) { file_put_contents($filename, convertEncoding($contents)); } }