Nach update auf 2.6 ein kleines Problem.

Hallo

Ich habe gestern auf die 2.6 upgedatet,
Jetzt habe ich Probleme mit einer Funktion:

im log steht das:
Unbenanntes Objekt (ID: 44044)] =
Unknown error (8192): Function split() is deprecated in - on line 2
[0] in function split in - on line 2

und das ist der fehlerhafte Script, der seit der 2.6 nicht mehr richtig lauft:


$x = GetValueString(27814);
list($a,$b) = split(",", $x);
$a = hexdec($a);
$b = hexdec($b);
SetValueFloat(27400, $a);
SetValueFloat(43908, $b);

In den Änderungen habe ich keine hinweise gefunden warum der Split befehl nicht mehr laufen sollte.
Kann mir jemand einen tip geben wie das ganze mit der 2.6 jetzt gemacht werden kann.

Gruss Andreas

Das ist einfach eine Nebenwirkung der neueren PHP Version.

Du kannst anstelle von split nun explode verwenden. Falls du reguläre Ausdrücke benötigst musst du aber zu preg_split greifen. Dies ist aber in deinem Beispiel nicht nötig.

$x = GetValueString(27814); 
list($a,$b) = explode(",", $x); 
$a = hexdec($a); 
$b = hexdec($b); 
SetValueFloat(27400, $a); 
SetValueFloat(43908, $b); 

Schau mal hier: Klick

Versuch alternativ explode.

Gruß,

Toni

Hallo

So einfach ist das irgendwie nicht, ich habe das mal gemacht:

$x = GetValueString(27814);
//$x = GetValue(27814);
SetValue(51953, $x); //  test !!!!  ob  in $x was ankommt !!
//list($a,$b) = split(",", $x);
list($a,$b) = explode(",",*$x);
$a = hexdec($a);
$b = hexdec($b);
SetValueFloat(27400, $a);

Und 51953 wird nicht geschrieben. diese Version gibt ein Parse error in zeile 5

in 27814 steht z.Z. „4E28,0“

Gruss Andreas

Versteh deinen Code nicht so recht. Scheint mir auch zu kompliziert zu sein.

Einfach und schlank würd ich das so machen:


<?
  $x = "4E28,0";  // GetValueString(27814);
  $x = explode(",", $x);
  print hexdec($x[0]).','.hexdec($x[1]);  // 20008,0
?>

Toni

Edit:

Ah, nach deinem Edit wirds schon klarer, aber es sind immer noch zu viele Sternchen drin :wink:

Hallo

So lauft.

bin noch dabei herauszufinden woran es lag…

$x = GetValueString(27814);
//$x = GetValue(27814);
SetValue(51953, $x); //  test !!!!  ob  in $x was ankommt !!
//list($a,$b) = split(",", $x);
list($a,$b) = explode(",",*$x);
list($a,$b) = explode(",", $x);
$a = hexdec($a);
$b = hexdec($b);

zeile 5 und 6 scheinen sich nicht zu unterscheiden ! tun sie aber , ich speichere den Post einmal und dann gibt es einen unterschied

das hat sich ein * eingeschlichen !
aber der * ist in der ip-symcon console nicht zu sehen.
erst hier im forum wurde der sichtbar .

die zeile habe ich von eine kumpel, per msn bekommen. und 1:1 übertragen.

erst als ich die Zeile von nachgetippt habe , ging es dann.
im log steht dann das:
\Unbenanntes Objekt (ID: 44044)] = Parse error: syntax error, unexpected ‚$x‘ (T_VARIABLE) in - on line 5

ist das dann ein bug in der 2.6 ???

Gruss Andreas

Zwischenablage-1.jpg

Hallo

ein test, ich nehme das , was ich per msn vom kumpel bekommen habe,
kopiere das mit Strg-C und schreibe es hier mit Strg-V wieder rein:
list($a,$b)*=explode(",",$x);

list($a,$b)*=*explode(",",*$x); 

jetzt sieht das so aus:
nach dem speichern wird dann das daraus.

Gruss Andreas

Nach update auf 2.6 ein kleines Problem. - Antworten.jpg


list($a,$b) = explode(",",*$x);
list($a,$b) = explode(",", $x);

zeile 5 und 6 scheinen sich nicht zu unterscheiden ! tun sie aber

Stimmt. Und das sogar sehr offensichtlich. Irgendwie verstehe ich das Problem grad nicht. Nimm die Sternchen doch einfach raus - Alle.

Toni

autsch…Code in Events… das ürd ich vermeiden, wenn es geht :wink:

würde ich so nicht sagen. Es hat seinen Reiz und sogesehen keinen Nachteil :slight_smile:

Seit der 2.6 wird auch bei Fehlern das passende Event im Log angegeben.

paresy

Hallo

Wie nimmst du Sternchen raus die du nicht siehst !
in der console sind sie unsichtbar, wie man am Screenshot sehen kann
nur durch zufall, weil ich das hier gepostet habe, bin ich der sache auf der spur gekommen.

Ich schrieb ja , das es jetzt lauft, aber das ganze soll als hinweis gelten, da das selbe ja jederzeit wieder passieren kann.
ich bekomme das nächste mal wieder eine Zeile von meinem Kumpel, und trage die ein.
dann schleichen sich da wieder die * rein , die man aber nicht sehen kann, und ich suche mir dann nen wolf.

hier nochmal zum vergleich:Zwischenablage-2.jpg

und das hier per Strg-C und Strg-V:

$x = GetValueString(27814);
//list($a,$b)*=*explode(",",*$x); // per msn
//list($a,$b) = explode(",",*$x);
list($a,$b) = explode(",", $x);

Gruss Andreas

Na wenn man sich gar nicht zu helfen weiss tippt man die Zeile einfach auf der Tastatur und versucht es zu vermeiden das Sternchen dabei zu berühren. :confused:

Ich steh echt auf dem Schlauch grad - ist das dein voller Ernst? Sorry… :confused:

Edit:

BTW: Du hast schon wieder nicht alle Sternchen erwischt…

ach guck, hatte ich nicht mitbekommen. Der Nachteil wäre nämlich die fehlende Event-ID im Log gewesen. Ich hab mir da schon mehrere Wölfe gesucht und nutze es daher nur noch im Ausnahmefall…
Ok, dann ziehe ich alles zurück und behaupte das Gegenteil :smiley:

Hallo

Na klar, kann man das machen, alles nach tippen. (wenn man das weiß) aber eigentlich bin ich tipfaul.

und wer sagt dir den, das wenn du das nächste mal einen tolles Sript im Forum siehst , was 2-3 Seiten lang ist
und du das gerne übernehmen möchtest, tippst du dann auch alles von Hand ab ?!? ich nicht.

Gruss Andreas

Das Forum fügt auch keine Phantom-Zeichen ein.

Offenbar kann MSN nicht gut mit Leerzeichen umgehen und escaped die in irgend einer Form. Das liegt dann an MSN, nicht an IPS und nicht am Forum.

Man könnte jetzt auch hingehen und alle Leerzeichen, die einem verdächtig vorkommen einfach löschen. Oder man fragt mal im MSN Forum (gibts sowas?) wie man das Verhalten abschalten kann.

Toni

Hallo

mein alternativer msn Client hat ein geschütztes Leerzeichen \u00A0 dazu gefügt.

//list($a,$b)\u00a0=\u00a0explode(",",\u00a0$x);
wie auch immer, kleine Ursache , große Wirkung.
auf jeden fall lauft wieder alles.:smiley:

Gruss Andreas