|
Posted by comp.lang.php on 09/27/06 03:27
Oli Filth wrote:
> 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
I took your suggestion and ran with it, a much simpler solution than
anything I could have ever done :(
Thanx
Phil
[Back to original message]
|