php " in variable
Jürgen
- php
1 Hopsel0 Hopsel
0 Tom1 Beat1 romy1 Alexander, W.0 Tom0 Bademeister0 ChrisB
hallo,
ich habe eine variable [laptopgrößen] die ein hochkomma enthält:
zb 13" oder 15"
bei der vearbeitung habe ich dann folgendes problem:
<?php if ($zeile[5]=="13""){echo "selected";}?>
Da hier 2 "" vorkommen kommt eine Fehlermeldung.
Ich weis das kann man ingendwie Umgehen aber leider nicht mehr wie?
Wer weis Rat oder einen Link zu dem Thema.
danke
Hi Jürgen!
Ich weis das kann man ingendwie Umgehen aber leider nicht mehr wie?
1. Du maskierst das Zeichen mit einem Backslash oder
2. Du nutzt einfache Anführungszeichen.
Wer weis Rat oder einen Link zu dem Thema.
Dazu findest du - wie meistens - etwas im Manual: [http://php.net/language.types.string]
MfG H☼psel
Hi Ingrid!
Der Link lautet richtig: http://php.net/language.types.string
MfG H☼psel
Hello,
ich habe eine variable [laptopgrößen] die ein hochkomma enthält:
zb 13" oder 15"
bei der vearbeitung habe ich dann folgendes problem:
<?php if ($zeile[5]=="13""){echo "selected";}?>
Da hier 2 "" vorkommen kommt eine Fehlermeldung.
Ich weis das kann man ingendwie Umgehen aber leider nicht mehr wie?
Wer weis Rat oder einen Link zu dem Thema.
guckst Du http://docs.php.net/manual/de/language.types.string.php
und sagst dem Parser, dass er das Double-Quote-Zeichen im String als Payload und nicht als Steuerzeichen werten soll.
danke
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
ich habe eine variable [laptopgrößen] die ein hochkomma enthält:
zb 13" oder 15"
bei der vearbeitung habe ich dann folgendes problem:
<?php if ($zeile[5]=="13""){echo "selected";}?>
Da hier 2 "" vorkommen kommt eine Fehlermeldung.
Ich weis das kann man ingendwie Umgehen aber leider nicht mehr wie?
Wer weis Rat oder einen Link zu dem Thema.
Du möchtest Zeichen, die eine Spezialbedeutung haben mit dem Backslash \ maskieren.
"""
'''
mfg Beat
Hallo Jürgen,
ich habe eine variable [laptopgrößen] die ein hochkomma enthält:
zb 13" oder 15"
bei der vearbeitung habe ich dann folgendes problem:
<?php if ($zeile[5]=="13""){echo "selected";}?>
Da hier 2 "" vorkommen kommt eine Fehlermeldung.
Ich weis das kann man ingendwie Umgehen aber leider nicht mehr wie?
Wer weis Rat oder einen Link zu dem Thema.
Du musst php hier mitteilen, dass es sich nicht um ein Steuerzeichen, sondern um ein gewolltes Textzeichen handelt. Ich kenne den Backslash als solchen Hinweis:
$zeile[5]=="13""
Das geht auch bei anderen Steuerzeichen wie zB. dem Semikolon.
Achso alternativ könntest du auch:
$zeile[5]=='13"' schreiben, aber ich vergesse das immer, weil es mir persönlich nicht gefällt.
ciao
romy
PS: Für mich ist das " ein Anführungszeichen und das ' ein Hochkomma ;)
Hallo Dr. Trash,
falls es dynamisch erfolgen soll, dann mit der Funktion "addslashes":
$var = addslashes($var);
Wenn die slashes nachher entfernt werden sollen, dann benutze "stripslashes":
$var = stripslashes($var);
Gruß Alexander.
Hello Alexander,
falls es dynamisch erfolgen soll, dann mit der Funktion "addslashes":
wie soll das gehen und wofür soll das gut sein?
Wann uns wo soll addslashes() angewandt werden?
Das verstehe ich jetzt nicht.
Da Dein Posting aber einen "hilfreich"-Punkt bekommen hat, muss es ja irgend jemand verstanden haben und könnte es mir jetzt bitte erklären?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi ?[1],
falls es dynamisch erfolgen soll, dann mit der Funktion "addslashes":
$var = addslashes($var);
Das tut etwas voellig anderes, als gefragt war. Es veraendert den Wert der Variablen. Der OP suchte lediglich nach einem Literal fuer einen String, der Anfuehrungszeichen enthaelt.
Das wollte Dir wohl in etwa auch Tom auf etwas subtilere Weise mitteilen... :-)
[1] Heisst Du W. Alexander oder heisst Du Alexander und kommst aus W.?
Viele Gruesse,
der Bademeister
Hi,
falls es dynamisch erfolgen soll, dann mit der Funktion "addslashes":
$var = addslashes($var);
Wozu?
Wenn der Text, der " enthält, es bereits "in eine Variable geschafft" hat, dann besteht keinerlei Notwendigkeit zur Maskierung mehr - das " ist innerhalb eines Stringwertes ein Zeichen wie jedes andere.
Die Notwendigkeit zur Maskierung besteht nur im Kontext "PHP-Code, der vom Parser analysiert werden soll". *Dort* hat das Anführungszeichen ggf. Sonderbedeutung - es beendet die Notation des Textliterals wieder, wenn es auch mit diesem begonnen wurde.
MfG ChrisB