第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

清理字符串以使它們的URL和文件名安全嗎?

清理字符串以使它們的URL和文件名安全嗎?

PHP
犯罪嫌疑人X 2019-11-22 11:14:18
我正在嘗試提出一個(gè)功能,該功能可以很好地清理某些字符串,以使它們可以安全地在URL中使用(如post slug),也可以安全地用作文件名。例如,當(dāng)有人上傳文件時(shí),我要確保我從名稱中刪除所有危險(xiǎn)字符。到目前為止,我已經(jīng)提出了以下功能,希望該功能可以解決此問題,并允許外來UTF-8數(shù)據(jù)。/** * Convert a string to the file/URL safe "slug" form * * @param string $string the string to clean * @param bool $is_filename TRUE will allow additional filename characters * @return string */function sanitize($string = '', $is_filename = FALSE){ // Replace all weird characters with dashes $string = preg_replace('/[^\w\-'. ($is_filename ? '~_\.' : ''). ']+/u', '-', $string); // Only allow one dash separator at a time (and make string lowercase) return mb_strtolower(preg_replace('/--+/u', '-', $string), 'UTF-8');}有沒有人可以針對(duì)此運(yùn)行任何棘手的示例數(shù)據(jù)-或知道一種更好的方法來保護(hù)我們的應(yīng)用程序免受不良影響?$ is-filename允許一些其他字符,例如temp vim文件更新:刪除了星號(hào),因?yàn)槲覠o法想到有效的用法
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

這應(yīng)該使您的文件名安全...


$string = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), $string);

一個(gè)更深層的解決方案是:


// Remove special accented characters - ie. sí.

$clean_name = strtr($string, array('?' => 'S','?' => 'Z','?' => 's','?' => 'z','?' => 'Y','à' => 'A','á' => 'A','?' => 'A','?' => 'A','?' => 'A','?' => 'A','?' => 'C','è' => 'E','é' => 'E','ê' => 'E','?' => 'E','ì' => 'I','í' => 'I','?' => 'I','?' => 'I','?' => 'N','ò' => 'O','ó' => 'O','?' => 'O','?' => 'O','?' => 'O','?' => 'O','ù' => 'U','ú' => 'U','?' => 'U','ü' => 'U','Y' => 'Y','à' => 'a','á' => 'a','a' => 'a','?' => 'a','?' => 'a','?' => 'a','?' => 'c','è' => 'e','é' => 'e','ê' => 'e','?' => 'e','ì' => 'i','í' => 'i','?' => 'i','?' => 'i','?' => 'n','ò' => 'o','ó' => 'o','?' => 'o','?' => 'o','?' => 'o','?' => 'o','ù' => 'u','ú' => 'u','?' => 'u','ü' => 'u','y' => 'y','?' => 'y'));

$clean_name = strtr($clean_name, array('T' => 'TH', 't' => 'th', 'D' => 'DH', 'e' => 'dh', '?' => 'ss', '?' => 'OE', '?' => 'oe', '?' => 'AE', '?' => 'ae', 'μ' => 'u'));


$clean_name = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), $clean_name);

假設(shè)您要在文件名中添加一個(gè)點(diǎn)。如果您希望將其轉(zhuǎn)換為小寫字母,只需使用


$clean_name = strtolower($clean_name);

最后一行。


查看完整回答
反對(duì) 回復(fù) 2019-11-22
  • 3 回答
  • 0 關(guān)注
  • 451 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)