On Sat, May 21, 2011 at 4:24 PM, Peter Lind <peter.e.lind@xxxxxxxxx> wrote: > On 21 May 2011 17:18, Stuart Dallas <stuart@xxxxxxxx> wrote: > > *snip* > > >> Again, this depends upon what your url scheme looks like - and without > >> knowing that, there's simple no clue as to whether or not this is a > >> good solution to the problem (though it might be a good solution to A > >> problem). > > > > Again, I disagree. If you have an example of a URL structure where this > > would not work I'd love to hear it. > > -Stuart > > Having to replace several times just in order to figure out the path > to your script is pointless if you know the name of the script (which > you always do - it's __FILE__ ) and you're using a one-to-one > request-to-script scheme. Then just grab the part of the url up to and > including your scriptname. > Well, it would be basename(__FILE__), but that's beside the point. In this particular case, where the PHP filename is the last part of the URL, that will indeed work. However, as you have pointed out several times that's not always the case and I tend to write generic, defensive code rather than make assumptions. Note I used the word good - doing several str_replace() and other > calls is not what I consider a good solution if there's something > simpler available with as good a result. Obviously that's your choice to make, but these days I very rarely work on projects where there is a one-to-one mapping, and even if I did I would not rely on that always being the case. I've worked on a number of projects where the URL structure has been massively changed (a couple from one-to-one to controller-based) where it would have taking an excessive amount of time to undo that assumption. Using rawurlencode on $_SERVER['REQUEST_URI'] is flexible, largely future-proof and takes no more effort than the manipulation you are doing on __FILE__ to get the same result. Given the choice I'll always go for 10% extra work now to save 90% extra work later, even if it's only potential work later. -Stuart -- Stuart Dallas 3ft9 Ltd http://3ft9.com/