mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
Strings/Encoding
* replaced some more uses of string functions with multibyte equivalents where it might matter note: i didn't touch the spell-tooltip parser as it seems to work as intended regardless
This commit is contained in:
@@ -307,7 +307,7 @@ class AjaxHandler
|
||||
|
||||
// trim to max length
|
||||
if (!User::isInGroup(U_GROUP_MODERATOR) && mb_strlen($this->post('commentbody')) > $_maxCmt)
|
||||
$this->post['body'] = substr($this->post('body'), 0, $_maxCmt);
|
||||
$this->post['body'] = mb_substr($this->post('body'), 0, $_maxCmt);
|
||||
|
||||
if (User::canComment() && !empty($this->post('commentbody')) && mb_strlen($this->post('commentbody')) >= $_minCmt)
|
||||
{
|
||||
@@ -335,7 +335,7 @@ class AjaxHandler
|
||||
|
||||
// trim to max length
|
||||
if (!User::isInGroup(U_GROUP_MODERATOR) && mb_strlen($this->post('body')) > $_maxCmt)
|
||||
$this->post['body'] = substr($this->post('body'), 0, $_maxCmt);
|
||||
$this->post['body'] = mb_substr($this->post('body'), 0, $_maxCmt);
|
||||
|
||||
$update = array(
|
||||
'body' => $this->post('body'),
|
||||
@@ -965,7 +965,7 @@ class AjaxHandler
|
||||
}
|
||||
}
|
||||
|
||||
$buff .= 'g_spells.add('.$id.", {id:".$id.", name:'".Util::jsEscape(substr($data['name'], 1))."', icon:'".$data['icon']."', modifier:".Util::toJSON($mods)."});\n";
|
||||
$buff .= 'g_spells.add('.$id.", {id:".$id.", name:'".Util::jsEscape(mb_substr($data['name'], 1))."', icon:'".$data['icon']."', modifier:".Util::toJSON($mods)."});\n";
|
||||
}
|
||||
$buff .= "\n";
|
||||
}
|
||||
@@ -1130,7 +1130,7 @@ class AjaxHandler
|
||||
|
||||
if ($this->get('type') && intVal($this->get('type')) && $this->get('typeid') && intVal($this->get('typeid')))
|
||||
$res = CommunityContent::getScreenshotsForManager($this->get('type'), $this->get('typeid'));
|
||||
else if ($this->get('user') && strlen(urldecode($this->get('user'))) > 2)
|
||||
else if ($this->get('user') && mb_strlen(urldecode($this->get('user'))) > 2)
|
||||
if ($uId = DB::Aowow()->selectCell('SELECT id FROM ?_account WHERE displayName = ?', strtolower(urldecode($this->get('user')))))
|
||||
$res = CommunityContent::getScreenshotsForManager(0, 0, $uId);
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ class CommunityContent
|
||||
// limit whitespaces to one at a time
|
||||
$c['preview'] = preg_replace('/\s+/', ' ', $c['preview']);
|
||||
// limit previews to 100 chars + whatever it takes to make the last word full
|
||||
if (strlen($c['preview']) > 100)
|
||||
if (mb_strlen($c['preview']) > 100)
|
||||
{
|
||||
$n = 0;
|
||||
$b = [];
|
||||
@@ -183,7 +183,7 @@ class CommunityContent
|
||||
while ($n < 100 && $parts)
|
||||
{
|
||||
$_ = array_shift($parts);
|
||||
$n += strlen($_);
|
||||
$n += mb_strlen($_);
|
||||
$b[] = $_;
|
||||
}
|
||||
|
||||
|
||||
@@ -922,9 +922,9 @@ abstract class Filter
|
||||
$parts = array_filter(explode(' ', $string));
|
||||
foreach ($parts as $p)
|
||||
{
|
||||
if ($p[0] == '-' && strlen($p) > 3)
|
||||
$sub[] = [$f, sprintf($exPH, substr($p, 1)), '!'];
|
||||
else if ($p[0] != '-' && strlen($p) > 2)
|
||||
if ($p[0] == '-' && mb_strlen($p) > 3)
|
||||
$sub[] = [$f, sprintf($exPH, mb_substr($p, 1)), '!'];
|
||||
else if ($p[0] != '-' && mb_strlen($p) > 2)
|
||||
$sub[] = [$f, sprintf($exPH, $p)];
|
||||
}
|
||||
|
||||
|
||||
@@ -370,7 +370,7 @@ class User
|
||||
{
|
||||
$errCode = 0;
|
||||
|
||||
if (strlen($name) < 4 || strlen($name) > 16)
|
||||
if (mb_strlen($name) < 4 || mb_strlen($name) > 16)
|
||||
$errCode = 1;
|
||||
else if (preg_match('/[^\w\d]/i', $name))
|
||||
$errCode = 2;
|
||||
|
||||
@@ -454,7 +454,7 @@ class AdminPage extends GenericPage
|
||||
else if (!empty($_GET['user']))
|
||||
{
|
||||
$name = urldecode($_GET['user']);
|
||||
if (strlen($name) > 3)
|
||||
if (mb_strlen($name) >= 3)
|
||||
{
|
||||
if ($uId = DB::Aowow()->selectCell('SELECT id FROM ?_account WHERE displayName = ?', ucFirst($name)))
|
||||
{
|
||||
|
||||
@@ -108,7 +108,7 @@ class GenericPage
|
||||
$this->time = microtime(true);
|
||||
|
||||
if (CFG_CACHE_DIR && Util::checkOrCreateDirectory(CFG_CACHE_DIR))
|
||||
$this->cacheDir = substr(CFG_CACHE_DIR, -1) != '/' ? CFG_CACHE_DIR.'/' : CFG_CACHE_DIR;
|
||||
$this->cacheDir = mb_substr(CFG_CACHE_DIR, -1) != '/' ? CFG_CACHE_DIR.'/' : CFG_CACHE_DIR;
|
||||
|
||||
// force page refresh
|
||||
if (isset($_GET['refresh']) && User::isInGroup(U_GROUP_ADMIN | U_GROUP_BUREAU | U_GROUP_DEV))
|
||||
|
||||
@@ -24,7 +24,7 @@ class ProfilePage extends GenericPage
|
||||
|
||||
public function __construct($pageCall, $pageParam)
|
||||
{
|
||||
$_ = strlen($pageParam) ? explode('.', $pageParam) : null;
|
||||
$_ = $pageParam ? explode('.', $pageParam) : null;
|
||||
$this->getCategoryFromUrl($pageParam);
|
||||
|
||||
$this->typeId &= $this->profileId;
|
||||
|
||||
@@ -124,14 +124,14 @@ class SearchPage extends GenericPage
|
||||
continue;
|
||||
else if ($p[0] == '-')
|
||||
{
|
||||
if (strlen($p) < 4)
|
||||
$this->invalid[] = substr($p, 1);
|
||||
if (mb_strlen($p) < 4)
|
||||
$this->invalid[] = mb_substr($p, 1);
|
||||
else
|
||||
$this->excluded[] = substr($p, 1);
|
||||
$this->excluded[] = mb_substr($p, 1);
|
||||
}
|
||||
else if ($p !== '')
|
||||
{
|
||||
if (strlen($p) < 3)
|
||||
if (mb_strlen($p) < 3)
|
||||
$this->invalid[] = $p;
|
||||
else
|
||||
$this->included[] = $p;
|
||||
@@ -311,7 +311,7 @@ class SearchPage extends GenericPage
|
||||
break;
|
||||
|
||||
$hasQ = is_numeric($data['name'][0]) || $data['name'][0] == '@';
|
||||
$result[1][] = ($hasQ ? substr($data['name'], 1) : $data['name']).$set['appendix'];
|
||||
$result[1][] = ($hasQ ? mb_substr($data['name'], 1) : $data['name']).$set['appendix'];
|
||||
$result[3][] = HOST_URL.'/?'.Util::$typeStrings[$set['type']].'='.$data['id'];
|
||||
$extra = [$set['type'], $data['id']];
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ class UtilityPage extends GenericPage
|
||||
foreach ($data as $typeId => &$d)
|
||||
{
|
||||
$this->feedData[] = array(
|
||||
'title' => [true, [], htmlentities(Util::$typeStrings[$type] == 'item' ? substr($d['name'], 1) : $d['name'])],
|
||||
'title' => [true, [], htmlentities(Util::$typeStrings[$type] == 'item' ? mb_substr($d['name'], 1) : $d['name'])],
|
||||
'type' => [false, [], Util::$typeStrings[$type]],
|
||||
'link' => [false, [], HOST_URL.'/?'.Util::$typeStrings[$type].'='.$d['id']],
|
||||
'ncomments' => [false, [], $comments[$typeId]]
|
||||
|
||||
@@ -100,13 +100,13 @@ class CLISetup
|
||||
$setupDirs = glob('setup/*');
|
||||
foreach ($setupDirs as $sd)
|
||||
{
|
||||
if (substr(self::$srcDir, -1) == '/')
|
||||
self::$srcDir = substr(self::$srcDir, 0, -1);
|
||||
if (mb_substr(self::$srcDir, -1) == '/')
|
||||
self::$srcDir = mb_substr(self::$srcDir, 0, -1);
|
||||
|
||||
if (substr($sd, -1) == '/')
|
||||
$sd = substr($sd, 0, -1);
|
||||
if (mb_substr($sd, -1) == '/')
|
||||
$sd = mb_substr($sd, 0, -1);
|
||||
|
||||
if (strtolower($sd) == strtolower(self::$srcDir))
|
||||
if (Util::lower($sd) == Util::lower(self::$srcDir))
|
||||
{
|
||||
self::$srcDir = $sd.'/';
|
||||
break;
|
||||
@@ -147,8 +147,8 @@ class CLISetup
|
||||
$_ = strtolower(str_replace('\\', '/', $file));
|
||||
|
||||
// remove trailing slash
|
||||
if (substr($_, -1, 1) == '/')
|
||||
$_ = substr($_, 0, -1);
|
||||
if (mb_substr($_, -1, 1) == '/')
|
||||
$_ = mb_substr($_, 0, -1);
|
||||
|
||||
if (isset(self::$mpqFiles[$_]))
|
||||
{
|
||||
@@ -387,7 +387,7 @@ class CLISetup
|
||||
if (!$charBuff)
|
||||
continue;
|
||||
|
||||
$charBuff = substr($charBuff, 0, -1);
|
||||
$charBuff = mb_substr($charBuff, 0, -1);
|
||||
echo chr(self::CHR_BACK)." ".chr(self::CHR_BACK);
|
||||
}
|
||||
else if ($keyId == self::CHR_LF)
|
||||
|
||||
@@ -36,7 +36,7 @@ function dbconfig()
|
||||
$errStr = '['.mysqli_connect_errno().'] '.mysqli_connect_error();
|
||||
|
||||
$buff .= $errStr ? CLISetup::red('ERR ') : CLISetup::green('OK ');
|
||||
$buff .= 'mysqli://'.$dbInfo['user'].':'.str_pad('', strlen($dbInfo['pass']), '*').'@'.$dbInfo['host'].'/'.$dbInfo['db'];
|
||||
$buff .= 'mysqli://'.$dbInfo['user'].':'.str_pad('', mb_strlen($dbInfo['pass']), '*').'@'.$dbInfo['host'].'/'.$dbInfo['db'];
|
||||
$buff .= ($dbInfo['prefix'] ? ' table prefix: '.$dbInfo['prefix'] : null).' '.$errStr;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -163,7 +163,7 @@ if (!CLI)
|
||||
foreach ($mountz->getListviewData(ITEMINFO_MODEL) as $id => $data)
|
||||
{
|
||||
$data['quality'] = $data['name'][0];
|
||||
$data['name'] = substr($data['name'], 1);
|
||||
$data['name'] = mb_substr($data['name'], 1);
|
||||
$buff .= '_['.$id.'] = '.Util::toJSON($data).";\n";
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ if (!CLI)
|
||||
foreach ($companionz->getListviewData(ITEMINFO_MODEL) as $id => $data)
|
||||
{
|
||||
$data['quality'] = $data['name'][0];
|
||||
$data['name'] = substr($data['name'], 1);
|
||||
$data['name'] = mb_substr($data['name'], 1);
|
||||
$buff .= '_['.$id.'] = '.Util::toJSON($data).";\n";
|
||||
}
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@ if (!CLI)
|
||||
{
|
||||
$result = null;
|
||||
|
||||
if (in_array(substr($path, -4, 4), ['.png', '.blp', '.BLP', '.PNG']))
|
||||
$path = substr($path, 0, strlen($path) - 4);
|
||||
if (in_array(mb_substr($path, -4, 4), ['.png', '.blp', '.BLP', '.PNG']))
|
||||
$path = mb_substr($path, 0, mb_strlen($path) - 4);
|
||||
|
||||
$file = $path.'.png';
|
||||
if (CLISetup::fileExists($file))
|
||||
|
||||
Reference in New Issue
Block a user