Array in mehreren Scripten verwenden

Hallo,

ich habe eine Verbindung zu meiner Fritzbox aufgebaut, und lasse mir den aktuellen Anrufer in einer Variable anzeigen. Zusätzlich kann ich noch die Anfruferliste aus der Fritzbox laden. Bei beiden Scripte verwende ich ein Array mit einer Zuordnung von Telefonnummer und dazugehöriger Name. Z.B.

$array["Nummer"][1] = "017929****";
$array["Name"]  [1] = "Alex Handy";
$array["Nummer"][2] = "017929****";
$array["Name"]  [2] = "Tina Handy";

So, da ich die Liste nicht extra in beiden Scripten pflegen will, möche ich diese gerne auslagern. Ist das irgendwie möglich ?

Meine 2 Frage wäre, wie kann ich aus einem Script ein anderes Script ausführen lassen.

Gruß Alex

einfach So

cu.
uriel2006

Hi!
Du könntest doch aus deinem Array einen String machen z.B. in Form von
Nummer1;Name1;Nummer2;Name2;Nummer3;Name3

Den schreibst du dann in eine Variable und baust in deinem anderen script dann eine Funktion ein, die Variable wieder in ein Array zu wandeln.

Evtl. wäre es auch schön diese Daten in einer Datenbank (MySQL oder SQLite) zu haben. Dann könntest du sie besser verwalten, bearbeiten usw.
D.h. jedes Script holt sich die Daten selbst aus der Datenbank.

Ich persönlich würde den Weg Datenbank gehen. Dann könnte man evtl. auch eine Art Click&Dial Funktion ins WebFront einbauen usw.

Viele Grüße
Chris

hallo,
ich habs so gelöst:

Eine Datei „variablen.php“ mit (Bsp):

$var3 = 123;
$var2 = 456;
$Raum = Array („Bad“=> „xxx“, „Wohnzimmer“ => „YYY“);

hier kommen alle Werte rein, die ich zentral pfelgen will, dann mach ich am Anfang jedes scripts einen include, d.h. die werte stehen dann zur Verfügung.
Genaus so hab ich es mit funktionen gemacht, die ich überall brauche (Datum drehen etc) Achtung : innerhalb von Funktionen stehen die Variablen i.d.R nicht zur Verfügung (s. PHP Globale Variablen!)

include („C:/ipsymcon/pfad/variablen.php“);
Grüsse
gerhard

Hallo,

danke für die schnelle Antworten,

habe es so ählich die Gerhard geschrieben hat realisiert. Nur dass ich ein IPS-Script erstellt habe und dass dann als include eingebunden habe.
Somit kann man die Datei ganz einfach aus der IPS Verwaltungskonsole pflegen.

Das Script habe ich mit folgenden Befehl eingebunden.

include (IPS_GetKernelDir()."\\scripts\\49098.ips.php");

Danke

Gruß Alex

So würde ich die Namensliste in eine Variable packen

  $array["Nummer"][1] = "0000000000000";
  $array["Name"]  [1] = "TestName";

  SetValueString("Nummern",  implode(";", $array["Nummer"]));
  SetValueString("Namen"  ,  implode(";", $array["Name"]));

Das Herausziehen mittels „explode“ könnte dann so aussehen (geändert)

<?
$array["Nummer"] = explode (";", GetValue(51210 /*[ISDN-Telefon\Daten\Nummern]*/));
$array["Name"]   = explode (";", GetValue(33728 /*[ISDN-Telefon\Daten\Namen]*/));
echo $array["Nummer"] [1]; //Kontrolle
echo $array["Name"] [1];
?>

Hi!

Sehr praktisch in diesem Zusammenhang finde ich auch die serialize/unserialize-Funktionen von PHP. Damit lassen sich Variablen und Arrays in Strings umwandeln, die man dann z.B. in einer IPS-Stringvar. ablegen kann. Ich nutzte das für veränderliche Daten, die von einem Skript gewonnen werden und vielen anderen zur verfügung stehen sollen.

Mit einer externen Datei (sei es nun eine Datendatei oder auch ein IPS-Skript), welches automatisch ersetzt wird, hab ich Schiffbruch erlitten, da von Zeit zu Zeit das Erzeugerskript gleichzeitig mit einem der Benutzerskripte lief - dann hagelte es immer Zugriffsfehler, weil die Datei gesperrt war.

Ich mache es jetzt wie folgt:

Hier das Erzeugende Skript:


...
Skript das z.B. den Hash $config erzeugt
...

// Daten in IPS-Var. sichern
SetValue(12345, serialize($config));
?>

Und hier der Anfang eines Verwenderskripts:


<?
// Variable Daten laden
$config = unserialize(GetValue(12345));

...
Skript das mit den variablen Daten in $config arbeitet
...

Habe das so ähnlich gelöst, allerdings mit eigener XML-Struktur. War für mich beim debuggen übersichtlicher zu lesen.

Allerdings benutze ich keine String-Variable, sondern den Buffer einer RegisterVariable. Hat finde ich den Vorteil, das bei Änderungen die Logmeldungen nicht zugemüllt werden.

Hallo,

also ich mach das über ein Text Datei, die lese ich bei Anruf ein (csv Funktion von PHP) und arbeite dann mit den Rufnummern.

Schöne Grüße
Thomas