SEO vriendelijke URL's: Latijnse letters, lowercase

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

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 »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Front-end Developer Angular

Dit ga je doen Jouw taken als Front End Developer bestaan uit: Het ontwikkelen van maatwerkoplossingen voor klanten; Het meedenken over nieuwe tools en technieken; Het begeleiden van junioren; Het meewerken aan diverse projecten; Het meedenken in UX/UI design. Hier ga je werken Als Front-End Developer ga je in een Scrum team aan de slag met de nieuwste digitale technologieën om klanten en overheden over de hele wereld te ondersteunen met het ondersteunen van hun software, veelal op het gebied van watermanagement en infra. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

PHP developer

Functie Voor een opdrachtgever in omgeving Leiden zijn wij op zoek naar een PHP developer die affiniteit heeft met C++. Ben jij reeds afgestudeerd of heb je al een paar jaar ervaring? Lees snel verder en kijk of dit iets voor jou is! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. 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

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Roosendaal, ontwikkel je als PHP Developer niet alleen webapplicaties, maar ben je verder ook gefocust op het continu inspelen op nieuwe trends en ontwikkelingen m.b.t software development. Naast het bouwen van webapplicaties, ontwikkelen zij ook webshops en websites voor gave opdrachtgevers! Wat ga je doen? Het schrijven van schone en efficiënte codes volgens het Symfony framework; Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het Symfony framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de

Bekijk vacature »

.NET Developer Shared Driving

Bedrijfsomschrijving Onze klant richt zich op het toegankelijker maken van steden, een fantastisch mooi streven. Hoe ze dat doen? Met eigen ontwikkelde software, waarmee vervoersmiddelen gedeeld kunnen worden. Deze inspirerende werkgever maakt een maatschappelijke impact en dat doen ze nu al zo'n 25 jaar! Het bedrijf is gevestigd in het centrum van Rotterdam en kent ongeveer zo'n 90 medewerkers. Het personeel is lekker gewoon gebleven! Iedereen kleedt zich zoals hij of zij dat zou willen en de sfeer is er erg fijn. Een leuke werkgever om voor te werken, en bovendien zijn er voor jou als Software Developer veel mooie

Bekijk vacature »

Embedded Software Developer Games

Functie omschrijving Heb jij affiniteit met hardware en wil jij kleuren binnen een Qt framework? Spreek jij de talen C en of C ++? Dan ben ik wellicht opzoek naar jou! Voor een super gave opdrachtgever in omgeving Delft is er namelijk plek voor een nieuwe kracht! Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke game industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen en buitenland? Je zult in een team, samen met vier ontwikkelaars, de mooiste

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

24/11/2024 07:32:26
 
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.