/** * Used by runOnCluster to Normalize video titles and metadata * * @param DatabaseMysql $db * @param bool $test * @param bool $verbose * @param array $params */ public static function run(DatabaseMysql $db, $test, $verbose = false, $params) { if (!$db->tableExists('image') || !$db->tableExists('video_info')) { echo "ERROR: {$params['dbname']} (ID:{$params['cityId']}): image/video_info table does not exist.\n"; return; } foreach (self::getVideoRows($db) as $video) { $originalName = $video->img_name; if (\UtfNormal::quickIsNFC($originalName)) { if ($verbose) { echo "Already in NFC form; skipping: {$originalName}\n"; } continue; } self::updateVideo($video, $db, $test, $verbose); } }
/** * Convert a UTF-8 string to normal form C, canonical composition. * Fast return for pure ASCII strings; some lesser optimizations for * strings containing only known-good characters. * * @param $string String: a valid UTF-8 string. Input is not validated. * @return string a UTF-8 string in normal form C */ static function toNFC($string) { if (NORMALIZE_INTL) { return normalizer_normalize($string, Normalizer::FORM_C); } elseif (NORMALIZE_ICU) { return utf8_normalize($string, UNORM_NFC); } elseif (UtfNormal::quickIsNFC($string)) { return $string; } else { return UtfNormal::NFC($string); } }