SEO vriendelijke URL's: Latijnse letters, lowercase

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end developer (Angular)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

Bekijk vacature »

Webshop beheerder / Fullstack developer

Functie omschrijving Wij zijn op zoek naar een full stack developer die zich bezig gaat houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Lees dan snel verder! Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »

Senior Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

Software Developer C# - Deventer

Software Developer C# – Deventer Bijdragen aan de toekomst van het onderwijs! Ben jij op zoek naar een dynamische omgeving waar vol enthousiasme wordt gewerkt aan software voor interactieve dashboard- en analysetoepassingen ter verbetering van het onderwijs? Dan zijn wij het bedrijf voor jou! TIG is een bedrijf met een informele en ondernemende werksfeer, waarbij goede ideeën snel leiden tot concrete acties. Wij zijn een software ontwikkelorganisatie en focussen ons op het ontwikkelen en implementeren van oplossingen voor het leveren van managementinformatie, datavisualisatie en analyses voor het onderwijs. Met onze dashboard- en analyseoplossingen zetten scholen gegevens om naar betekenisvolle informatie.

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

PHP developer (Laravel, Docker, Gitlab-CI)

Functie Het IT-team bestaat momenteel uit 4 ontwikkelaars. Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten 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. Een groot deel van de systemen is gebouwd met behulp van het Laravel framework en PHP (minimaal 7.2), Docker voor lokaab gebruik en Gitlab-CI voor het deployen

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

29/04/2024 10:47:10
 
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.