problem with regular expressions following code snippet...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • jojocrazy

    problem with regular expressions following code snippet...

    I'm definately not a regexp wiz.... need some suggestions here:

    grab PHP_SELF, strip the end filename off and the 2 directories
    preceeding it...

    This is what I've come up with so far, except I'd like to replace the
    ..html for any extension and I've tried it but doesn't work... and I've
    also tried parsing backing a second directory but no luck, maybe you
    have an alternative solution:

    --- snip ---

    What I have tried:

    // retrieves URL of itself, then strips the directories only leaving
    the filename
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $new = preg_replace("/[^\/](.*?)[$\/]/mis",'',$PHP_SE LF);
    $new = preg_replace("/\//mis",'',$new);

    // replace the file only so we have the directory and append the
    contact form onto it
    $expression =
    sprintf("/[$\/](?=...)([a-z0-9]+.\.[a-z]+)/mi",$new); // or

    $expression = sprintf("/[$\/](?=...)([a-z0-9]+.\.htm?)/mi",$new); or

    $expression =
    sprintf("/[$\/](?=...)([a-z0-9]+.\.htm?)(?<=.. .)(-[a-z][\/])/mi",$new);
    $contactform = preg_replace($e xpression,'',$P HP_SELF);
    $contactform = $contactform.'/contact_form1.h tml';


    What I have now:

    // retrieves URL of itself, then strips the directories only leaving
    the filename
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $new = preg_replace("/[^\/](.*?)[$\/]/mis",'',$PHP_SE LF);
    $new = preg_replace("/\//mis",'',$new);

    // replace the file only so we have the directory and append the
    contact form onto it
    $expression = sprintf("/[$\/](?=...)%s/mi",$new);
    $contactform = preg_replace($e xpression,'',$P HP_SELF);
    $contactform = $contactform.'/contact_form1.h tml';

    --- snip ---

    PHP_SELF = /dirname1/dirname2/dirname3/dirname4/somefile.html

    which generally results in
    /dirname1/dirname2/dirname3/contact_form1.h tml

    but what I would like is to also remove dirname3 as well resulting in:

    /dirname1/dirname2/contact_form1.h tml

  • jojocrazy

    #2
    Re: problem with regular expressions following code snippet...

    Anyone out there know regex???

    Comment

    • jojocrazy

      #3
      Re: problem with regular expressions following code snippet...

      Ok, after a little more searching, a little more clearer thinking I
      sovled it with:

      /[\/]\w+[\/](\w+\.[a-z]{3,4})/mi

      Comment

      Working...