SEO vriendelijke URL's: Latijnse letters, lowercase

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Javascript developer

Functie Het platform is gebouwd in een moderne JavaScript stack, die gebruikt maakt van:  React.js  Redux  TypeScript  Node.js  Google Cloud functions (node.js)  Semantic UI Alle code wordt getest en beoordeeld door collega developers. De continuous integration pipeline maakt het mogelijk om elke dag waarde te leveren aan hun klanten. Het ontwikkelproces is pragmatisch en gebaseerd op Scrum. Wat je zult doen: Ten eerste kun je nadrukkelijk jouw eigen stempel drukken op de technologie, het product en de cultuur van het bedrijf. Je bent bezig met het uitwerken van de architectuur van nieuwe functionaliteiten op

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

Senior .NET developer

Functie Als Senior .NET ontwikkelaar ga jij aan de slag in ons Research & development team. Ons team bestaat uit 17 collega’s! Wij zijn momenteel druk bezig met het opzetten van een geheel nieuwe architectuur voor een nieuw product. Hierbij maken wij o.a. gebruik van VS2022 en .NET 6.0. Jouw functie is dan ook voornamelijk backend georiënteerd bij ons. Aangezien wij meetapparatuur ontwikkelen voor de chemische industrie is het ook erg belangrijk om kwalitatief hoogwaardige software te ontwikkelen voor de besturing hiervan. Verder ben jij verantwoordelijk voor het designen, implementeren en testen van nieuwe features. Ook zorg jij voor toekomstbestendige

Bekijk vacature »

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 »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

Lasrobot Programmeur

Over de functie Off-line programma’s maken die het beste resultaat bij de lasrobot mogelijk maken De programma’s met behulp van teach verder optimaliseren Proactief meedenken over oplossingen en over de juiste invulling van lasmallen Het lasrobotproces zoveel mogelijk optimaliseren Over het bedrijf Onze opdrachtgever is gespecialiseerd in de engineering, productie en assemblage van samengestelde plaatwerkproducten en monodelen uit metaal. Onze klant werkt samen met het team aan de mooiste producten van de toekomst. Binnen dit bedrijf staat een sterk team van specialisten op het gebied van industrial design, mechanical engineering, in-house prototyping en all-round projectmanagement. Met daarbij uiteenlopende kennis in

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

C# Developer

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Door middel van ASP.NET, MVC Framework en C# ga je webshops, websites en webapplicaties ontwikkelen. Je zorgt voor de optimalisatie van bestaande software en de automatisering van bedrijfsprocessen. Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Bedrijfsprofiel

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 »

Pagina: 1 2 volgende »

James de Graaf

James de Graaf

07/01/2014 11:48:02
Quote Anchor link
Dag allemaal!

Inmiddels ben ik al een paar dagen aan het knoeien met een stukje code waar ik maar niet uitkom.
Voor de meeste gevorderde PHP gebruikers een eitje, maar voor mij een beginner als mij een helse en frustrerende last.

Huidige situatie:
Mijn mobiele website URL's worden rommelig weergegeven wanneer sprake van:
- symbolen zoals ?!
- Latijnse karakters zoals: ñéâç.

Met andere woorden: een URL met een Spaanstalige titel zoals ¿Por qué mañana? wordt weergegeven als m.mijnwebsite.nl/-Por-qu--ma-ana-.php

Gewenste uitkomst:
- 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.
Oftewel: m.mijnwebsite.nl/por-que-manana.php

De originele code:
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;


De volgende code lijkt hier geschikt voor: http://stackoverflow.com/a/4054740/3158398, echter gecombineerd met mijn data werkt het niet zoals het zou moeten. Bij gebruik van speciale Latijnse letters, worden mijn URL's omgevormd tot http://m.mywebsite.com/.php, oftewel leeg. Daarnaast kan ik slechts hooguit één pagina aanmaken in geval van Latijnse karakters. Bij het proberen aan te maken van meer pagina's stuit ik op de melding: "Paginatitel bestaat al, kies een andere titel". Dit lijkt te maken te hebben met het eerstvolgende stukje code dat na de gebruikte code komt. Om deze reden heb ik deze PError code ook bijgevoerd hieronder:

