PHP - Hexadezimale Werte an fwrite()

Gast #1479342
Lesenswert?

Hallo zusammen

Ich bin daran, mir ein php Skript zu schreiben, das von einer externen 
Hardware im Netzwerk Daten abfragen sollte.
Dazu muss ich ein Anforderungstelegramm schicken, doch das besteht aus 
Hexadezimalen Werten.
z.B.
62:01:03:01:00:45:54:00

Was gäbe es für Möglichkeiten, diesen Befehl einigermassen sauber an 
fwrite() zu übergeben?

Grüsse Alex
#1479370
Lesenswert?

Hm, mit fsockopen() http://www.php.net/manual/de/function.fsockopen.php 
eine "Datei" (also Netzwerkverbindung) öffnen und mit fwrite() 
http://php.net/manual/de/function.fwrite.php die gewünsche Zeichenkette 
schreiben?

Die Links enthalten bereits passable Codebeispiele, oder was fehlt Dir?

Nebenbei bemerkt, es wäre schön wenn man hier im Forum vernünftiger 
verlinken könnte - wozu immer die komplette Adresse anzeigen, das 
braucht doch kein Mensch ;-)
Persönliche Seite #1479514
Lesenswert?

Mir scheint, dem Threadstarter geht es eher darum, wie in PHP ein 
derartiger String erzeugt werden kann, um dann an fwrite übergeben zu 
werden.

PHP kennt viele von C her bekannte Funktionen, so auch das ehrwürdige 
printf.

http://www.selfphp.de/funktionsreferenz/string_funktionen/printf.php


  $a = 254;
  $b = 64;
  $c = 128;

  $text = printf("%02x:%02x:%02x", $a, $b, $c);

ergibt

  fe:40:80
Gast #1480497
Lesenswert?

So, ich habe es jetzt mal mit:

>$befehl = sprintf('%c%c%c%c%c%c%c%c', 98,1,3,1,0,69,84,0);
>fwrite($fs, $befehl);
>$ans = fread($fs, 11);
>echo $ans;
(Am Anfang natürlich noch der Verbindungsaufbau, welcher ohne Fehler 
geht)
Nach langem warten bekomme ich eine leere Seite zurück... Liegt das noch 
an meinem Befehl oder sollte das jetzt eigentlich richtig funktionieren?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren