Frage zu (J)Fritz Anrufmonitor für MCE

Ich habe den Code von Obicom benutzt, um meine Anrufliste der Fritzbox im Designer darzustellen. Es ist zwar leicht angepaßt, weil sich scheinbar einiges in JFritz geändert hat, aber für meine Bedürfnisse reicht es aus.
In seinem Vorschlag dazu hier im Forum hat er in 2 Zeilen die Formatierung der Ausgabe angegeben. Leider zerreist es mir die Ausgabe total wenn der Name des Anrufers relativ lang ist … und da nicht alle Namen gleich lang sind, siehts dann mit den nachfolgenden oder vorherigen Spalten nicht so toll aus :confused:

<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File     : Anrufliste.ips.php
Trigger  : FB_Init Script -> bei Änderungen von -> (string)Var=Fritzbox
Interval : Einmalige Ausführung nach 30 Sekunden verzögerung.
*/
// Jetzt gehts los ....
IPS_SetScriptTimer('Anrufliste_FB',0) ;
if (file_exists('C:\Programme\JFritz\jfritz.calls.xml'))
{
// Ggfs. Pfad anpassen !!!
$xml = simplexml_load_file('C:\Programme\JFritz\jfritz.calls.xml');
}
else {
exit("Konnte Datei nicht laden. ");}
$count=1;
setlocale (LC_ALL, 'German_Germany.1252');
$Fritzlog = strftime('Aktualisiert am %A, den %d.%m.%Y, um %H:%M Uhr');
$Fritzcache = "Zeitpunkt		Rufnummer	Name			auf MSN				Calltype
\r" ;
$Fritzlog = $Fritzlog."
\r".$Fritzcache."
" ;
// Ab hier wird die XML Datei (jfritz.calls.xml) zerlegt.
foreach ($xml->entry as $entry) {
// Hier wird die Zeilenanzahl festgelegt.
if ($count == 30)
{
// SetValueString("Fritzlog",$Fritzlog);
echo $Fritzlog ;
return ;
}
$calltype = $entry->attributes() ;
$date = $entry->date ;
$caller = $entry->caller ;
if ($caller == "") {$caller = "Keine Nummer" ;}
$name = findNumberJF($caller) ;
$caller = str_replace ( '+49', '0', $caller) ;
if (($name == "Unbekannt") && ($caller != "Keine Nummer")) {
$name = findNumberDE($caller) ; }
$port = $entry->port ;
$route = $entry->route ;
$duration = $entry->duration ;
// die $route Abfrage filtert z.B. (bei mir) eine Faxnumer aus.
if ((($calltype == "call_in") OR ($calltype == "call_in_failed")) && $route != "24") {
$count = $count+1 ;


         // Übersetzung von deutschen Umlauten
         $name = str_replace("Ä","Ä",$name) ;
         $name = str_replace("ä","ä",$name) ;
         $name = str_replace("Ö","Ö",$name) ;
         $name = str_replace("ö","ö",$name) ;
         $name = str_replace("%F6","ö",$name) ;
         $name = str_replace("%FC","ü",$name) ;   //neu
         $name = str_replace("Ãœ","Ü",$name) ;
         $name = str_replace("ü","ü",$name) ;
         $name = str_replace("ß","ß",$name) ;
         $Fritzlog = $Fritzlog.$date."	".$caller."	".$name."		".$route."		".$calltype."
";

}
}

SetValueString("Fritzlog",$Fritzlog);
echo $Fritzlog ;

Das hier sollten die 2 Zeilen sein:

Für die Überschrift der Spalten

$Fritzcache = "Zeitpunkt		Rufnummer	Name			auf 

und

Die Ausgabe der Zeilen

$Fritzlog.$date."	".$caller."	".$name."		".$route."		".$calltype."
"

Welche Möglichkeiten habe ich um das sauber auszugeben? Kann man irgendwie die Namensfelder mit Leerzeichen „auffüllen“ oder das alles als Tabelle ausgeben, wo sich die Zellen dann automatisch an die längste anpassen?
Mit den habe ich schon experimentiert, aber dann werden auch die verschoben, die eigentlich passen.

Gruß
Jens

Und wie genau?

Wenn du den Webbrowser verwendest kannst du ne Tabelle draus generieren.

Toni

Na ja, entweder wie jetzt auch … in einer Variable speichern und dann „formatiert“ ausgeben oder wie du schon vorgeschlagen hast als HTML Seite erstellen und dann per Webbrowser.
Dachte jetzt aber eher an die erste Variante, weil mir das nicht so aufwändig erschien. Werde mir aber mal die Möglichkeit ansehen um das über den Webbrowser zu lösen.

Tja, dann halt beim Namen ein drittes vorsehen oder die Message generell mit
auf zwei Zeilen aufteilen.

Gruß,

Toni

Also das mit dem habe ich schon versucht, aber komischerweise wird das dann bei allen anderen auch weiter verschoben … es bleibt also zerissen und auf 2 Zeilen ausgeben kommt nicht in Frage.
Dann werde ich wohl die Lösung mit dem Webbrowser wählen.

Tja, wenn kein Platz ist ist kein Platz. Das ist nicht komisch und da hilft dann natürlich auch nicht das einfügen eines weiteren Tabulators. Höchstens die Schrift kleiner zu machen.

Toni