SEO vriendelijke URL's: Latijnse letters, lowercase
Toevoeging op 07/01/2014 19:43:46:
De oplossing is het gebruik van iconv:
Code (php)
Vervolgens kun je characters als ? en ! eruit filteren en een dash voor elke spatie invoegen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
setlocale(LC_CTYPE, 'nl_NL');
function sluggify($string) {
return str_replace(
' ', '-',
preg_replace(
'/[^[:alnum:] ]+/', '',
iconv(
'UTF-8', 'ASCII//TRANSLIT', $string
)
)
);
}
echo sluggify('¿espanñol? ¡olé!');
//> 'espannol-ole'
?>
setlocale(LC_CTYPE, 'nl_NL');
function sluggify($string) {
return str_replace(
' ', '-',
preg_replace(
'/[^[:alnum:] ]+/', '',
iconv(
'UTF-8', 'ASCII//TRANSLIT', $string
)
)
);
}
echo sluggify('¿espanñol? ¡olé!');
//> 'espannol-ole'
?>
Gewijzigd op 07/01/2014 19:44:38 door Wouter J
Ivo P op 07/01/2014 19:23:33:
Toevoeging op 07/01/2014 19:31:08:
getest en bij mij werkt dit
Toevoeging op 07/01/2014 19:32:55:
helaas vernaggelt phphulp een hoop van de tekens: overal waar hierboven een ? staat in $tabel, moet een letter met een raar accent staan (die lang niet allemaal op mijn toetsenbord te vinden zijn.)
Die vraagtekens moet je dan maar verwijderen of vervangen door de letters die van toepassing lijken.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$string = '¿espanñol? ¡olé!';
$string = remove_accents($string);
$string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
$string = trim($string, '-');
?>
$string = '¿espanñol? ¡olé!';
$string = remove_accents($string);
$string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
$string = trim($string, '-');
?>
Toevoeging op 07/01/2014 19:31:08:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function remove_accents($string)
{
$table = array(
'Š' => 'S', 'š' => 's', '?' => 'Dj', '?' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'À' => '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', 'Þ' => 'B', 'ß' => 'Ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
'ÿ' => 'y', '?' => 'R', '?' => 'r',
);
return strtr($string, $table);
}
$string = '¿español? ¡olé!';
$string = remove_accents($string);
$string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
$string = trim($string, '-');
echo $string;
?>
function remove_accents($string)
{
$table = array(
'Š' => 'S', 'š' => 's', '?' => 'Dj', '?' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'À' => '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', 'Þ' => 'B', 'ß' => 'Ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
'ÿ' => 'y', '?' => 'R', '?' => 'r',
);
return strtr($string, $table);
}
$string = '¿español? ¡olé!';
$string = remove_accents($string);
$string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
$string = trim($string, '-');
echo $string;
?>
getest en bij mij werkt dit
Toevoeging op 07/01/2014 19:32:55:
helaas vernaggelt phphulp een hoop van de tekens: overal waar hierboven een ? staat in $tabel, moet een letter met een raar accent staan (die lang niet allemaal op mijn toetsenbord te vinden zijn.)
Die vraagtekens moet je dan maar verwijderen of vervangen door de letters die van toepassing lijken.
Bij mij werkt die helaas niet. Bij jou wel dus? Maar goed, meer kan ik niet van je vragen. Dank je wel!
Toevoeging op 07/01/2014 20:38:49:
Wouter J op 07/01/2014 19:37:31:
Ivo, dan trim je alle dashes. Dat wil hij ook niet...
Toevoeging op 07/01/2014 19:43:46:
De oplossing is het gebruik van iconv:
Vervolgens kun je characters als ? en ! eruit filteren en een dash voor elke spatie invoegen:
Toevoeging op 07/01/2014 19:43:46:
De oplossing is het gebruik van iconv:
Code (php)
Vervolgens kun je characters als ? en ! eruit filteren en een dash voor elke spatie invoegen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
setlocale(LC_CTYPE, 'nl_NL');
function sluggify($string) {
return str_replace(
' ', '-',
preg_replace(
'/[^[:alnum:] ]+/', '',
iconv(
'UTF-8', 'ASCII//TRANSLIT', $string
)
)
);
}
echo sluggify('¿espanñol? ¡olé!');
//> 'espannol-ole'
?>
setlocale(LC_CTYPE, 'nl_NL');
function sluggify($string) {
return str_replace(
' ', '-',
preg_replace(
'/[^[:alnum:] ]+/', '',
iconv(
'UTF-8', 'ASCII//TRANSLIT', $string
)
)
);
}
echo sluggify('¿espanñol? ¡olé!');
//> 'espannol-ole'
?>
Hi Wouter J,
Dat ziet er inderdaad ook logisch uit qua opbouw. Alleen de vraagt blijft, hoe wordt dit gecombineerd met het oog op mijn laatst gebruikte code? Hoe ziet het totaalplaatje eruit afgaande op de wensen:
- verwijderen symbolen zoals ?! in de URL.
- vervangen van Latijns karakters door de "normale" Europese lettervarianten, m.a.w. ñ>n, é>e.
- hoofdletters vervangen door kleine letters. Dit geldt ook voor Ñ>n, É>e.
Voorbeeldtitel: ¿Por qué mañana?
Gewenste url: mijnwebsite.nl/por-que-manana.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
Mijn eigen originele code was in eerste instantie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$page->type = sprintf("%s",Utilities::scrub($_POST['type']));
$page->url = sprintf("%s",Utilities::scrub($_POST['url']));
if($page->type=='page'){
$page->url = preg_replace("/[^A-Za-z0-9-]/","-",$page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = preg_replace("/[^A-Za-z0-9-]/","-",$l->title)."/".$page->url;
}
//print_r($page);
//exit;
$page->url = sprintf("%s",Utilities::scrub($_POST['url']));
if($page->type=='page'){
$page->url = preg_replace("/[^A-Za-z0-9-]/","-",$page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = preg_replace("/[^A-Za-z0-9-]/","-",$l->title)."/".$page->url;
}
//print_r($page);
//exit;
Toevoeging op 07/01/2014 21:09:11:
Iconv() was kennelimk niet beschikbaar op de server in kwestie.
Wat gebeurt er / gaat er nog fout bij het script zoalx ik dat testte en wasrvan ik een screenshot postte?
Ivo P op 07/01/2014 21:06:18:
Trim() verwijdert tekens aan het begin en eindd van een string. In dit geval -
Toevoeging op 07/01/2014 21:09:11:
Iconv() was kennelimk niet beschikbaar op de server in kwestie.
Wat gebeurt er / gaat er nog fout bij het script zoalx ik dat testte en wasrvan ik een screenshot postte?
Toevoeging op 07/01/2014 21:09:11:
Iconv() was kennelimk niet beschikbaar op de server in kwestie.
Wat gebeurt er / gaat er nog fout bij het script zoalx ik dat testte en wasrvan ik een screenshot postte?
Hi Ivo P, dank je voor je reactie. Op basis van de exact zelfde code als in jouw screenshot wordt de paginatitel ¿Por qué mañana? weergegeven als: mijnwebsite.com/¿Por que manana?.php
Zoals je ziet blijven de (1) vraagtekens/uitroeptekens staan (i.p.v. verwijderd) (2) hoofdletters blijven hoofdletters en (3) een spatie wordt nu niet meer vervangen door een streepje (-)
Gewenste situatie dus: mijnwebsite.com/por-que-manana.php
Gebruikte code dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = 'espaol? ol!';
$string = remove_accents($string);
$string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
$string = trim($string, '-');
echo $string;
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = 'espaol? ol!';
$string = remove_accents($string);
$string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
$string = trim($string, '-');
echo $string;
Gewijzigd op 08/01/2014 10:43:53 door James de Graaf
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
?>
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
?>
$string = '¿Español? ¡olé!';
levert mij op
espanol-ole
Gewijzigd op 08/01/2014 10:47:42 door Ivo P
Ivo P op 08/01/2014 10:43:51:
ah ik zie het al: ik heb niet met hoofdletters getest:
$string = '¿Español? ¡olé!';
levert mij op
espanol-ole
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
?>
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
?>
$string = '¿Español? ¡olé!';
levert mij op
espanol-ole
Hmmm. Geen verandering, precies dezelfde weergave. Heb de cache geleegd etc.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
echo $string;
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
echo $string;
Roep je bovenstaande code wel aan?
Het laatste gedeelte, verwijderen van ¿?¡! nog niet. Hoe verwerk ik dit in de onderstaande, bijbegewerkte code?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if($page->type=='page'){
$page->url = strtolower ( remove_accents($page->title).".php");
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = strtolower ( remove_accents($l->title)."/".$page->url);
}
$page->url = strtolower ( remove_accents($page->title).".php");
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = strtolower ( remove_accents($l->title)."/".$page->url);
}
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = remove_accents($string);
$string = strtolower($string);
echo $string;
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = remove_accents($string);
$string = strtolower($string);
echo $string;
Gewijzigd op 08/01/2014 14:11:41 door James de Graaf
laten we van het onderste blok code van jou eens 1 functie maken:
regel 15 wordt
$string = strtr($string, $table);
De regels 18 + 19 gaan dan tussen regel 15 en 16
En er komt dan ook nog een regel
return $string;
voor de } van de huidige regel 16
regel 21 vervalt dan.
en in je bovenste code blok kan strtolower() vervallen op regel 2
Ivo P op 08/01/2014 15:51:01:
Ik vermoed nu wat je verkeerd doet:
laten we van het onderste blok code van jou eens 1 functie maken:
regel 15 wordt
$string = strtr($string, $table);
De regels 18 + 19 gaan dan tussen regel 15 en 16
En er komt dan ook nog een regel
return $string;
voor de } van de huidige regel 16
regel 21 vervalt dan.
en in je bovenste code blok kan strtolower() vervallen op regel 2
laten we van het onderste blok code van jou eens 1 functie maken:
regel 15 wordt
$string = strtr($string, $table);
De regels 18 + 19 gaan dan tussen regel 15 en 16
En er komt dan ook nog een regel
return $string;
voor de } van de huidige regel 16
regel 21 vervalt dan.
en in je bovenste code blok kan strtolower() vervallen op regel 2
Nee, helaas. Terug bij af.
1) Spaties i.p.v. "-"
2) Hoofdletters blijven hoofdletters.
Gewijzigde code
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if($page->type=='page'){
$page->url = remove_accents($page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
$page->url = remove_accents($page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
Gewijzigde functie
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
$string = strtr($string, $table);
return $string;
$string = remove_accents($string);
$string = strtolower($string);
echo $string;
}
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
$string = strtr($string, $table);
return $string;
$string = remove_accents($string);
$string = strtolower($string);
echo $string;
}
Volgens mij heb ik het laatste gedeelte niet goed overgenomen.
Maar waar voor mij werkelijk het probleem ligt, en tegelijkertijd de oplossing, was dat ik - de door jou eerder opgegeven funtie - niet had opgeroepen in de code. Ik weet namelijk niet hoe dit verwerkt moet worden.
Hoe roep ik de onderstaande functie op..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
echo $string;
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
return strtr($string, $table);
}
$string = remove_accents($string);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
$string = trim($string, '-');
echo $string;
In deze code..
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if($page->type=='page'){
$page->url = remove_accents($page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
$page->url = remove_accents($page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
Als de functie klopt, dan zou met aanpassing van de code hierboven de functie op de juiste wijze moeten werken lijkt me. Kun je me ajb de totale code van hierboven geven? Dat zou een stuk sneller zijn.
Gewijzigd op 08/01/2014 16:15:39 door James de Graaf
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
function remove_accents($string)
{
$table = array(
'Š' => 'S', 'š' => 's', 'Ð' => 'Dj', 'ð' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'À' => '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', 'Þ' => 'B', 'ß' => 'Ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
'ÿ' => 'y', '?' => 'R', '?' => '?',
);
// haal met bovenstaande table de rare letters weg
$string = strtr($string, $table);
// alles naar kleine letters
$string = strtolower($string);
// wat we nu nog aantreffen wat niet in a-z/0-9 past wordt een -
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
// aan begin en einde geen - graag
$string = trim($string, '-');
// geef antwoord terug
return $string;
} ?>
function remove_accents($string)
{
$table = array(
'Š' => 'S', 'š' => 's', 'Ð' => 'Dj', 'ð' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'À' => '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', 'Þ' => 'B', 'ß' => 'Ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
'ÿ' => 'y', '?' => 'R', '?' => '?',
);
// haal met bovenstaande table de rare letters weg
$string = strtr($string, $table);
// alles naar kleine letters
$string = strtolower($string);
// wat we nu nog aantreffen wat niet in a-z/0-9 past wordt een -
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
// aan begin en einde geen - graag
$string = trim($string, '-');
// geef antwoord terug
return $string;
} ?>
Ivo P op 08/01/2014 16:19:00:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
function remove_accents($string)
{
$table = array(
'Š' => 'S', 'š' => 's', 'Ð' => 'Dj', 'ð' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'À' => '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', 'Þ' => 'B', 'ß' => 'Ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
'ÿ' => 'y', '?' => 'R', '?' => '?',
);
// haal met bovenstaande table de rare letters weg
$string = strtr($string, $table);
// alles naar kleine letters
$string = strtolower($string);
// wat we nu nog aantreffen wat niet in a-z/0-9 past wordt een -
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
// aan begin en einde geen - graag
$string = trim($string, '-');
// geef antwoord terug
return $string;
} ?>
function remove_accents($string)
{
$table = array(
'Š' => 'S', 'š' => 's', 'Ð' => 'Dj', 'ð' => 'dj', 'Ž' => 'Z', 'ž' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'À' => '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', 'Þ' => 'B', 'ß' => 'Ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e',
'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o',
'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b',
'ÿ' => 'y', '?' => 'R', '?' => '?',
);
// haal met bovenstaande table de rare letters weg
$string = strtr($string, $table);
// alles naar kleine letters
$string = strtolower($string);
// wat we nu nog aantreffen wat niet in a-z/0-9 past wordt een -
$string = preg_replace('#[^a-z0-9]+#', '-', $string);
// aan begin en einde geen - graag
$string = trim($string, '-');
// geef antwoord terug
return $string;
} ?>
Bedankt. Dit had ik inderdaad zo begrepen, maar zo opgesomd maakt het inderdaad wel zo overzichtelijk. :)
Hoe zou de bovenstaande functie worden verwerkt in onderstaande code?
Deze is nog niet af, correct? Want het enige wat die deed was de accenten te vervangen door de varianten zonder accentgebruik.
Ik heb er daarna mee gespeeld door er strtolower () in te verwerken, en dat pikte hij op. Wat is de complete code, met de gehele bovenstaande functie erin verwerkt - zodat die volledig en correct wordt opgeroepen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if($page->type=='page'){
$page->url = remove_accents($page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
$page->url = remove_accents($page->title).".php";
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
Toevoeging op 08/01/2014 16:54:42:
Negeer m'n laatste bericht, hij pakt 'm! Superbedankt!!!
Toevoeging op 08/01/2014 18:21:10:
Hij pakt 'm! Superbedankt!!!
Toevoeging op 08/01/2014 18:32:00:
Trouwens, nog een allerlaatste vraag.
Ik merk dat mijn subpagina's een foutmelding krijgen omdat ik zelf een slashteken heb aangebracht in de onderstaande code "/".$page->url;. De originele code was met een underscore, en ook wanneer ik 'm aanpas naar een streepje "-", werkt die gewoon. Is er een andere code dat een forward slash aanduidt?
Gewenste opbouw:
http://m.mijnwebsite.com/por-que-manana/pagina2
Huidige code
Code (php)
1
2
3
4
2
3
4
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."/".$page->url;
}
Met underscore werkt hij wel.
Code (php)
1
2
3
4
2
3
4
if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."_".$page->url;
}
$l = getParentById($page->parent,$pages);
$page->url = remove_accents($l->title)."_".$page->url;
}
Gewijzigd op 08/01/2014 16:39:33 door James de Graaf
$string = preg_replace('#[^a-z0-9/]+#', '-', $string);
Ivo P op 08/01/2014 20:27:21:
dan moet je in onderstaande regel de / toevoegen
$string = preg_replace('#[^a-z0-9/]+#', '-', $string);
$string = preg_replace('#[^a-z0-9/]+#', '-', $string);
Klinkt logisch inderdaad, maar geen verandering. Nog steeds een error melding.
Functie
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function remove_accents($string)
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
$string = strtr($string, $table);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9/]+#', '-', $string);
$string = trim($string, '-');
return $string;
}
{
$table = array(
'' => 'S', '' => 's', '' => 'Dj', '' => 'dj', '' => 'Z', '' => 'z', '?' => 'C', '?' => 'c', '?' => 'C', '?' => 'c',
'' => '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', '' => 'B', '' => 'Ss',
'' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'a', '' => 'c', '' => 'e', '' => 'e',
'' => 'e', '' => 'e', '' => 'i', '' => 'i', '' => 'i', '' => 'i', '' => 'o', '' => 'n', '' => 'o', '' => 'o',
'' => 'o', '' => 'o', '' => 'o', '' => 'o', '' => 'u', '' => 'u', '' => 'u', '' => 'y', '' => 'y', '' => 'b',
'' => 'y', '?' => 'R', '?' => '?',
);
$string = strtr($string, $table);
$string = strtolower($string);
$string = preg_replace('#[^a-z0-9/]+#', '-', $string);
$string = trim($string, '-');
return $string;
}
Code
Welke foutmelding?
Ivo P op 09/01/2014 07:07:48:
Welke foutmelding?
500 Internal server error. Alleen bij het laden van de subpagina in de browser.
Geen problemen bij creatie pagina's.
Op basis van voorbeeldlink: m.mijnwebsite.com/pagina1/subpagina1
Geen problemen bij laden: m.mijnwebsite.com, noch m.mijnwebsite.com/pagina1
Alleen bij m.mijnwebsite.com/pagina1/subpagina1
Bij gebruik "-" of "_" ook geen problemen.
Wat doet site.nl/pagina1/pagina2
dus zonder aangepaste tekens
Is er een rewriterule actief die nu over z'n nek gaat?
Ivo P op 09/01/2014 10:26:40:
maar heeft dat met de seo vriendelijke url te maken, of gewoon met het feit dat er een 2e "map" in de url staat.
Wat doet site.nl/pagina1/pagina2
dus zonder aangepaste tekens
Is er een rewriterule actief die nu over z'n nek gaat?
Wat doet site.nl/pagina1/pagina2
dus zonder aangepaste tekens
Is er een rewriterule actief die nu over z'n nek gaat?
Zie dat het inderdaad losstaat van de SEO vriendelijke URL. In de originele vorm bij aanpassing naar "/" geeft het dezelfde foutmelding.
Is dit gemakkelijk te verhelpen? Aangezien bij aanpassing naar "-" er geen problemen gelden, terwijl dit ook afwijkt van de originele "_"