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.
1. Eén code die matcht met categorie EN subcategorie (dat zijn de zogenaamde productoverzichtpagina's, daar mogen dus geen productpagina's inzitten). Voorbeeld: http://prntscr.com/haoolg en http://prntscr.com/haootm
2. Eén code die matcht met alleen productpagina's. Dus alleen maar pagina's waar je een product in je winkelwagen kan stoppen. Zoals http://prntscr.com/haophz
groet!
[size=xsmall]Toevoeging op 15/11/2017 10:09:20:[/size]
Ivo P op 15/11/2017 09:54:57
hoe herken je het verschil tussen (3) subcategorie.html en (4) productnaam-roze.html? Ziet er in de laatste altijd een "-" ?
Lastige, de "-" komt bijna altijd wel voor, maar is niet 100% zeker. En hij komt ook voor in de subcategorie. Zie voorbeeld: categoriepagina http://prntscr.com/haorbq en productpagina: http://prntscr.com/haorjf
Als je linkjes in je post wilt gebruiken als toelichting, ,dan kun je die natuurlijk ook gewoon typen, ipv een screenshot op een andere server plaatsen en dan een link daarnaartoe plaatsen....
Houdt je verhaal wel zo leesbaar.
--
anyway: ik zie nog steeds geen verschil tussen 3 en 4.
Lijkt me handiger om in plaats daarvan de url op te splitsen op de /.
Als er maar 1 element is (of als $part[0] op .html eindigt), dan is dat de categorie.
else:
als deel 2 op .html eindigt (danwel, count($parts)==2), dan is deel 1 ook de categorie, en deel 2 is de subcat, of een artikel.
Dan zul je in je database moeten zoeken of deel 2 voorkomt als subcategorie. Zo niet, dan is het een artikel.
Als je linkjes in je post wilt gebruiken als toelichting, ,dan kun je die natuurlijk ook gewoon typen, ipv een screenshot op een andere server plaatsen en dan een link daarnaartoe plaatsen....
Houdt je verhaal wel zo leesbaar.
Dank voor de tip! Ik had mijn reactie uitgebreid terwijl jij een reactie gaf. Dat maakte het al wat duidelijker denk/hoop ik
@Ivo: Het is altijd iets van categorie(/sub-categorie(/product-naam)).html (de stukken tussen (...) zijn steeds optioneel). Dat kun je dus prima herkennen: 1e stuk = categorie, 2e stuk = sub-cat, 3e stuk = product (als ze d'r zijn). Dat is ook precies wat mijn reg-ex doet (even alleen het optionele stukje - zit er 2x in):
(?:\\/(.+?))?
( )? -> dit stuk is optioneel (ivm vraagteken d'r achter)
?: -> dit stuk wil ik niet terugzien in de matches
\\/ -> ivm deze forward slash die ik niet wil zien
(.+?) -> dit is de match die ik zoek (? = non-greedy = zo kort mogelijk =
niet de productnaam bij de sub-cat trekken)
4. Product dat direct onder de categorie hangt: ww.domein.nl/categorie/productnaam-roze.html
en ik zie geen verschil tussen
ww.domein.nl/categorie/productnaam-roze.html
en
ww.domein.nl/categorie/roze-producten.html
De eerste zou één product zijn, en de tweede de subcategorie met roze producten.
Maar naar mijn idee is een regex hier overbodig: je weet dat je op de / moet splitten.
Uit het aantal gevonden delen weet je al of het gaat om 1 categorie, of in het geval van 3 delen om een cat/ sub-cat / product combinatie.
Alleen in het geval van 2 delen zul je een lijst met sub-categorieën moeten raadplegen om te zien of het een subcat is, of anders een product.
Waarbij eventuleel nog de combinatie "subcat" horend bij "cat" bekeken kan worden.