Hex-Ausgabe eines Textes
Klausi
- php
Hallo,
zur Ausgbe von Debug-Infos verwende ich echo "...
Was kann ich verwenden um nicht druckbare Zeichen mit auszugeben?
Hallo Klausi,
Was kann ich verwenden um nicht druckbare Zeichen mit auszugeben?
Kommt drauf an.
"Was kann ich verwenden, um mein Auto anzutreiben?" - das kann ich auch nicht beantworten, ohne dass Du mir sagst, ob es ein E-Auto oder ein Verbrenner ist. Oder vielleicht ein Fahrzeug vom Autoscooter oder vom Kinderkarussell. Oder gar ein Auto von der Darda-Bahn?
Im Titel schriebst Du "Hex-Darstellung". Sicherlich möchtest Du nicht stumpf den ganzen String als Hexfolge darstellen. Das ginge mit bin2hex().
Die Lösung hängt deshalb davon ab, wie der String codiert ist und welcher Art diese "Nichtdruckbarkeit" ist.
Du müsstest also schon Kontext herausgeben.
Das sind nur die Einstiegsfragen…
Rolf
Autsch! Codiert?
Ich habe ein Programm übernommen, Autor nicht mehr verfügbar. Was ich wissen möchte ist, ob in dem Text, der im mail ausgegeben werden soll, irgendwelche Zeilenwechselzeichen \r und/oder \n stecken.
Hallo Klausi,
ja gut. Wie wär's, wenn Du danach suchst und dann diesen Sachverhalt ausgibst? Die Primitiv-Funktionen aus der C Runtime Library, die PHP mitbringt, tun dafür gute Dienste.
if (strpbrk($mailbody, "\r\n") !== FALSE) {
echo "Mail enthält CR oder LF\n";
}
oder so
if (strcspn($mailbody, "\r\n") < strlen($mailbody)) {
echo "Mail enthält CR oder LF\n";
}
Oder musst Du es wirklich ganz genau wissen? So könnte es auch gehen:
echo str_replace(["\r", "\n"], ["{CR}", "{LF}"], $mailbody);
Rolf
Hallo Rolf, danke, das hat mein jetziges Problem gelöst. Allerdings kenne ich aus anderen Anwendungen, dass man einen Text auch komplett in Hexadedimaler Form ausgeben kann (z.B. Hex-Editoren).
Hallo Klausi,
ja. Dafür kannst Du bin2hex() verwenden.
Rolf