Felix Riesterer: Eine Funktion und ihre Eigenart bzw. Zeilenumbrüche in PHP

Beitrag lesen

Lieber Thomas,

\fedsum(j,j=1,n)=(n*(n+1))/2 +a_1

^^
Du hast hier einen Backslash. Das kann beim Abspeichern in der DB ein Riesenproblem geben, wenn Du ihm nicht mindestens einen weiteren Backslash voranstellst.

Aus \f wird beim Speichern in der DB ein Steuerzeichen, das (weil es wahrscheinlich nicht existiert) ignoriert wird. Damit ist der Teil "\f" aus Deinem String wahrscheinlich nicht in der DB enthalten.

"\f" wird für die DB zu "\f", da der Backslash an sich escaped wird und somit die Kombination zu etwas ähnlichem wie "\ f" wird, wenn auch ohne das Leerzeichen dazwischen.

Ob es nun reicht, einfach einen weiteren Backslash davorzustellen, weiß ich nicht, da beim Auslesen aus der DB wiederum ein Umwandeln geschieht, welches aus "\f" ein Steuerzeichen machen könnte... Also bräuchtest Du "\\f", wenn Du Deinen String in die DB ablegst, damit beim Wiedereinlesen auch "\f" in Deiner Stringvariablen ankommt.

LÖSUNG: Probiere einmal die Funktion addcslashes() auf Deinen String anzuwenden, bevor Du ihn in der DB ablegst!

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)