879 |
879 |
function page_filename($string) {
|
880 |
880 |
$string = entities_to_7bit(umlauts_to_entities($string));
|
881 |
881 |
// Now replace spaces with page spcacer
|
882 |
|
$string = str_replace(' ', PAGE_SPACER, $string);
|
|
882 |
$string = trim($string);
|
|
883 |
$string = preg_replace('/(\s)+/', PAGE_SPACER, $string);
|
883 |
884 |
// Now remove all bad characters
|
884 |
885 |
$bad = array(
|
885 |
886 |
'\'', /* / */ '"', /* " */ '<', /* < */ '>', /* > */
|
... | ... | |
892 |
893 |
$string = str_replace($bad, '', $string);
|
893 |
894 |
// Now convert to lower-case
|
894 |
895 |
$string = strtolower($string);
|
895 |
|
// Now remove multiple page spacers
|
896 |
|
$string = str_replace(PAGE_SPACER.PAGE_SPACER, PAGE_SPACER, $string);
|
897 |
|
// Clean any page spacers at the end of string
|
898 |
|
$string = str_replace(PAGE_SPACER, ' ', $string);
|
899 |
|
$string = trim($string);
|
900 |
|
$string = str_replace(' ', PAGE_SPACER, $string);
|
901 |
896 |
// If there are any weird language characters, this will protect us against possible problems they could cause
|
902 |
897 |
$string = str_replace(array('%2F', '%'), array('/', ''), urlencode($string));
|
903 |
898 |
// Finally, return the cleaned string
|
Fixed #542 (thanks to Thorn)