[PHP] wat doet deze regular expression?

Pagina: 1
Acties:
  • 273 views

Acties:
  • 0 Henk 'm!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

Topicstarter
Kan iemand mij uitleggen wat de volgende regular expression doet?

PHP:
1
2
3
if (preg_match('!^'.$vs_base_dir.'^', $va_volume_info['absolutePath'])) {
  // doStuff()
}


Onder een debian-host schotel ik hem dit voor:
PHP:
1
2
$va_volume_info['absolutePath'] = '/var/www//test06/media/providence/workspace'
$vs_base_dir = '/var/www/test06'

en dit levert geen match op (doStuff wordt niet uitgevoerd)

Onder een windows-host schotel ik hem dit voor:
PHP:
1
2
$va_volume_info['absolutePath'] = 'd:/wamp/www/test06//test06/media/providence/workspace'
$vs_base_dir = 'd:/wamp/www/test06'

en dit levert _wel_ een hit op: doStuff wordt wel uitgevoerd.

Waar zit hem het verschil? Kan iemand mij dit uitleggen want ik snap er niks van en krijg er (nog meer :s) grijs haar van...
(ik heb deze reg-ex niet zelf geschreven, is onderdeel van een pakket wat we hier op het werk gebruiken, en het doel is om dit soort onleesbare dingen er uit te halen & te herschrijven in 'leesbare' code)

gebruikte php-versie: beiden hoger dan 5.2.2

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 22:52

MueR

Admin Tweakers Discord

is niet lief

/var/www//test06/
/var/www/test06/

Zoek het verschil.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Die dubbele slash voor je debian host is een typfout?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Sander
  • Registratie: Juni 2004
  • Niet online
Je doet een 1op1 match op een string en in je bovenste string zitten na /var/www 2 slashes ipv 1. daarom matched ie niet.

Acties:
  • 0 Henk 'm!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

Topicstarter
juist, daar kijkt ne mens dus overheen na ettelijke uren zoeken op wat het kon zijn...
was dus een configuratiefout die dubbele '/'. (doStuff werkt nu dus wel)

Als ik het dus goed begrijp is deze reg-ex dus niet meer dan even controleren of de variabele $va_volume_info['absolutePath'] begint met $vs_base_dir ?
Of doet dit toch nog iets anders ook?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
roeleboel schreef op woensdag 22 juli 2009 @ 16:05:
Als ik het dus goed begrijp is deze reg-ex dus niet meer dan even controleren of de variabele $va_volume_info['absolutePath'] begint met $vs_base_dir ?
Of doet dit toch nog iets anders ook?
Als je code "leent" ergens, zorg dan dat je weet wat je "leent" ;) Je verwacht nu dat wij je gaan uitleggen wat 't doet maar dat had je al moeten uitzoeken voordat je überhaupt de code copy/pastte.

Daarbij heb je met een half uurtje inlezen in de materie (regex syntax) wel in de smiezen wat 't doet (of juist niet) lijkt me. En neem anders even contact op met de auteur. We doen hier niet aan support op code van derden ;)

[ Voor 11% gewijzigd door RobIII op 22-07-2009 16:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.