SEO vriendelijke URL's: Latijnse letters, lowercase

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Als developer bouw je in DevOps teams aan enterprise applicaties, nieuwe IOT, Chatbots of AI oplossingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren in dit vakgebied. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij vorig jaar Microsoft Partner of the year geworden.

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer begint jouw dag na een bak koffie met een stand up. De vorderingen worden tijdens de stand up besproken en de doelen worden opgesteld waar jullie als team in de volgende sprint naartoe gaan werken. Onze backend is geschreven in .NET Core en onze Front-end in Angular. Bij ons ga jij dan ook Fullstack aan de slag. Jij wordt hier opgeleid om zelfstandig te kunnen programmeren en applicaties te kunnen implementeren. Er wordt op projectbasis gewerkt, dit bied leuke uitdagingen omdat elke klant een andere visie heeft over de applicatie die wij maken. Je gaat

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Pagina: « vorige 1 2

Wouter J

Wouter J

07/01/2014 19:37:31
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$string
= '¿espanñol? ¡olé!';

// zorg dat deze niet is ingesteld op POSIX of C, anders wordt alles een vraagteken
setlocale(LC_CTYPE, 'nl_NL');

echo iconv('UTF-8', 'ASCII//TRANSLIT', $string);
//> ?espannol? ?ole!
?>

Vervolgens kun je characters als ? en ! eruit filteren en een dash voor elke spatie invoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'
?>
Gewijzigd op 07/01/2014 19:44:38 door Wouter J
 
PHP hulp

PHP hulp

15/05/2024 20:02:49
 
James de Graaf

James de Graaf

07/01/2014 20:01:02
Quote Anchor link
Ivo P op 07/01/2014 19:23:33:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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, '-');
?>




Toevoeging op 07/01/2014 19:31:08:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
  ?>


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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$string
= '¿espanñol? ¡olé!';

// zorg dat deze niet is ingesteld op POSIX of C, anders wordt alles een vraagteken
setlocale(LC_CTYPE, 'nl_NL');

echo iconv('UTF-8', 'ASCII//TRANSLIT', $string);
//> ?espannol? ?ole!
?>

Vervolgens kun je characters als ? en ! eruit filteren en een dash voor elke spatie invoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'
?>



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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
  }


Mijn eigen originele code was in eerste instantie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
 
Ivo P

Ivo P

07/01/2014 21:06:18
Quote Anchor link
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?
 
James de Graaf

James de Graaf

08/01/2014 10:41:12
Quote Anchor link
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?


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)
PHP script in nieuw venster Selecteer het PHP script
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
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;
Gewijzigd op 08/01/2014 10:43:53 door James de Graaf
 
Ivo P

Ivo P

08/01/2014 10:43:51
Quote Anchor link
ah ik zie het al: ik heb niet met hoofdletters getest:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
  $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
 
James de Graaf

James de Graaf

08/01/2014 11:02:12
Quote Anchor link
Ivo P op 08/01/2014 10:43:51:
ah ik zie het al: ik heb niet met hoofdletters getest:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
  $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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
 
Ivo P

Ivo P

08/01/2014 11:21:26
Quote Anchor link
jij hebt het er over dat je ook nog een stuk url op je scherm ziet, maar dat staat niet in bovenstaande snippet.

Roep je bovenstaande code wel aan?
 
James de Graaf

James de Graaf

08/01/2014 11:27:25
Quote Anchor link
Ik zie nu in wat je bedoelt met de code aanroepen. Het eerste gedeelte is gelukt, lowercase. Nu worden alleen de spaties niet meer vervangen door streepjes "-"
Het laatste gedeelte, verwijderen van ¿?¡! nog niet. Hoe verwerk ik dit in de onderstaande, bijbegewerkte code?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
        }



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
Gewijzigd op 08/01/2014 14:11:41 door James de Graaf
 
Ivo P

Ivo P

08/01/2014 15:51:01
Quote Anchor link
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
 
James de Graaf

James de Graaf

08/01/2014 16:14:19
Quote Anchor link
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




Nee, helaas. Terug bij af.
1) Spaties i.p.v. "-"
2) Hoofdletters blijven hoofdletters.

Gewijzigde code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
        }


Gewijzigde functie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}


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)
PHP script in nieuw venster Selecteer het PHP script
1
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;


In deze code..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
        }


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
 
Ivo P

Ivo P

08/01/2014 16:19:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
}
?>
 
James de Graaf

James de Graaf

08/01/2014 16:37:59
Quote Anchor link
Ivo P op 08/01/2014 16:19:00:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
}
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
        }



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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if($page->parent > 1){
        $l = getParentById($page->parent,$pages);
        $page->url = remove_accents($l->title)."/".$page->url;
        }


Met underscore werkt hij wel.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if($page->parent > 1){
        $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
 
Ivo P

Ivo P

08/01/2014 20:27:21
Quote Anchor link
dan moet je in onderstaande regel de / toevoegen

$string = preg_replace('#[^a-z0-9/]+#', '-', $string);
 
James de Graaf

James de Graaf

08/01/2014 21:26:29
Quote Anchor link
Ivo P op 08/01/2014 20:27:21:
dan moet je in onderstaande regel de / toevoegen

$string = preg_replace('#[^a-z0-9/]+#', '-', $string);


Klinkt logisch inderdaad, maar geen verandering. Nog steeds een error melding.

Functie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}


Code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
    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;
        }
    //print_r($page);
    //exit;
 
Ivo P

Ivo P

09/01/2014 07:07:48
Quote Anchor link
Welke foutmelding?
 
James de Graaf

James de Graaf

09/01/2014 09:57:56
Quote Anchor link
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.
 
Ivo P

Ivo P

09/01/2014 10:26:40
Quote Anchor link
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?
 
James de Graaf

James de Graaf

09/01/2014 10:41:38
Quote Anchor link
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?


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 "_"
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.