De gecombineerde codes:
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
$page->type = sprintf("%s",Utilities::scrub($_POST['type']));
$page->url = sprintf("%s",Utilities::scrub($_POST['url']));

if($page->type=='page'){
$page->url = friendlyUrl($page->title).".php";

if($page->parent > 1){
$l = getParentById($page->parent,$pages);
$page->url = friendlyUrl($l->title)."/".$page->url;
}
    //print_r($page);
    //exit;

    if((!$page->id)&&(file_exists("../".$page->url))){
            PError("Paginatitel bestaat al. Kies een andere titel.");
            exit();
            }


De functie zelf:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
function friendlyUrl ($str = '') {

$friendlyURL = htmlentities($str, ENT_COMPAT, "UTF-8", false);
$friendlyURL = preg_replace('/&([a-z]{1,2})   (?:acute|lig|grave|ring|tilde|uml|cedil|caron);/i','\1',$friendlyURL);
$friendlyURL = html_entity_decode($friendlyURL,ENT_COMPAT, "UTF-8");
$friendlyURL = preg_replace('/[^a-z0-9-]+/i', '-', $friendlyURL);
$friendlyURL = preg_replace('/-+/', '-', $friendlyURL);
$friendlyURL = trim($friendlyURL, '-');
$friendlyURL = strtolower($friendlyURL);
return $friendlyURL;
}


Kan iemand me hierbij helpen? Volgens mij is het meeste al gedaan, maar mis ik net de finishing touch. Ik zou het bijzonder op prijs stellen, als beginner die volkomen vast zit. In ieder geval bedankt voor de moeite!

James.
Gewijzigd op 07/01/2014 11:51:09 door James de Graaf
 
PHP hulp

PHP hulp

27/05/2026 15:06:45
 
Ivo P

Ivo P

07/01/2014 11:56:49
Quote Anchor link
uit een oud script van mij:

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
<?php
class html
{
static 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);
  }
}

?>
 
Michael -

Michael -

07/01/2014 11:56:49
Quote Anchor link
In die link die je zelf aangeeft zie ik een functie die je mogelijk hierin kan gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function sanitize_text_for_urls( $str ) {
  return strtolower( strtr( preg_replace('/[^a-zA-Z0-9-\s]/u', '', iconv( 'UTF-8', 'ASCII//TRANSLIT', $str )), ' ', '-') );
}


// For example
// Électricité, plâterie   --->  electricite-platerie
// Structure & gros œuvre  --->  structure-gros-oeuvre
// Façade & peinture       --->  facade-peinture

?>
 
Ivo P

Ivo P

07/01/2014 11:57:59
Quote Anchor link
maar de iconv() is simpeler dan mijn script.
Zij het dat iconv() niet per se op elke server werkt.
 
Erwin H

Erwin H

07/01/2014 12:13:26
Quote Anchor link
Wees dan alleen wel zo slim om eerst alles naar klein letters om te vormen en dan pas de speciale karakters te vervangen. Scheelt je de helft aan mogelijke karakters.....
 
James de Graaf

James de Graaf

07/01/2014 13:49:24
Quote Anchor link
Bedankt heren voor de snelle reacties! Ik zal jouw tip meenemen Erwin H, bedankt!

Ik ben aan de slag gegaan met beide codes van Ivo P en Michael-
Helaas werkt het nog steeds niet. De melding "Paginatitel bestaat al" is gelukkig niet meer aan de orde.
Echter, worden Latijnse karakters nog steeds vervangen door een streepje "-"
.

Mijn code ziet er, voor het gemak vanwege de lengte van de laatstgenoemde code door Michael-, nu als volgt uit:
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
    if(!$page->title){
        PError("Vul een titel in.");
        }
    $page->type = sprintf("%s",Utilities::scrub($_POST['type']));
    $page->url = sprintf("%s",Utilities::scrub($_POST['url']));
 
  if($page->type=='page'){
    $page->url = sanitize_text_for_urls($page->title).".php";
 
  if($page->parent > 1){
    $l = getParentById($page->parent,$pages);
    $page->url = sanitize_text_for_urls($l->title)."/".$page->url;
  }

    if((!$page->id)&&(file_exists("../".$page->url))){
        PError("Paginatitel bestaat al. Kies een andere titel.");
        exit();
        }
    }


De functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
function sanitize_text_for_urls( $str )
{
  return strtolower( strtr( preg_replace('/[^a-zA-Z0-9-\s]/u', '', iconv( 'UTF-8', 'ASCII//TRANSLIT', $str )), ' ', '-') );
}


Positie van deze functie: na afsluiting van een voorafgaande functie en voor (mocht dit er toe doen):

class Squeeze
{
public $theme;
public $offer;
public $call;
public $find;
public $pnav;
public $lnav;
public $active;
}

etc. etc.
Gewijzigd op 07/01/2014 13:51:20 door James de Graaf
 
Ivo P

Ivo P

07/01/2014 14:04:10
Quote Anchor link
doe dat eens stap voor stap:

function sanitize_text_for_urls( $str )
{
return strtolower( strtr( preg_replace('/[^a-zA-Z0-9-\s]/u', '', iconv( 'UTF-8', 'ASCII//TRANSLIT', $str )), ' ', '-') );
}

Maak deze functie eerst eens als

function sanitize_text_for_urls( $str )
{
return iconv( 'UTF-8', 'ASCII//TRANSLIT', $str );
}

en breid dat daarna steeds verder uit
 
James de Graaf

James de Graaf

07/01/2014 14:09:36
Quote Anchor link
Dank je Ivo P! Lees overigens net pas dat je had aangegeven de iconv functie niet op elke server werkt.
Als we het over de door jou opgezette functie zouden hebben, wat zou de reden kunnen zijn dat hij 'm ook niet pakt?

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
<?php
class html
{
static 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);
  }
}

?>


Code:
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
    $page->type = sprintf("%s",Utilities::scrub($_POST['type']));
    $page->url = sprintf("%s",Utilities::scrub($_POST['url']));
 
  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;
  }

    if((!$page->id)&&(file_exists("../".$page->url))){
        PError("Paginatitel bestaat al. Kies een andere titel.");
        exit();
        }
    }
 
Ivo P

Ivo P

07/01/2014 14:57:26
Quote Anchor link
$page->url = html::remove_accents($page->title).".php";

of er een losse functie van maken en " class html { " + de laatste "}" verwijderen, net als het woordje static.
(bij mij maakt het deel uit van een groter geheel dan alleen deze functie)
 
James de Graaf

James de Graaf

07/01/2014 15:58:22
Quote Anchor link
Ivo P op 07/01/2014 14:57:26:
$page->url = html::remove_accents($page->title).".php";

of er een losse functie van maken en " class html { " + de laatste "}" verwijderen, net als het woordje static.
(bij mij maakt het deel uit van een groter geheel dan alleen deze functie)


Bijna!

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
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);
  }


Waar een vraagteken '?' inderdaad een 'r' wordt, is dat bij de (meeste) andere letters niet het geval. 'ñ' blijft bijvoorbeeld 'ñ'

De functie dus veranderd. De code heb ik onveranderd gebruikt.
Bij de HTML versie werkt het overigens niet..
Gewijzigd op 07/01/2014 16:05:56 door James de Graaf
 
Ivo P

Ivo P

07/01/2014 16:16:38
Quote Anchor link
Mogelijk zit er een tekenset probleem hierboven:

In mijn bronbestand stond er een R en een r met een accent zoals op é

En dat probleem blijft ook bestaan voor jouw script:
In welke tekenset krijg je jij je teksten binnen? Als dat ISO8859-x is, dan moet je je script met hardcoded deze rare letters ook in die tekenset opslaan.
Doe je dat niet en gebruik je bijvoorbeeld Unicode, dan is de ñ uit jouw invoer inderdaad niet gelijk aan de ñ in het script.
 
James de Graaf

James de Graaf

07/01/2014 16:32:50
Quote Anchor link
Ivo P op 07/01/2014 16:16:38:
Mogelijk zit er een tekenset probleem hierboven:

In mijn bronbestand stond er een R en een r met een accent zoals op é

En dat probleem blijft ook bestaan voor jouw script:
In welke tekenset krijg je jij je teksten binnen? Als dat ISO8859-x is, dan moet je je script met hardcoded deze rare letters ook in die tekenset opslaan.
Doe je dat niet en gebruik je bijvoorbeeld Unicode, dan is de ñ uit jouw invoer inderdaad niet gelijk aan de ñ in het script.


