Steuerzeichen bei PDF

Sprint

Erfahrenes Mitglied
Hallo zusammen,

wir fragen sehr oft die Gültigkeit der Steuernummer bei der Europäischen Kommission ab. Die Daten werden in ein Array geschrieben, in einen JSON codierten String umgewandelt und in der Datenbank gespeichert.
PHP:
$result = [
    'getIdentifier' => $vatResult->getIdentifier(),
    'getRequestDate' => $vatResult->getRequestDate()->format('d/m/Y H:i'),
    'getName' => addslashes($vatResult->getName()),
    'getAddress' => addslashes($vatResult->getAddress()),
    'getNameMatch' => $vatResult->getNameMatch(),
    'getCompanyTypeMatch' => $vatResult->getCompanyTypeMatch(),
    'getStreetMatch' => $vatResult->getStreetMatch(),
    'getPostcodeMatch' => $vatResult->getPostcodeMatch(),
    'getCityMatch' => $vatResult->getCityMatch()
];
$result = str_replace("'", "", $result);
$jresult = json_encode($result, JSON_UNESCAPED_UNICODE);

Dabei sind in den Daten aber zum Teil auch Steuerzeichen wie z.B. 0A enthalten. Bei der Anzeige am Bildschirm stören die nicht, aber wenn aus den Daten ein PDF erzeugt werden soll, schlägt die JSON Decodierung fehl und es werden keine Daten eingetragen. Dabei wird aber kein Fehler produziert, so daß nach den Server Logs alles ok ist.

Wie kann ich solche Steuerzeichen rausfiltern?
 
Es geht hier aber um reines PHP. Die Daten werden nur in einen JSON String umgewandelt, um sie leichter in einer Datenbank speichern zu können.
 
Zufällig stand ich vorgestern vor dem selben Problem. Ich habe es gelöst, indem ich die Newlines escaped habe:
Code:
    // Ein Newline muss escaped werden:
    $json = str_replace("\n", '\\n', $json);
Besser wäre es u. U., dies gleich beim Erzeugen des JSON zu machen für die betr. Elemente.
 
Zufällig stand ich vorgestern vor dem selben Problem. Ich habe es gelöst, indem ich die Newlines escaped habe:
Code:
    // Ein Newline muss escaped werden:
    $json = str_replace("\n", '\\n', $json);
Besser wäre es u. U., dies gleich beim Erzeugen des JSON zu machen für die betr. Elemente.
Was ist an meiner Antwort jetzt anderst????? *verwirrt*
 
Was ist an meiner Antwort jetzt anderst?????
Deine Antwort bezog sich auf JS. Vor allem String.raw gibt es nur da.

Zufällig stand ich vorgestern vor dem selben Problem. Ich habe es gelöst, indem ich die Newlines escaped habe:
Code:
    // Ein Newline muss escaped werden:
    $json = str_replace("\n", '\\n', $json);
Besser wäre es u. U., dies gleich beim Erzeugen des JSON zu machen für die betr. Elemente.
Vor der JSON Erzeugung ist insofern blöd, da die Zeilenumbrüche bei der Bildschirmausgabe von Vorteil sind.

0A muß aber noch was anderes sein als \n, da bei der Erstellung des PDF die schon umgewandelt werden.
PHP:
$viespruefung['meldung'] = str_replace ("\n", ', ', $viespruefung['meldung']);
 
Vor der JSON Erzeugung ist insofern blöd, da die Zeilenumbrüche bei der Bildschirmausgabe von Vorteil sind.
Wieso denn das?
Zur Bildschirmausgabe lässt du das JSON im Original.
Erst wenn du Richtung PDF abbiegst machst du den ESCAPE
Code:
$jsonpdf = str_replace("\n", '\\n', $json);
//Schicke $jsonpdf an PDF-Erzeugung
 
Zur Bildschirmausgabe lässt du das JSON im Original.
Erst wenn du Richtung PDF abbiegst machst du den ESCAPE
So mache ich es ja. Der Tip von Sempervivum bezog sich aber auf die Erzeugung des JSON nach dem Empfang der Daten von der VIES. Und wenn ich das da mache, betrifft es ja such eine spätere Bildschirmausgabe. Zumindest hatte ich ihn so verstanden.

Das blöde ist halt, daß diese Umwandlung ja schon gemacht wird. Und trotzdem bleiben (allerdings selten) die 0A drin.
 
Zurück