Closed mkyral closed 7 years ago
V github.com/vvito/chyrp jsem našel tuhle pěknou funkci:
/**
* Function: sanitize
* Returns a sanitized string, typically for URLs.
*
* Parameters:
* $string - The string to sanitize.
* $force_lowercase - Force the string to lowercase?
* $anal - If set to *true*, will remove all non-alphanumeric characters.
* $trunc - Number of characters to truncate to (default 100, 0 to disable).
*/
################################################################################
function sanitize($string, $force_lowercase = true, $anal = false, $trunc = 100) {
$strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]",
"}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—",
"—", "–", ",", "<", ".", ">", "/", "?");
$clean = trim(str_replace($strip, "", strip_tags($string)));
$clean = preg_replace('/\s+/', "-", $clean);
$clean = ($anal ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean);
$clean = ($trunc ? substr($clean, 0, $trunc) : $clean);
return ($force_lowercase) ?
(function_exists('mb_strtolower')) ?
mb_strtolower($clean, 'UTF-8') :
strtolower($clean) :
$clean;
}
Ale nejsem si jist, zda je dobré ji nasadit - hrozí vznik duplicit. Když někdo nahraje stejný soubor podruhé, tak může mít jiné jméno a projde tak přes kontrolu.
Možná bude statšit jen přidat do kontroly #, závorky a další rezervované znaky .
duplicity by se meli kontrolovat taky, jmeno souboru je hlavni identifikator, zadne duplicity nastat nemuzou
Ne. Myslím to tak, že když někdo nahrál soubor s nějakým podivným jménem, tak teď jej bude moci nahrát znova, protože se ta jména nebudou rovnat.
Ale těch případů asi nebude moc, pokud vůbec nejaký.
ano, to je pravda.
nicmene v tomto pripade by se tak stat nemelo protoze: fotka se puvodne jmenovala (redakcne zkraceno:) a#b.jpg upravil sem to na ab.jpg pri pokusu nahrat to znovu se to automaticky upravi na ab.jpg a pri odmazani mrizky je z toho zase ab.jpg takze v tomhle pripade by se muselo jmeno uplne predelat aby se to zase uploadlo.
A můžeš teda smazat ty duplicity?
http://api.openstreetmap.cz/table/id/12082 http://api.openstreetmap.cz/table/id/12084
http://api.openstreetmap.cz/table/id/12083 http://api.openstreetmap.cz/table/id/12085
Díky
jo tak ono to tam uz 2x je, to sem nevedel, kterej nazev teda nechat, ten kratsi?
Ono to je jedno. Hoď si korunou ;-)
done
Uživatel nahrál soubor pojmenovaný VO 493 2 2015.07.10#56 Pod Boubínem 1352 m.jpg. Znak '#' v názvu způsobil, že se na soubor nelze odkázat. Server vrátí chybu: