andremh
Themenersteller
Beginner (14 Beiträge)

Problem bei Umstellung auf PHP 5.3

am 15.09.2012, 13:21 Uhr eröffnete andremh folgenden Thread
PHP & MySQL    1440 mal gelesen    4 Antwort(en).

Guten Tag,

seit der Umstellung auf PHP 5.3 seitens des Webhosters, kämpfe ich mit der Umstellung einiger "alten" Befehle!

Nur bei diesem Codeschnipsel hänge ich leider schon länger fest

for($f=0;$f<17;$f++){
$das = "m" ."$f";
if ($row[$das] == 1) { $temp[$x] = ereg_replace("name=\"fil\[$f\]\" value=\"1\" checked=\"checked\"", "name=\"fil[$f]\" value=\"1\"", "$temp[$x]"); }
}
if ($row[m117] == 1) { $temp[$x] = ereg_replace("name=\"fil\[117\]\" value=\"1\" checked=\"checked\"", "name=\"fil[117]\" value=\"1\"", "$temp[$x]"); }
if ($row[m118] == 1) { $temp[$x] = ereg_replace("name=\"fil\[118\]\" value=\"1\"", "name=\"fil[118]\" value=\"1\" checked=\"checked\"", "$temp[$x]"); }
if ($row[m119] == 1) { $temp[$x] = ereg_replace("name=\"fil\[119\]\" value=\"1\"", "name=\"fil[119]\" value=\"1\" checked=\"checked\"", "$temp[$x]"); }

alle Versuche bisher auf preg_replace umzuschreiben sind leider fehlgeschlagen!

Vielen Dank im vorraus
André


joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 15.09.2012, 14:51 Uhr schrieb joerg

Hallo André

andremh schrieb:

Guten Tag,

seit der Umstellung auf PHP 5.3 seitens des Webhosters, kämpfe ich mit der Umstellung einiger "alten" Befehle!



Das so auszudrücken empfinde ich als etwas unglücklich formuliert.

Persönlich würde ich mir echt wünschen das bei meinem Webhoster PHP 5.4 zur verfügung steht.

andremh schrieb:

alle Versuche bisher auf preg_replace umzuschreiben sind leider fehlgeschlagen!



Kann ich leicht nachvollziehen wenn man es sich mit Absicht selbst so schwer macht.

Dann versuche das mal so. Obwohl ich dabei noch anmerken möchte das mir jetzt nicht bewusst wird warum überhaupt eine unperfomante Funktion an diesen Stellen eingesetzt wird.

<?php
for($f=0;$f<17;$f++){
if ($row[\'m\'.$f] == 1) { $temp[$x] = preg_replace(\'#name="fil\\[\'.$f.\'\\]" value="1" checked="checked"#\', \'name="fil[\'.$f.\']" value="1"\',$temp[$x]); }
}
if ($row[\'m117\'] == 1) { $temp[$x] = preg_replace(\'#name="fil\\[117\\]" value="1" checked="checked"#\', \'name="fil[117]" value="1"\', $temp[$x]); }
if ($row[\'m118\'] == 1) { $temp[$x] = preg_replace(\'#name="fil\\[118\\]" value="1"#\', \'name="fil[118]" value="1" checked="checked"\', $temp[$x]); }
if ($row[\'m119\'] == 1) { $temp[$x] = preg_replace(\'#name="fil\\[119\\]" value="1"#\', \'name="fil[119]" value="1" checked="checked"\', $temp[$x]); }
?>


Dieses == 1 irritiert mich momentan handelt es sich dabei möglicherweise um einen boolean?

Warum die eckigen Klammern? Reichen da nicht die fortlaufenden Nummern zur Unterscheidung?

Ich weiss zwar nicht wo in deinem Kode die entsprechenden Stellen generiert werden. Aber bevor ich mit regulären Ausdrücken eine Ersetzung vornehme überlege ich es mir doch ob ich nicht durch setzen einer Variablen vorher schon eine Unterscheidung treffen könnte.

So ungefähr.

<?php
for($f=0;$f<17;$f++){
if ($row[\'m\'.$f] == 1) $checked = \'checked="checked"\';
echo \'<input name="fil\'.$f.\'" value="1"\'.$checked.\' />\';
}
?>


Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

andremh
Beginner (14 Beiträge)
am 15.09.2012, 15:13 Uhr schrieb andremh

Hallo Jörg,

vielen Dank für deine Antwort und deine prompte Hilfe!

Ich habe leider absolut keinen Plan von PHP und eigentlich auch nicht von der Programmierung!

Kann ich dich wieder behelligen, wenn ich mal wieder festhänge beim umschreiben des Scripts?

Mit freundlichen Grüßen
André



joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 15.09.2012, 16:05 Uhr schrieb joerg

andremh schrieb:

Ich habe leider absolut keinen Plan von PHP und eigentlich auch nicht von der Programmierung!

Kann ich dich wieder behelligen, wenn ich mal wieder festhänge beim umschreiben des Scripts?



Hallo André

Anhand der Möglichkeiten die PHP bietet würde ich auch von mir sagen das ich absolut keinen Plan von PHP habe.

Wenn du weiter an deinem Projekt was reissen möchtest bleibt es aber nicht aus sich damit vertraut zu machen.

Dauert halt eben ein Weilchen. Nehmen wir einfach mal die erste Seite die ich aufgebaut hatte vor knapp 2,5 Jahren. Nach weiteren 2 Jahren hatte ich diese überarbeitet und knapp 90% der Zeilen entfernt ohne weiteren Nachteil. Mir wurde im Grunde vor mir selbst schlecht wie bescheiden meine damaligen Kenntnisse waren.

Was die andere Frage betrifft würde ich eher sagen das ich bei allgemeinen Fragen wahrscheinlich zu einer Antwort bereit bin. So nach dem Motto ich suche eine Funktion die das ermöglicht. Oder erklärt mir mal die folgende Funktion.

Generell würde ich diese Frage nicht mit Ja beantworten weil das unter Umständen bedeuten kann 1000 Zeilen Kode sich zu Gemüte zu führen um den Fehler zu finden und diese Zeit möchte ich eher in eigene Sachen stecken.

Ausserdem besteht mit de.php.net im Grunde eine gute Möglichkeit sich PHP anzueignen. Und den grössten Fehler muss man eben vermeiden Kode einfach nur zu kopieren und nicht zu verstehen.



Zu dem Umbau deiner Zeilen.
Zum Einen solltest du dir anschauen wie die Syntax bei Verwendung von einfachen und doppelten Anführungszeichen aussieht. Genauer was passiert da mit Variablen.
Ich finde es immer sehr faszinierend wenn bei Verwendung doppelter Anführungszeichen im Grunde die notwendige Syntax von dem Einsatz von einfachen Anführungszeichen eingesetzt wird.

Dann solltest du weiter mit regulären Ausdrücken arbeiten informiere dich mal über Delimiter.

Das dritte Problem war das du bei dem Array die Keys nicht in Anführungszeichen gesetzt hattest.

Was ich mit allen ausdrücken möchte. Es wird dir nichts helfen dir nicht das notwendige Wissen über PHP anzueignen. Und an deiner Stelle würde ich eher versuchen im Forum deine Fragen zu stellen, denn es existieren hier einige die PHP etwas besser als ich beherrschen.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

andremh
Beginner (14 Beiträge)
am 15.09.2012, 16:17 Uhr schrieb andremh

Hallo Jörg,

auf jedenfall wird man von mal zu mal besser, und schliesslich ist ja auch kein Meister vom Himmel gefallen und Rom wurde auch nicht an einem Tag erbaut!

durch deine Hilfe bin ich ein grosses Stückchen weitergekommen, vielen Dank dafür!

Mit freundlichen Grüßen
André


  • 1


« zurück zu: PHP & MySQL

Das Seitenreport Forum hat aktuell 5273 Themen und 36107 Beiträge.
Insgesamt sind 48345 Mitglieder registriert.