SEO vriendelijke URL's: Latijnse letters, lowercase

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Low Code Developer - Consultant

Functie omschrijving Wil jij fungeren als een spin in het web en samenwerken met klanten? Voor een leuke en interessante opdrachtgever in omgeving Leiden zijn wij op zoek naar een Low Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten en het leiden van projecten. Ben jij toe aan een nieuwe uitdaging en heb jij verstand van datamodellering en NO CODE Platformen? Lees dan snel verder! Bij deze rol horen de volgende werkzaamheden: Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform,

Bekijk vacature »

PHP Developer Symfony

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail. Hier ga je werken Als PHP Developer kom je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development teams welke ieder verantwoordelijk zijn voor hun 'eigen' klanten. Jouw team bestaat uit 6 backend

Bekijk vacature »

Junior PHP Developer

Functieomschrijving Junior PHP Developer gezocht! Voor een opdrachtgever in de regio Gelderland zijn wij op zoek naar een Junior PHP Developer die onderdeel gaat worden van het ontwikkelingsteam van deze organisatie. In deze functie ga jij aan de slag met het schrijven van software voor de aansturing van en het managen van windparken en bijbehorende onderdelen. Hiernaast ga jij je bezighouden met het ontwikkelen, testen en onderhouden van diverse webapplicaties. Het team waarin je komt te werken bestaat uit 3 developers, hierdoor krijg je veel verantwoordelijkheid en de kans om jezelf verder te ontwikkelen. Er wordt echter wel van je

Bekijk vacature »

Medior Java developer (fullstack)

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 »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Junior/Medior Front-end developer

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

.NET developer

Functie Als .NET developer wordt jij onderdeel van ons ICT team. In dit multidisciplinaire team ben jij samen met onze senior .NET ontwikkelaar en medior .NET ontwikkelaar verantwoordelijk voor ons ERP systeem. In dit systeem (Navision) ga jij leren ontwikkelen. Wij bieden jou dan ook een gedegen opleiding aan, samen met de ondersteuning van onze Senior .NET developer. Daarnaast ga jij aan de slag met ons portaal geschreven in Sharepoint. Verder ben jij verantwoordelijk voor EDI verkeer en het ontwikkelen binnen het ERP systeem en andere toepassingen en rapportages. Van jou wordt verwacht dat jij het proces goed leert kennen

Bekijk vacature »

.NET developer WO niveau voor predictive software

Bedrijfsomschrijving Dit bedrijf uit Den Bosch is om precies te zijn 15 medewerkers groot en ze ontwikkelen (predicitve) planning software. Dit doen zij voor allerlei mooie en bekende organisaties (bierbrouwerijen, gemeentes, oliemaatschappijen en diverse multinationals). Wegens meer en grotere vraag vanuit de klanten komen er nu posities vrij voor onder andere een .NET developer. Het bedrijf is goed met openbaar vervoer te bereiken. Functieomschrijving Je komt hier te werken in een team van 3 .NET developers en bent betrokken bij het gehele ontwikkelproces. Dus van idee naar ontwerp en van ontwikkeling tot testen en implementatie. Bij voorkeur ben je niet

Bekijk vacature »

Full stack developer

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 (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 »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

C#.NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie; Het oplossen van bugs en incidenten. Hier ga je werken Als C#.NET Developer binnen deze organisatie kan jij het verschil maken. Zij werken momenteel nog met programmatuur die is ontwikkeld in C++. Hiervan gaan zij afscheid nemen zodra alle nieuwe software in C#.NET geschreven is. Een grootschalig en langdurig project. Voor hen is deze software van

Bekijk vacature »

Senior Fullstack developer wanted! (C#, Java, Angu

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

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

16/05/2024 02:01:03
 
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.