[php] preg_replace replace met string strings

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Vage topictitel zodat mensen die later zoeken het goed kunnen vinden :)

Hoe krijg ik het volgende werkend:
code:
1
    $sql = preg_replace("/\%\^(.*?)\^\%/i", "$sqlr['\\1']", $query->verify);

Nu gaat ie in de fout bij die $ :'(

:?

  • tomato
  • Registratie: November 1999
  • Niet online
Misschien leuk om er even bij te zetten wat je wilt bereiken?

'hij doet het niet' zegt zo weinig zonder je code te gaan ontleden ;)

  • tomato
  • Registratie: November 1999
  • Niet online
Overigens denk ik dat je dit bedoelde als replacement argument:
code:
1
'$sqlr[\'$1\']'

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Op zondag 03 februari 2002 16:32 schreef tomato het volgende:
Misschien leuk om er even bij te zetten wat je wilt bereiken?

'hij doet het niet' zegt zo weinig zonder je code te gaan ontleden ;)
Das idd wel een idee ja :)

Nou, hij moet dus die $sqlr['\\1'] 'echt' pakken, dat is gewoon een array in het document. Maar hij wilt dat niet :'(

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Op zondag 03 februari 2002 16:38 schreef tomato het volgende:
Overigens denk ik dat je dit bedoelde als replacement argument:
code:
1
'$sqlr[\'$1\']'
dan vind ie het alsnog niet leuk :(

  • tomato
  • Registratie: November 1999
  • Niet online
dennisdotcom: dan vind ie het alsnog niet leuk :(
Tsja, als je er niet bij zegt wat er gebeurt, wat er mis gaat, wat er zou moeten gebeuren en wat de foutmelding is kan ik er ook niet zo veel mee verder.

Wat betekent dat 'ie het niet leuk vindt' :?

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Php geeft deze foutmelding:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\website\site\develop\public\newforum\includes\ssi\start.php on line 33



Dat komt dus blijkbaar omdat hij niet een 'on-the-fly' array in wil voegen.

  • tomato
  • Registratie: November 1999
  • Niet online
Oh, je moet trouwens wel een /e modifier gebruiken, als ik nog steeds goed begrijp wat je wilt doen.
code:
1
$sql = preg_replace("/\%\^(.*?)\^\%/e", '$sqlr[\'$1\']', $query->verify);

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Op zondag 03 februari 2002 16:45 schreef tomato het volgende:
Oh, je moet trouwens wel een /e modifier gebruiken, als ik nog steeds goed begrijp wat je wilt doen.
code:
1
$sql = preg_replace("/\%\^(.*?)\^\%/e", '$sqlr[\'$1\']', $query->verify);
Helaas helpt dat niet veel ;(

  • tomato
  • Registratie: November 1999
  • Niet online
Die foutmelding ligt iig niet aan deze regel.

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Op zondag 03 februari 2002 16:51 schreef tomato het volgende:
Die foutmelding ligt iig niet aan deze regel.
Echt wel hoor :)
of beter gezegd: :'(

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
bij mij werkt dit gewoon hoor:
code:
1
2
3
4
5
6
7
8
9
10
11
    $sglr = array(
        "a" => "bla1", 
        "b" => "bla2",
        "c" => "bla3",
        "d" => "bla4"
    );
    
    $text = "_%^a^%_";
    $blaat = preg_replace("/\%\^(.*?)\^\%/e", '$sglr[\'$1\']', $text);
    
    echo $blaat;

  • tomato
  • Registratie: November 1999
  • Niet online
Waarom trouwens die % escapen :?

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:41
Op zondag 03 februari 2002 17:05 schreef tomato het volgende:
Waarom trouwens die % escapen :?
Goeie vraag :)

Ik heb nu dit:
code:
1
$sql = preg_replace("/%\^(.*?)\^%/e", '$sqlr[\'\\1\']', $query->verify);

Hij klapt er nu niet meer uit, echter hij zet niks in de plaats van wat ik wil...
Ik heb die weldegelijk gedefineerd trouwens.

Sorry |:(

Nouja, eind goed al goed :P
Pagina: 1