ik ben totaal niet technisch, maar heb 2 regular expressions nodig om een verwijzing te doen naar een specifiek type pagina van een website. Eenmalig eigenlijk. Ik hoop dat ik hier aan het goede adres ben en iemand kan helpen.
De structuur van de site is als volgt:
1. domein: ww.domein.nl
2. Categorie: ww.domein.nl/categorie.html waarbij er verschillende soorten categorieën zijn, heren, dames, kids om maar wat te noemen
3. Subcategorie: ww.domein.nl/categorie/subcategorie.html waarbij er weer verschillende soorten subcategorieën zijn. Truien, broeken etc
Ik zoek dus als eerste een regular expression waarmee ik alle pagina's "vang" bij 2 (op categorieniveau) EN alle pagina's bij 3 (subcategorieniveau). En dat indien mogelijk in 1 regular expression. Als dat onmogelijk is dan in 2.
En nog een niveau dieper is het als volgt:
4. Product dat direct onder de categorie hangt: ww.domein.nl/categorie/productnaam-roze.html
5. Product dat onder de subcategorie hangt: ww.domein.nl/categorie/subcategorie/productnaam-roze.html
Voor 4 en 5, dus alle productpagina's, zoek ik ook een regular expression. Maar dat kunnen dus honderden verschillende producten zijn met uiteenlopende namen zonder logica.
Ik hoop dat dit duidelijk is verwoord en dat iemand hierbij kan assisteren.
O, verrek, nou zie ik 'm. Ik had alleen die bij 5 gezien. Tsja, dan wordt het lastig, en zul je toch een lookup in de database moeten doen (is het product of een categorie). Dan is jouw oplossing net zo handig (ivm de opmerking over een "verwijzing" + reg-ex had ik het vermoeden dat het misschien in een mod_rewrite achtige constructie moest komen, en dan is een reg-ex wel handig).
@Roy: het is 3x hetzelfde stukje code (preg_match()), alleen aan de hand van het format van de URL geeft ie een array met 2, 3, of 4 "matches" terug (waarbij de 1e - nummer 0 - altijd de volledige match is).
Dank jullie beiden. Ik ga het lezen en proberen te begrijpen. Ik gebruik het om een heatmap te maken voor een categoriepagina en een prodictpagina in een saas programma en moet daar simpelweg 1 veld invullen. zie http://prntscr.com/haqe8f
[size=xsmall]Toevoeging op 15/11/2017 12:25:41:[/size]
maw: je vindt zelf waarschijnlijk je linkjes naar externe sites heel handig, maar die staan vol reclame en andere rotzooi.
Je kunt ook je vraag slimmer stellen.
Als je in je openingspost gewoon het hele verhaal vertelt, krijg je geen oplossingen waar je niets aan hebt. Je oorspronkelijke vraag vermeldt niets over een externe site die iets met die regex moet doen.
Maar je gaat dit niet in 1 regex vangen. Dat wil zeggen: als je onderscheid tussen een product en subcategorie nodig hebt.
Ik ga het proberen, maar aangezien dit voor mij soort hocus pocus is moet ik de tijd nemen het te begrijpen. Ik weet niet eens hoe ik de code van Rob moet lezen en wat ik zou moeten kopiëren.
Ik had verwacht/of gehoopt dat ik een simpel stukje tekst zou krijgen, copy paste klaar. Maar zo werkt het helaas niet kom ik nu achter.
Ik kan geen plaatjes bijvoegen op dit forum vandaar dat ik dat plaatje met zo'n prtscrn linkje laat zien steeds (daar staat dan inderdaad reclame bij).
Maar er staat dus "Enter page URL - URL Regular Expression" en dan 1 klein invulveld met daarin "e.g. \/pages\/[^\/]+
In ieder geval dank voor het meedenken!
[size=xsmall]Toevoeging op 15/11/2017 13:27:15:[/size]
Rob Doemaarwat op 15/11/2017 13:11:45
Als een productpagina altijd barst van de nummers op het eind, dan kun je daar met een reg-ex ook nog wel weer wat mee.
Nee, kan je niet vanuit gaan helaas.. Dit gaat om het analyseren van bezoekersgedrag op specifieke pagina's. Ik laat de tool data verzamelen van categoriepagina's en van productpagina's. Beiden hebben een andere functie en oop beiden gedragen bezoekers zich anders. Met die regex vertel ik de tool wat wat is. Het hoeft ook niet compleet te zijn, zolang ze maar niet door elkaar heen lopen.
ik zou het om willen draaien, hoeveel kan ik er kwijt? Ik heb er +- 40, maar als ik er 10 kwijt kan is dat beter dan niets. Hoe minder ik er kwijt kan hoe langer het duurt voor ik data heb, maar het werkt wel.
Gewoon een single point of entry gebruiken en een router.
Alle requests leiden dan naar 1 pagina dankzij wat instellingen in de .htaccess. Laten we zeggen dat alle request naar index.php leiden waarin je een router zijn werk laat doen om de URL te ontleden en te beslissen welke controller/method er aangeroepen moet worden. In de controller laadt je dan uiteindelijk je data en je template.
De volgorde waarin je de routes behandeld is heel belangrijk en zal bepalen welke route voorrang krijgt.
Stel:
ww.domein.nl/etenswaar/brood
Is brood dan een artikel of is het een subcategory ? Zou allebei kunnen toch?
Laat je nu de router de route /{category}/{product} als eerst behandelen dan zal die matchen en wordt de showProduct() method aangeroepen en dus een productpagina geladen.
Verander je de volgorde van de routes, bijvoorbeeld: