/** * Minimalistic parameter cleaning function. * * Note: Can not use optional param because moodlelib.php is not loaded yet. * * @param string $value * @param string $type * @return mixed */ function min_clean_param($value, $type) { switch($type) { case 'RAW': $value = min_fix_utf8((string)$value); break; case 'INT': $value = (int)$value; break; case 'SAFEDIR': $value = preg_replace('/[^a-zA-Z0-9_-]/', '', $value); break; case 'SAFEPATH': $value = preg_replace('/[^a-zA-Z0-9\/\._-]/', '', $value); $value = preg_replace('/\.+/', '.', $value); $value = preg_replace('#/+#', '/', $value); break; default: die("Coding error: incorrect parameter type specified ($type)."); } return $value; }
/** * Test cleaning of invalid utf-8 entities. */ public function test_min_fix_utf8() { $this->assertSame('abc', min_fix_utf8('abc')); $this->assertSame("žlutý koníček přeskočil potůček \n\t\r", min_fix_utf8("žlutý koníček přeskočil potůček \n\t\r")); $this->assertSame('aš', min_fix_utf8('a' . chr(130) . 'š'), 'This fails with buggy iconv() when mbstring extenstion is not available as fallback.'); }