[Tutor] Automated Breadcrumb -- help for a PHP user

Danny Yoo dyoo at hkn.eecs.berkeley.edu
Tue Nov 25 16:56:15 EST 2003

On Tue, 25 Nov 2003, Chris Heisel wrote:

> I'd like to do this in Python and make it a cgi-bin file so I could have
> something like this:
> <!--#include virtual="/cgi-bin/bread.py" -->

Hi Chris,

This looks like a Server Side Include (SSI) directive.


According to the second document, it is possible to pass parameters to
bread.py: we can add a query string to the end.  For example:

    <!--#include virtual="/cgi-bin/bread.py?path=/foo/bar" -->

will call bread.py, and pass 'path' as a CGI parameter.

But according to that second page, you can also grab at the 'URI' path by
looking at the environment variable 'DOCUMENT_URI'.  I'm guessing that
DOCUMENT_URI is equivalent to $PHP_SELF.  If so, then we can take full
advanage of that!

Here's a small cgi that just prints out the document uri:


import cgitb
import os

print "Content-type: text/plain\n\n"
print os.environ['DOCUMENT_URI']

If you just include this cgi by using the SSI directive, you should see
that the cgi program now knows about the document uri.

> One its there I'm sure I can muddle through some flow control structures
> and what not to massage the URL into the various breadcrumb pieces...

Sounds good!  You may find:


useful; it will already handle what you did with PHP's explode() function.
But if you really want a close equivalent to explode(), you can use a
string's split() method:

>>> 'hello-world-this-is-a-test'.split('-')
['hello', 'world', 'this', 'is', 'a', 'test']

Good luck to you!

More information about the Tutor mailing list