Mijn charset=iso-8859-1. Dan zou die het moeten doen geef je aan? Of bedoel je met "dan moet je je script met hardcoded deze rare letters ook in die tekenset opslaan." dat ik nog een andere stap moet nemen zodat de letters worden overgenomen?
 
Ivo P

Ivo P

07/01/2014 17:01:00
Quote Anchor link
in je editor moet je het script ook opslaan met die tekenset.
 
James de Graaf

James de Graaf

07/01/2014 17:26:42
Quote Anchor link
Ivo P op 07/01/2014 17:01:00:
in je editor moet je het script ook opslaan met die tekenset.


Super, gelukt! Ik zit nu bijna op m'n ideale URL structuur.
Zoals ik aangaf, en jij/jullie hebben gemerkt, heb ik geen ervaring met PHP.
Om deze letters te transformeren naar lower case, weet ik dat kan op basis van "strtolower". Hoe verwerk ik deze optie in jouw functie?

Het allermooiste zou zijn om vraagtekens en uitroeptekens te verwijderen uit de url structuur, zodat de paginanaam ¿Por qué mañana? uitgebeeld wordt in http://m.mijnwebsite.nl/por-que-manana.php. Maar goed, het allerlaatste puntje durf ik bijna niet meer te vragen na al jouw/jullie hulp. Tenzij dit natuurlijk vrij gemakkelijk te verwerken is.

Super bedankt in ieder geval! :-)
Gewijzigd op 07/01/2014 17:27:35 door James de Graaf
 
Ivo P

Ivo P

07/01/2014 17:52:22
Quote Anchor link
als je er vanuit gaat dat na aanroep van die functie alleen nog a-z/0-9 in je tekst zit en de rest leestekens zijn:

iets als:

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

check even of je dan niet 2 -- achterelkaar kunt overhouden.
 
James de Graaf

James de Graaf

07/01/2014 18:22:36
Quote Anchor link
Ivo P op 07/01/2014 17:52:22:
als je er vanuit gaat dat na aanroep van die functie alleen nog a-z/0-9 in je tekst zit en de rest leestekens zijn:

iets als:

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

check even of je dan niet 2 -- achterelkaar kunt overhouden.
[/quote

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
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',
    );
    $string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
    return strtr($string, $table);
  }


Zoiets? Waarschijnlijk niet :). Heft dat niet de oplossing voor speciale tekens op?
 
Ivo P

Ivo P

07/01/2014 18:27:15
Quote Anchor link
Nee, andersom.
Eerst vertalen van de letters en dan het restant er uit.

En ik voorspel vast een volgende stap: dubbele - en begin of eind - er vanaf/
 
James de Graaf

James de Graaf

07/01/2014 18:56:46
Quote Anchor link
Nope. Nog steeds uppercase. Spaties worden vervangen door spaties i.p.v. een dash (-). Verschillende dingen geprobeerd, waaronder:

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
function remove_accents($string)
  {
    $string = preg_replace('#[^a-z0-9]+#', '-', strtolower($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);
  }


Ook geprobeerd met (1) $string = preg_replace('#[^a-z0-9] strtolower($string));
of (2) string strtolower ( string $str )

etc. etc.
Gewijzigd op 07/01/2014 18:58:58 door James de Graaf
 
Ivo P

Ivo P

07/01/2014 19:23:33
Quote Anchor link
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.
 
James de Graaf

James de Graaf

07/01/2014 19:35:07
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
function remove_accents($string)
  {
    
    $string = remove_accents($string);
    $string = preg_replace('#[^a-z0-9]+#', '-', strtolower($string));
    $string = trim($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);
  }


Pakt 'ie niet. Vergeef me voor me onbenulligheid, maar zoals je begrijpt had ik tot 4 dagen geleden nog nooit met PHP gewerkt. Wat is de totale juiste code, gecombineerd met jouw code? Dan ben ik er geloof ik eindelijk uit. :)
Gewijzigd op 07/01/2014 19:35:44 door James de Graaf
 
Ivo P

Ivo P

07/01/2014 19:36:06
Quote Anchor link
Afbeelding
 

Pagina: 1 2 volgende »



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.