|
Posted by Oli Filth on 09/26/06 23:13
comp.lang.php said the following on 26/09/2006 22:03:
> I am trying to replace within the HTML string $html the following:
>
> [quote]
> <a
> href="index.php?section=image&refAction=edit&previousRefOrig=edit&chooseAlbum=1&album=here&sort=&willDesc=&willDisplayPanel=&action=move_image">Go
> back..</a>
> [/quote]
>
> With
>
> [quote]
> <a
> href="index.php?section=image&refAction=edit&previousRefOrig=edit&chooseAlbum=1&album=here&sort=&willDesc=&willDisplayPanel=&action=edit">Go
> back..</a>
> [/quote]
>
> Where I'm replacing "action=move_image" with "action=<?=
> $_REQUEST['refAction'] ?>"
>
> I'm using regular expressions to do just that, or at least I'm trying:
<...snip...>
> Several class methods spawn the query string before "Go back.." several
> different ways; however, there will always be a "action=[something]"
> within the query string for you to change, just cannot predict where;
> furthermore, there MAY also include "refAction=[something]" within the
> same query string.
>
> How do I do this either with regular expressions or some other way?
IMHO, having multiple methods independently responsible for creating a
complex URL like that, and then having a regular expression to
subsequently "alter" it is likely to be error-prone and a maintenance
nightmare.
I don't know what your exact scenario is, but if I were doing it, I
might maintain an associative array of the GET variables and values e.g.
something like:
class Foo
{
private $variables;
function bar()
{
$variables["section"] = "image";
$variables["refAction"] = "edit";
...
$variables["action"] = "move_image";
}
function fuzz()
{
$variables["section"] = "home";
$variables["refAction"] = "delete";
...
$variables["action"] = "kill_image";
}
function alter_action()
{
$variables["action"] = "edit";
}
function getQueryString()
{
// convert array contents to a query string
}
}
--
Oli
Navigation:
[Reply to this message]
|