[PHP] preg_replace met arrays werkt niet.

Pagina: 1
Acties:

  • Guillome
  • Registratie: Januari 2001
  • Niet online
PHP:
1
<?  $row = mysql_fetch_array(blabla);  $zoekterm = 'een test';  $tq = preg_split("/[\+ ]/", $zoekterm);  $row = preg_replace($tq, "<b class=head". $color. ">". $tq. "</b>", $row);?>

De foutmelding:
code:
1
Warning: Delimiter must not be alphanumeric or backslash in /woordenboek.php on line 113

En dat 20 keer ofzo.

Wie kan mij helpen?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Sla dit:
"<b class=head". $color. ">". $tq. "</b>"

eens op in 1 variabele en zet die in de preg_replace?

Of als ie echt geen arrays ondersteund, gewoon ff een foreach gebruiken...

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Dat kan toch niet?
$tq is een array...

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

DUS, for each...

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Maar in de help staat "Every parameter to preg_replace() can be an array."

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

ow IC...

Maar dan werkt het ook niet in die preg_replace. Gebruik daar ook een foreach, anders staat er <b clas=head$color>array</b>

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Maar
PHP:
1
<?   $tq = preg_split("/[\+ ]/", $zoekterm);  $row = preg_replace($tq, "<b class=head". $color. ">TEST</b>", $row);?>

werkt ook niet.
Dus 1e parameter is array, 2e is volledige string, en 3e is weer een array.

Help:
preg_replace ( mixed pattern, mixed replacement, mixed subject)

If subject is an array, then the search and replace is performed on every entry of subject, and the return value is an array as well.

If pattern is an array and replacement is a string, then this replacement string is used for every value of pattern. The converse would not make sense, though.

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
Zou gewoon moeten werken, ligt ws. ergens anders aan :{

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Zover was ik al.
Moet alleen nog even weten waaráán het dan licht

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
XLerator:
Zover was ik al.
Moet alleen nog even weten waaráán het dan licht
Post dan wat meer code en wat vars die je gaat gebruiken VOOR de preg_replace. :{

  • Guillome
  • Registratie: Januari 2001
  • Niet online
PHP:
1
<?  $zoekterm = $HTTP_GET_VARS['zoekterm'];  function getztq($zoekterm, $col)  {    return preg_replace("/[\+ ]/", '%" OR '. $col. ' LIKE "%', $zoekterm);  }    <?php while($row = mysql_fetch_array($result)) {       if ( ($zoekterm <> '') and (isset($zoekterm)) )       {        $tq = preg_split("/[\+ ]/", $zoekterm);        foreach($tq as $waarde)          $row = preg_replace('/'. $waarde. '/i', "<b class=head". $color. ">". $waarde. "</b>", $row);      }    ?>

:{

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
Jezus :{

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Das toch wat je vroeg? :{

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
Maar de vars die je gaat gebruiken in de preg_replace, dump die array eens met printf ($array);

En ik zei meer code, niet het hele script :{

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ok, is ingekort

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Dan zegt ie 2 keer "Array"

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

print_r() bedoeld ddc ;)

Doet iets met Cloud (MS/IBM)


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Tnx :)
PHP:
1
<?Array ( [0] => woord [1] => [2] => een ) Array ( [0] => Test woord [woord] => Test woord [1] => Engels: Test word. Frans : La word de la testá [vertaling] => Engels: Test word. Frans : La word de la testá [2] => Een woord om te testen. [uitleg] => Een woord om te testen. [3] => 1 [afdeling] => 1 [4] => Ikke [plaatser] => Ikke ) ?>

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
XLerator :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Array ( 
  [0] => woord 
  [1] => 
  [2] => een 
) 

Array ( 
  [0] => Test woord 
  [woord] => Test woord 
  [1] => Engels: Test word. Frans : La word de la testá 
  [vertaling] => Engels: Test word. Frans : La word de la testá 
  [2] => Een woord om te testen. 
  [uitleg] => Een woord om te testen. 
  [3] => 1 
  [afdeling] => 1 
  [4] => Ikke 
  [plaatser] => Ikke 
)
Klopt dit allemaal :?

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ja
Zoekterm = 'een test''een woord'
Wordt gesplitst en in een array gezet
Alles in dat array moet ie zoeken in $row, en vervangen door <b>DIE WAARDE</b>

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
Ik snap het nog niet helemaal, leg eens uit ?
Want ik zie nergens 'een test' staan :).

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Neen :) Das een parameter.

url=woordenboek.php?zoekterm=een%20woord

..ja ok, ik bedoelde '$zoekterm = "een woord";' :)

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 08:34
Oke, dan snap ik de bovenste array, maar waarom is de onderste zo inconsistent (oftewel steeds andere named arrays).

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Das van
PHP:
1
<?  $result = mysql_query("SELECT * FROM woordenboek blabla");  $row = mysql_fetch_array($result);?>

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Euh :{

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router

Pagina: 1