X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FTools%2FUtils.php;h=46bb1dc5c82441cd8277f00dc121eec84298697e;hb=2a1ceb67b4400f46f4d3067e887ff54aa906f0a2;hp=b146d98b9c360dfd64a7da1057f9fc3f5d065219;hpb=1f4408de9ed08f3b0fda45a93f1585c80feeb21d;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Tools/Utils.php b/src/Wallabag/CoreBundle/Tools/Utils.php index b146d98b..46bb1dc5 100644 --- a/src/Wallabag/CoreBundle/Tools/Utils.php +++ b/src/Wallabag/CoreBundle/Tools/Utils.php @@ -7,32 +7,16 @@ class Utils /** * Generate a token used for RSS. * + * @param int $length Length of the token + * * @return string */ - public static function generateToken() + public static function generateToken($length = 15) { - if (ini_get('open_basedir') === '') { - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - // alternative to /dev/urandom for Windows - $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20); - } else { - $token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15); - } - } else { - $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20); - } + $token = substr(base64_encode(random_bytes($length)), 0, $length); // remove character which can broken the url - return str_replace(array('+', '/'), '', $token); - } - - /** - * @param $words - * @return float - */ - public static function convertWordsToMinutes($words) - { - return floor($words / 200); + return str_replace(['+', '/'], '', $token); } /** @@ -45,6 +29,6 @@ class Utils */ public static function getReadingTime($text) { - return self::convertWordsToMinutes(str_word_count(strip_tags($text))); + return floor(\count(preg_split('~[^\p{L}\p{N}\']+~u', strip_tags($text))) / 200); } }