string vor Werte aus DB mit zwei Ausnahmen

rernanded

Erfahrenes Mitglied
Hallo

ich muß einen
immergleichen string = Copyright_by_XYZ_2021***
vor alle Einträge aus einer Datenbank setzen, sobald diese ausgegeben werden.

Mit zwei Ausnahmen:

1. dann nicht wenn der string im Eintrag (am Anfang) bereits vorhanden ist
2. dann nicht wenn der Eintrag mit ### beginnt

Beispiele:

ja: Die glorreichen Halunken von Laramie
nein: Copyright_by_XYZ_2021***Die glorreichen Halunken von Laramie
nein: ###Die glorreichen Halunken von Junction City

MONI
 

rernanded

Erfahrenes Mitglied
PHP:
$suchmuster = "/^[a-zA-Z0-9]{0}/";   
$stattdessen = "Copyright_by_XYZ_2021***";

preg_replace($suchmuster,$stattdessen,$neu)."<br />";

echo $neu;

regex ist nicht mein Ding.
 

m.scatello

Erfahrenes Mitglied
Wenn es darum geht, ob "Copyright_by_XYZ_2021***" oder "###" am Anfang steht, dann schießt du mit Kanonen auf Spatzen. Das geht doch viel einfacher:

PHP:
<?php

  $n1 = "Copyright_by_XYZ_2021***";
  $n2 = "###";
 
  $s1 = "Die glorreichen Halunken von Laramie";
  $s2 = "Copyright_by_XYZ_2021***Die glorreichen Halunken von Laramie";
  $s3 = "###Die glorreichen Halunken von Junction City";
 
  if (strpos($s1, $n1) === 0 || strpos($s1, $n2) === 0)
     echo "Bei $s1 Nö<br>";
  else
     echo "Bei $s1 Jau<br>";
    
  if (strpos($s2, $n1) === 0 || strpos($s2, $n2) === 0)
     echo "Bei $s2 Nö<br>";
  else
     echo "Bei $s2 Jau<br>";
    
  if (strpos($s3, $n1) === 0 || strpos($s3, $n2) === 0)
     echo "Bei $s3 Nö<br>";
  else
     echo "Bei $s3 Jau<br>";
?>
 

rernanded

Erfahrenes Mitglied
@m.scatello Jau, funktioniert. Danke. Es gibt nur das Problem, dass wenn ich
$s1 = $wert_aus_db; benutze nur der jeweils letzte Eintrag angezeigt wird.

Habs gelöst. Alles klar. Danke und bis dann.
 
Zuletzt bearbeitet: