Mailinglisten-Archive |
Alexander Rudyk schrieb am Sonntag, den 15. August 1999: > > Aber was ist da Deiner Meinung nach unter php3 schlechter als > > sonst? [...] > 1. In einigen anderen Mails in der Liste angesprochene Besonderheiten > (Performanceauffaelligkeiten und zuviele Elemente in $regs) Hmm, habe ich irgendwie nicht mitbekommen (konnte aber auch nicht alles mitlesen). Ich werd' mal im Listenarchiv nachsehen. > 2. Warum funktioniert folgendes in Perl und in PHP3 nicht? > Ich will alle HTML-Tags, also alles zwischen < und > ueberall im > Text entfernen. Theoretisch muesste es ein > > $blah = ereg_replace("<(.*)>","",$blah); > > ja tun. So geht das aber weder in Perl noch in PHP, da der *-Operator sich immer so viel wie möglich nimmt. Ab Perl 5 geht *?, um so kurz wie möglich zu passen, und das hat man mit den preg-Funktion in PHP auch zur Verfügung. > 3. Im Vergleich zu Perl sind eregs mit den ganzen Funktionen unnoetig > kompliziert und umstaendlich... > > Perl: $blah = /dashierwird/dasda/g; > PHP3: $blah = ereg_replace("dashierwird","dasda",$blah); In der Perl-Zeile muß =~ stehen, damit es funktioniert! Eher vergleichbar sind diese Zeilen: Perl: ( $neu = $alt ) =~ s/muster/ersatz/g; PHP3: $neu = ereg_replace('muster','ersatz',$alt); Bei der Frage, welcher Ansatz besser ist, bin ich recht unentscheiden, denn ich programiere ziemlich viel in Perl und schätze da auch die syntaktische Kürze. Aber: Solche Seltsamheiten wie die Bindung per =~ und daß zum Beispiel ein unscheinbarer Optionsbuchstabe das ganze Verhalten der Substitutionsfunktion komplett ändern kann, sorgen dafür, daß Perl langsamer erlernbar ist als PHP und es auch besonders leicht ist, unverständlichen Code zu schreiben. (Ja, ich weiß, daß das immer möglich ist :). Da ist die Funktions-Syntax in PHP klarer, wenn auch umständlicher. Und wenn's unbedingt nötig ist, könntest Du Dir ja eine Funktion s() definieren, die sich änhlich wie Perls s/// verhält: $neu = s($alt,'/muster/ersatz/opt'); Ist nicht allzu schwer zu bauen ... Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ > PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7
php::bar PHP Wiki - Listenarchive