"&" Zeichen in PHP Code (auf Rocky9 VM)?

2 Antworten

Also grundsätzlich ist so ein Test schon mal sehr unsauber. Wenn es denn aber nicht anders geht, dann würde ich den Firmennamen vorher erst mal „normalisieren“. Zum Beispiel so:

// String in Kleinbuchstaben umwandeln
$organization = strtolower($organization);

// & & Punkt und drei/zwei Leerzeichen mit einem Leerzeichen ersetzen
$organization = str_replace(['&', '&', '.', '   ', '  '], ' ', $organization);

// Leerzeichen am Anfang und Ende entfernen
$organization = trim($organization);

Dann musst du nicht so viel testen, da der Text kleingeschrieben ist und & und . daraus verschwunden sind.

if ($organization == 'firmen name hier') {

Das sollte das ganze schon mal vereinfachen.

Und wie iQa1x schon schrieb, wir der Ampersand in HTML mit & codiert. Das sollte man so zwar eigentlich nicht in Datenbanken schreiben aber ist bei dir vermutlich passiert.

Der Ampersand selbst hat in PHP eine Bedeutung aber nicht innerhalb eines Strings.

Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.
Von Experte Babelfish bestätigt

Das '&' im String ist kein Problem und wird behandelt wie jedes andere Zeichen auch. Allerdings solltest du mal schauen, wo die Daten herkommen und ob da auch wirklich ein "&" in der Variable steht. Evtl. kommt der Variableninhalt irgendwo her, wo das '&' anders dargestellt wird, in HTML hat das z.B. eine sezielle Bedeutung, weswegen da ein '&' als '&' codiert wird.

Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin