Input filteren vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

.NET Developer

Functieomschrijving Ben jij klaar voor de volgende stap in jouw carrière? Kom werken bij dit kleine softwarebureau en werk aan de gaafste maatwerk projecten. Je komt te werken in een klein development team en werk nauw samen met elkaar, om maatwerk software te leveren en bij te dragen aan bedrijfsautomatiseringen. Je gaat werken met de Microsoft stack en technieken als .NET, C#, Entity, MVC, SQL server. In de functie krijg je veel vrijheid om zelf beslissingen te nemen en je hebt impact op de bedrijfsprocessen. Bedrijfsprofiel Dit familiebedrijf bestaat al ruim 20 jaar. Zij hebben een vast netwerk van klanten,

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

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 »

Lead javascript developer Node.js React

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

(Junior) PHP Ontwikkelaar bij een retail bedrijf i

Bedrijfsomschrijving Ben jij een ervaren PHP ontwikkelaar met een passie voor retail en ICT? Wil jij werken in een team dat zich bezighoudt met het ontwikkelen van uitdagende applicaties voor een groot retailbedrijf in Delft? Dan zijn zij op zoek naar jou! Functieomschrijving Als PHP Ontwikkelaar werk je in een team aan de ontwikkeling van applicaties die door de gehele organisatie worden gebruikt. Je bent verantwoordelijk voor het ontwikkelen, testen en implementeren van deze applicaties. Je werkt hierbij nauw samen met andere ontwikkelaars, projectmanagers en stakeholders binnen de organisatie. Je taken bestaan onder andere uit: Ontwikkelen van nieuwe functionaliteiten en

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »

.NET Developer

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

Bekijk vacature »

Java Developer

Dit ga je doen Het ontwikkelen van nieuwe software; Het ombouwen van de bestaande software; Zowel back- als front-end software ontwikkelen; Het testen; Het implementeren van de volledig geteste software; Het verzorgen van nazorg en het oplossen van bugs; Het opstellen en bijhouden van procesdocumentatie; Je draagt bij aan het agile/scrum processen van het team. Hier ga je werken Ongetwijfeld heb je een of meerdere producten van deze organisatie in huis. Het proces erachter, daar ben je ongetwijfeld minder bekend mee. Deze opdracht geeft je de kans meer over dit proces te weten te komen en een mooie bijdrage te

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Traineeship Full Stack Java developer

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

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »
Furio Scripting

Furio Scripting

07/11/2017 23:05:48
Quote Anchor link
Beste forumleden,

Ik heb een review website waar men beoordelingen kan plaatsen voor websites maar ook voor bedrijven (restaurants, verenigingen, sportscholen etc etc)....

Nu heb ik 1 zoekveld waar men dus op van alles kan zoeken.

Hoe zorg ik ervoor dat ik de originele naam goed op kan slaan, bijv: Bord'Eau (Hotel De L'Europe Amsterdam) of The Good Companion | Fish & Chips.

In deze zoekopdracht zitten er qoutes, spaties en & tekens tussen. Dit wil ik ook zo opslaan maar in de url moeten al die vreemde karakters vervangen worden door een -(dash).

Mijn vraag is dus hoe kan ik deze speciale karakters opslaan in mijn database en vervolgens correct weergeven in de url.

Voorbeeld website welke dit goed toepast is: https://www.iens.nl/restaurant+amsterdam In de resultaten staat de naam zoals het hoort en als je op een resaurant klikt zie je in de url alles netjes gevalideerd.

Ik hoop dat iemand mij dit kan uitleggen.

Mvg
 
PHP hulp

PHP hulp

12/01/2025 11:45:22
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/11/2017 23:36:54
Quote Anchor link
Jij wilt slugs gebruiken. Het is best een hele stap als je nog niet met een framework en dus met controllers werkt.

Anyway als eerste moet je je .htaccess bestand zo instellen dat alle requests die niet bestaan en normaal direct een 404 Not Found foutmelding zouden geven nu naar één en dezelfde php script wijzen. Meestal wordt hier gewoon index.php voor gebruikt.

Stel je hebt twee php bestanden in je root, namelijk index.php en contact.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
( ---> betekent "gaat naar" )

https://www.iens.nl/                      ---> index.php
https://www.iens.nl/index.php             ---> index.php [bestaat werkelijk]
https://www.iens.nl/restaurant+amsterdam  ---> index.php
https://www.iens.nl/cafe+bolle+jan        ---> index.php
https://www.iens.nl/contact.php           ---> contact.php [bestaat werkelijk]


Als tweede moet je een functie hebben die een normale tekst met allerlei karakters omzet naar een slug.
Ik vertel je natuurlijk niet dat je hier een hele goede vindt :-)

Ten derde zul je moeten nadenken over het feit dat je moet voorkomen dat twee entiteiten dezelfde slug gaan gebruiken. Immers "côte" zal hetzelfde opleveren als "cote" als die door de slugifier gehaald wordt.

Om bovenstaande reden kies ik er altijd voor om een extra kolom in de database tabel aan te maken met de naam "slug" waarop ik een unique constraint loslaat zodat het onmogelijk wordt om er twee dezelfde slugs in te zetten.

Als laatste kun je in je index.php een routine maken die de slug uit de URL pulkt en dan aan de hand van de gevonden slug de bijbehorende gegevens uit de database tovert en ophoest.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM accommodations WHERE slug='restaurant+amsterdam'


Overigens kun je dubbele slugs ook toelaten als je tevens het ID in de URL zet. Dat zie je hier in PHPhulp ook, kijk maar in je URLbalk. Jouw topic heeft id 101752. dan zoek je dus gewoon op id ipv op slug

Toevoeging op 07/11/2017 23:37:44:

Overigens zou ik liggende streepjes gebruiken ( - ) in plaats van plus tekens ( + )
 
- Ariën  -
Beheerder

- Ariën -

07/11/2017 23:40:17
Quote Anchor link
Frank Nietbelangrijk op 07/11/2017 23:36:54:
Jij wilt slugs gebruiken. Het is best een hele stap als je nog niet met een framework en dus met controllers werkt.

Dat valt nog wel mee zonder framework, hoor. Ik heb het pas nog bij een site ingebouwd die geen framework had. ;-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/11/2017 23:47:32
Quote Anchor link
Ook stel jij als voorbeeld deze url: https://www.iens.nl/restaurant+amsterdam.

Overweeg om daar iets van te maken als https://www.iens.nl/accomodations/restaurant+amsterdam

Dan kun je namelijk nog zonder problemen een https://www.iens.nl/contact en een https://www.iens.nl/about maken.

Want anders kunnen er twee dingen gebeuren afhankelijk hoe je de zaak opzet.

1) er zal een dan naar een accommodation gezocht worden die 'contact' of 'about' heeft als slug en de contact en about pagina zullen daardoor onbereikbaar worden

2) Je script kijkt eerst of 'contact' en 'about' misschien voor iets anders dienen en gaat in dat geval wat anders doen dan een accommodatie zoeken. Dat werkt op zich wel maar heeft weer als nadeel dat als iemand een accommodatie aanmaakt in de database die "Contact" heet heel vertwijfeld zal kijken als hij daarna op de contact pagina uitkomt in plaats van op een pagina die zijn accommodatie laat zien ..

Hoop dat ik een klein beetje duidelijk ben geweest ;-)

Toevoeging op 07/11/2017 23:48:07:

- Ariën - op 07/11/2017 23:40:17:
Frank Nietbelangrijk op 07/11/2017 23:36:54:
Jij wilt slugs gebruiken. Het is best een hele stap als je nog niet met een framework en dus met controllers werkt.

Dat valt nog wel mee zonder framework, hoor. Ik heb het pas nog bij een site ingebouwd die geen framework had. ;-)


Dat kun je wel zeggen Ariën maar je zult dan toch wel een paar uitdagingen moeten aangaan zoals het schrijven van een soort van frontcontroller en het aanmaken van een .htaccess bestand.
Ik vindt het persoonlijk een beetje het verschil tussen een kast van de meubelzaak en plankjes en onderdelen halen bij de Gamma ;-) En laten we het erop houden dat je bij de meubelzaak een grotere kans hebt op een mooie degelijke kast netjes bij jou thuis afgeleverd
Gewijzigd op 07/11/2017 23:51:51 door Frank Nietbelangrijk
 
- Ariën  -
Beheerder

- Ariën -

08/11/2017 00:08:03
Quote Anchor link
Er zat sowieso al een Single-page-entry in gebouwd. En het werkt wel met soort-achtige controllers.
Een kwestie om daar te kijken of de slug bestaat, en zo niet deze toevoegen aan de URL met een location header.

Anyway, de class die ik erbij gebruik:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
class Slug {
    
    public function create($str, $options = array()) {
    // Make sure string is in UTF-8 and strip invalid UTF-8 characters
    $str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
    
    $defaults = array(
        'delimiter' => '-',
        'limit' => null,
        'lowercase' => true,
        'replacements' => array(),
        'transliterate' => false,
    );

    
    // Merge options
    $options = array_merge($defaults, $options);
    
    $char_map = array(
        // Latin
        'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
        'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
        'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', '?' => 'O',
        'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', '?' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
        'ß' => 'ss',
        'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
        'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
        'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', '?' => 'o',
        'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', '?' => 'u', 'ý' => 'y', 'þ' => 'th',
        'ÿ' => 'y',
        // Latin symbols
        '©' => '(c)', '®' => '(r)','€' => 'euro'
    );
    
    // Make custom replacements
    $str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
    
    // Transliterate characters to ASCII
    if ($options['transliterate']) {
        $str = str_replace(array_keys($char_map), $char_map, $str);
    }

    
    // Replace non-alphanumeric characters with our delimiter
    $str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
    
    // Remove duplicate delimiters
    $str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
    
    // Truncate slug to max. characters
    $str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
    
    // Remove delimiter from ends
    $str = trim($str, $options['delimiter']);
    
    return $options['lowercase'] ? mb_strtolower($str, 'UTF-8').'.html' : $str.'.html';
    }
}

?>
Gewijzigd op 08/11/2017 00:09:00 door - Ariën -
 
Rob Doemaarwat

Rob Doemaarwat

08/11/2017 08:10:17
Quote Anchor link
In plaats van die waslijst met vervangingen gebruik ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
str_replace(["'",'"'],'',iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$str));
Anders blijf je bezig met "uitzonderingen" toevoegen (maar dus niet zo'n mooie 'euro' vervanger ;-) ).

@Ariën: zoals je 'm hier geplakt hebt wordt het vraagteken ("?") door een aantal letters vervangen ("u" en "o", ook upper - maar effectief dus allemaal hoofdletter "O"). Is daar in de copy+paste/UTF8 iets mis gegaan?

De rest van m'n slugifier is ook een stuk simpeler:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$str = str_replace(["'",'"'],'',iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$str));
return strtolower(trim(preg_replace('/\\W+/',$delimiter,$str),$delimiter));
Gewijzigd op 08/11/2017 08:10:56 door Rob Doemaarwat
 
- Ariën  -
Beheerder

- Ariën -

08/11/2017 08:48:56
Quote Anchor link
Hm....
Die vraagtekens zitten ook in mijn code. Dus ergens is het mis gegaan in het begin :X

Thanks voor de 'heads up'.
 
Furio Scripting

Furio Scripting

08/11/2017 11:01:39
Quote Anchor link
Bedankt voor alle uitgebreide antwoorden!

Ik maak helaas geen gebruik van een framework en heb de controller zelf geschreven.

Om het voor mezelf makkelijk te houden heb ik besloten om de input altijd op dezelfde manier te valideren door middel van deze 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
<?php

function seo_friendly_url($string){
    $string = str_replace(array('[\', \']'), '', $string);
    $string = preg_replace('/\[.*\]/U', '', $string);
    $string = preg_replace('/&(amp;)?#?[a-z0-9]+;/i', '-', $string);
    $string = htmlentities($string, ENT_COMPAT, 'utf-8');
    $string = preg_replace('/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);/i', '\\1', $string );
    $string = preg_replace(array('/[^a-z0-9]/i', '/[-]+/') , '-', $string);
    return strtolower(trim($string, '-'));
}


?>


Als men dus op iets zoekt met vreemde tekens zoals & of () dan zetten we dit om in dashes en vervangen we de dashes met spaties als we het in de database opslaan, zo kan men er nog steeds goed op zoeken.

Wellicht is het toch mooier om nog een tabel te maken in de database met de echte originele naam waar men op zocht en daar aan de seo-url koppelen welke we dan in de url weergeven maar op de pagina zelf de originele naam...?
Gewijzigd op 08/11/2017 11:06:32 door Furio Scripting
 
Thomas van den Heuvel

Thomas van den Heuvel

08/11/2017 16:45:24
Quote Anchor link
Ik vind het wel grappig dat iedereen meteen begint te rennen met het geven van (technische) oplossingen, of liever gezegd implementaties. Zoals je zelf al vermoedde is het handig om de originele naam op te slaan, deze heb je toch nodig op de detailpagina van de instelling? Hoe hier verder een URL van gebrouwen wordt is iets wat in afzondering behandeld kan worden.

De slug kan worden gegenereerd op grond van de oorspronkelijke naam. En misschien is het ook handig dat je op de slug-kolom een index zet voor snelle lookup, volgens mij kwam ik dit niet tegen in de bovenstaande verhalen.

De uitdaging zit hem niet zozeer in het vinden van een slug-functie maar meer hoe je deze URLs indeelt. Dit zou je ook op plaatsnaam kunnen doen? En wat als een restaurant meerdere filialen heeft? Dan wil je die toch niet appie, appie-1, appie-2 et cetera noemen? Oftewel, hoe je dit indeelt hangt helemaal af van het soort data wat je probeert te organiseren. Denk daar eerst eens over na, implementatie is toch echt de laatste stap.

De functie hierboven (seo_friendly_url) werkt overigens met blacklists (niet toegestane karakterreeksen). Dit lijkt mij geen handige strategie.

Wat ik wel een beetje opmaak uit het verhaal van @Furio is dat nog niet echt heel uitgebreid is nagedacht over welke verschillende pagina's deze site gaat bevatten? Als je hier nou eerst eens wat schetsen van maakt hoe je dit schematisch indeelt, dan volgen hier volgens mij vanzelf de specificaties uit van welke data je nodig hebt en hoe je dit dan vervolgens (EDIT database-technisch) organiseert rolt er ook redelijk vanzelfsprekend uit. Begin dus eens met een functioneel ontwerp, los van technische oplossingen. Uit welke pagina's bestaat de site, hoe navigeer en zoek je hier doorheen et cetera.
Gewijzigd op 08/11/2017 16:55:22 door Thomas van den Heuvel
 
Furio Scripting

Furio Scripting

09/11/2017 00:07:20
Quote Anchor link
Beste Thomas,

Bedankt voor je input! Ik heb redelijk goed nagedacht hoe het platform eruit moet komen te zien.

Het platform moet gebruikt worden om voor ieder bedrijf,restaurant,website etc beoordelingen te kunnen verzamelen.

Gebruiker kan zelf op iets zoeken zoals: "Restaurant de beren".
Gebruiker kan via de google places api zoeken op een "establishment" (restaurants,verenigingen etccc).

Nu kijk ik nadat een gebruiker wat invoert of dit exact overeenkomt in mijn database, zo niet zoek op iets waar het op kan lijken. Bij geen resultaat slaan we zijn zoekopdracht op in de bedrijven tabel (bedrijfsnaam, seo_url).

De urls heb ik zo in gedachte:

website.nl/beoordelingen/seo_url (als er geen website bekend is die gekoppeld is aan dit bedrijf).
website.nl/beoordelingen/seo_url/websiteurl (als er tevens een website gekoppeld is aan het bedrijf).

Nu krijg ik vanuit de google api tevens categorieen mee zoals restaurant,slager,bakker etc... Dit sla ik ook op maar is niet altijd bekend.

In de toekomst als ik genoeg bedrijven heb waar de categorie van bekend is zal de url bijv gaan worden: website.nl/beoordelingen/restaurant/seo_url

Maar voor nu wil ik enkel de bedrijfsnaam,website in de url weergeven zodat als men googled op bedrijfsnaam of website naam mijn platform naar boven komt.

Ik had nog nooit gehoord van een slug maar dit heeft mij wel doen besluiten om dit als seo_url op te slaan en daarmee te werken.

Voor mijn gevoel is het in theorie prima opgezet en ben nu in de fase waarin ik dit allemaal werkend wil krijgen, met jullie adviezen gaat mij dit prima lukken denk ik.

Daarvoor wil ik iedereen bedanken en mochten er nog opmerkingen zijn om mijn aanpak te verbeteren dan lees ik dit heel graag!
 
Thomas van den Heuvel

Thomas van den Heuvel

09/11/2017 01:45:01
Quote Anchor link
Als het een beoordelingssite is is de directory /beoordelingen wellicht overbodig. Net zoiets als /php op deze site, dat zit al min of meer besloten in de domeinnaam. Korter lijkt mij beter.

Het idee om een website URL op te nemen... weet niet of dat nou zo handig is? Dat wordt dan /mcdonalds/www.mcdonalds.nl? Beetje dubbelop niet? Als je op een detailpagina van een bedrijf/restaurant komt kun je toch ook wel wat adresgegevens weergeven, met een Google mapje enzo, en routes / adresgegevens naar de verschillende filialen? Wanneer die pagina's geindexeerd gaan worden door zoekmachines kom je op den duur ook wel uit op de detailpagina.

Mogelijk wil je dat (filiaal) weer wel opnemen in de URL: /mcdonals/den-bosch. Of keer je dit om: eerst de plaatsnaam en dan een bedrijf, ongeacht de categorie (dat is dan enkel een filter in je zoekfunctionaliteit en een eigenschap van het filiaal): /den-bosch/mcdonalds. Of je doet beide, zodat je van grof naar fijn kunt: /restaurant/den-bosch/mcdonalds, of je wilt dit toch in eerste instantie organiseren op plaats: /den-bosch/restaurant/mcdonalds. Elke subdirectory beantwoordt dan al een vraag: WAAR is dit gesitueerd, WAT is de categorie, WAT is de naam van de instelling.

Dit is makkelijk bedacht en alle opties zijn eigenlijk wel logisch maar dit heeft een enorme impact op de organisatie van je pagina's en de opbouw van de URL en alles eromheen. Daarom is het belangrijk dat je hier veel tijd aan besteed en hier echt goed over nadenkt.

Quote:
In de toekomst als ik genoeg bedrijven heb waar de categorie van bekend is zal de url bijv gaan worden: website.nl/beoordelingen/restaurant/seo_url

Maar dan ben je ook je eerdere indexering kwijt. Het lijkt mij beter om alle informatie meteen op de goede plek te zetten? Of richt je URLs zo in dat dit "niet uitmaakt" waar deze staan. Hier bedoel ik mee: kijk naar dit forum, in de URL is ook niet verwerkt welk subforum het betreft maar dit is iets wat de interne navigatie van je site verder regelt. Dit houdt ook in dat als je dan een keer ontevreden bent over de indeling of hier naar aanleiding van voortschrijdend inzicht veranderingen in aan wilt brengen dat je niet met handen en voeten gebonden bent door de gekozen vorm van de URL. Je hoeft dan enkel de (interne) navigatielaag aan te passen zonder de "fysieke locatie" (lees: de URL) aan te passen. Je zou dus kunnen volstaan met /<locatie>/<naam bedrijf> en dat de interne navigatie dit verder categoriseert in restaurants, bedrijven et cetera.

Misschien is dat dan nog een puntje: denk na over welke categorieën / rubrieken je wilt hebben op je site? Of liever gezegd: uit welke dimensies (of kenmerken) zijn de (subdirectories) opgebouwd en welke waarden kunnen deze hebben.

Ook zou je kunnen nadenken over hoe mensen de site gaan gebruiken. Misschien gebruikt iemand bijvoorbeeld deze site wel om een goed vegetarisch restaurant in Den Bosch te vinden?
Gewijzigd op 09/11/2017 01:56:20 door Thomas van den Heuvel
 
Ward van der Put
Moderator

Ward van der Put

09/11/2017 11:49:20
Quote Anchor link
Thomas van den Heuvel op 09/11/2017 01:45:01:
Quote:
In de toekomst als ik genoeg bedrijven heb waar de categorie van bekend is zal de url bijv gaan worden: website.nl/beoordelingen/restaurant/seo_url

Maar dan ben je ook je eerdere indexering kwijt. Het lijkt mij beter om alle informatie meteen op de goede plek te zetten?

Dat kan wel, maar je moet daarvoor dan een 301 Moved Permanently inbouwen. Dat betekent dus dat je een systeem met een geheugen nodig hebt dat ook verouderde URL's blijft ondersteunen.

Lastig van rubriceren via URL's met attributen is dat veel 'entiteiten' in meer dan één rubriek passen omdat ze meer dan één attribuut hebben. Denk bijvoorbeeld aan een visrestaurant dat ook een goed gevulde vegetarische menukaart heeft.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/11/2017 17:25:44
Quote Anchor link
Ward van der Put op 09/11/2017 11:49:20:
Dat kan wel, maar je moet daarvoor dan een 301 Moved Permanently inbouwen. Dat betekent dus dat je een systeem met een geheugen nodig hebt dat ook verouderde URL's blijft ondersteunen.

Uiteraard kan dat, maar dat lijkt mij nogal omslachtig omdat je dan een hele hoop historie bij moet gaan houden. Het is makkelijk om iets moeilijk te maken en het is moeilijk om iets makkelijk te houden :).
 
Ward van der Put
Moderator

Ward van der Put

09/11/2017 17:33:26
Quote Anchor link
Verandering is de enige constante.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/11/2017 17:40:17
Quote Anchor link
Reden te meer om neutrale URLs te verzinnen en enige verandering ergens anders af te handelen (navigatielaag in de applicatie) wat het inhoudelijk veranderen van genoemde URLs overbodig maakt.
 



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.