At 10:16 PM 1/5/2002 -0500, Gerard Samuel wrote: >Need some help with this one. Dont know where to begin. I have content >in a string and a constant that changes depending on if yourre in the root >or in a directory. >The purpose of the constant is to provide dynamic links. >The string will have href links like <a href="index.php">Index</a> >I want to figure out a way to inject my constant value into the href like so ><a href="'._CONSTANT'index.php">Index</a> >I would like the rules to say, >If string contains <href="> and there are <alphanumerical chars> .php >place _CONSTANT between <href="> and <alphanumerical chars> >I figure a regular expression, but I have no idea where to start..
This seems to work: <? define("_CONSTANT","/path/"); $string = "Click <a href=\"index.php\">here</a> to return to the main page."; echo insertpath($string); function insertpath($string) { return preg_replace("/(<a href=\")(.*\">.*<\/a>)/i","$1"._CONSTANT."$2",$string); } ?> Preg_replace allows you to use backreferences and access them via variables such as $1 and $2, etc. Earlier versions of PHP required you to use \\1, \\2 instead (see the documentation for preg_replace for more info). Each section of the regex that is in parenthesis can be accessed. In the above example, the (<a href=\") section is reprinted in the replacement string by using $1, so on a so forth. The ".*" in the regex basically means match "any old junk" since the "." refers to any single character and the "*" means match the previous character zero or more times. http://download.php.net/manual/en/function.preg-replace.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]