This function will turn any string into a safe string usable in a URI.
1 function dirify($s) {
2 $s = convert_high_ascii($s);
3 $s = strtolower($s);
4 $s = strip_tags($s);
5 $s = preg_replace('!&[^;\s]+;!','',$s);
6 $s = preg_replace('![^\w\s.]!','',$s);
7 $s = preg_replace('!\s+!','-',$s);
8 return $s;
9 }
10
11 function convert_high_ascii($s) {
12 $HighASCII = array(
13 "!\xc0!" => 'A',
14 "!\xe0!" => 'a',
15 "!\xc1!" => 'A',
16 "!\xe1!" => 'a',
17 "!\xc2!" => 'A',
18 "!\xe2!" => 'a',
19 "!\xc4!" => 'Ae',
20 "!\xe4!" => 'ae',
21 "!\xc3!" => 'A',
22 "!\xe3!" => 'a',
23 "!\xc8!" => 'E',
24 "!\xe8!" => 'e',
25 "!\xc9!" => 'E',
26 "!\xe9!" => 'e',
27 "!\xca!" => 'E',
28 "!\xea!" => 'e',
29 "!\xcb!" => 'Ee',
30 "!\xeb!" => 'ee',
31 "!\xcc!" => 'I',
32 "!\xec!" => 'i',
33 "!\xcd!" => 'I',
34 "!\xed!" => 'i',
35 "!\xce!" => 'I',
36 "!\xee!" => 'i',
37 "!\xcf!" => 'Ie',
38 "!\xef!" => 'ie',
39 "!\xd2!" => 'O',
40 "!\xf2!" => 'o',
41 "!\xd3!" => 'O',
42 "!\xf3!" => 'o',
43 "!\xd4!" => 'O',
44 "!\xf4!" => 'o',
45 "!\xd6!" => 'Oe',
46 "!\xf6!" => 'oe',
47 "!\xd5!" => 'O',
48 "!\xf5!" => 'o',
49 "!\xd8!" => 'Oe',
50 "!\xf8!" => 'oe',
51 "!\xd9!" => 'U',
52 "!\xf9!" => 'u',
53 "!\xda!" => 'U',
54 "!\xfa!" => 'u',
55 "!\xdb!" => 'U',
56 "!\xfb!" => 'u',
57 "!\xdc!" => 'Ue',
58 "!\xfc!" => 'ue',
59 "!\xc7!" => 'C',
60 "!\xe7!" => 'c',
61 "!\xd1!" => 'N',
62 "!\xf1!" => 'n',
63 "!\xdf!" => 'ss'
64 );
65 $find = array_keys($HighASCII);
66 $replace = array_values($HighASCII);
67 $s = preg_replace($find,$replace,$s);
68 return $s;
69 }