Toon posts:

[Regex] backreferences *

Pagina: 1
Acties:

Verwijderd

Topicstarter
PHP

Ik heb een bestel formulier voor producten. als je een product bestelt word een een cookie aangemaakt

productid(hoeveelheid) dus bijv 1(4)-12(1) enz

Als je een product toevoegd die al bestaat word bij dat product de hoeveelheid veranderd.
dat gebeurd in dit stukje code

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (ereg("$id(([0-9]+))", $mandje, $regs)) { 

         /* Product bestaat al, het 'huidige' aantal 

            staat nu in $regs[1] */ 

         $aantal = $aantal + $regs[1]; 

         $mandje = ereg_replace( 

            "^(.*)($id)([0-9]+)(.*)$", 

            "\1\2($aantal)\3", 

            $mandje); 

      }


Nou wil ik dus ook de smaak meegeven in de cookie

dus productid(hoeveelheid)(smaak) dus bijv 1(4)(smaak1)-12(1)(smaak2) enz

hier begint het mee
if (ereg("$id\(([0-9]+)\)\(([a-z0-9]+)\)", $mandje, $regs))

maar hoe doe ik dit stukje??

PHP:
1
2
3
4
5
6
7
$mandje = ereg_replace( 

            "^(.*)($id)([0-9]+)(.*)$", 

            "\1\2($aantal)\3", 

            $mandje);


hopelijk kan iemand mij helpen

[ Voor 10% gewijzigd door Verwijderd op 18-04-2005 15:56 ]


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Het is redelijk nuttig om je taal aan te geven, en de code dan ook tussen de tags van die taal te doen. In jouw geval dus waarschijnlijk [code=php]....[/code]

DM!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Waarom geef je je cookies zo'n rare vorm? Je kan ook gewoon door middel van serialize() en unserialize() of door simpelweg string concatenation te gebruiken enkele waarden aan elkaar plakken en makkelijk uit elkaar halen. Die regexp is, lijkt me, wat overkill. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
ik heb geen idee hoe dat allemaal werkt, als ik dit kleine stukje code goed heb werkt het... dus hopelijk kan iemand mij helpen

Verwijderd

Topicstarter
ik heb het zo op opgelost
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
      if (ereg("$id\(([0-9]+)\)\($smaak\)", $mandje, $regs)) {

         /* Product bestaat al, het 'huidige' aantal

            staat nu in $regs[1] */

         $aantal = $aantal + $regs[1];

         $mandje = str_replace(

            "$id($regs[1])($smaak)",

            "$id($aantal)($smaak)",

            $mandje);

      }