Thread View: pl.comp.lang.php
12 messages
12 total messages
Started by JZ
Mon, 20 Aug 2001 08:21
Niedoróbki PHP na tle Perla
Author: JZ
Date: Mon, 20 Aug 2001 08:21
Date: Mon, 20 Aug 2001 08:21
21 lines
2026 bytes
2026 bytes
Nie wiecie czemu PHP tak kiepsko parsuje zmienne bardziej zlozone? Np.
Perl bez problemu sparsuje zmienne w napisie "To jest $arr[0][1] a to
jest $hasz{kucz}". Zas dla PHP trzeba to rozdzielac, nie da sie
wsadzic wszystko w jeden string. Czyli musi byc "To jest
".$arr[0][1]." a to jest ".$hasz{"klucz"}. To trochę denerwujące.
Tak samo zauważyłem, że instrukcje typu preg_match czy preg_replace
mimo, że mają być bardziej "perlopodobne" niz wcześniejsze ereg() i
ereg_replace() to i tak daleko im do faktycznej kompatybilnosci z
wyrażeniami regularnymi perla i jego przełącznikami. Czy konstruktorzy
PHP planują uzyskać większą kompatybilność z perlem poprzez stworzenie
3-ciej generacji funkcji o nazwach TerazNaprawdePerl_EregMatch()
Brakuje mi też operatorów =~ do wyrażeń regularnych i podziale
zmiannych na skalary, tablice i hasze (w PHP jest tylko $, w Perlu zaś
$, @, %) Pochwalić PHP mogę za prosto zrobioną obsługę sesji,
zmiennych w URL i klasy. No i syntax <?php ?> jest chyba pomyślany aby
pasował do XML, bo tam jest odpowiednia komenda dla XSLT która obrabia
polecenia <?prefix ?>
--
JZ programmer@[3585753410.cut]
Re: Niedoróbki PHP na tle Perla
Author: 7th Wojciech Jukowski
Date: Mon, 20 Aug 2001 09:45
Date: Mon, 20 Aug 2001 09:45
35 lines
1988 bytes
1988 bytes
witam, JZ wrote: > Tak samo zauważyłem, że instrukcje typu preg_match czy preg_replace > mimo, że mają być bardziej "perlopodobne" niz wcześniejsze ereg() i > ereg_replace()[..] spokojnie.. ereg to posix-like a preg perl-like. jakkolwiek jednak nie nazywac tego dziala nie najszybciej. zreszta jak podaje autor http://www.bagley.org/~doug/shootout/ korzystal wlasnei z perla w innych programach by wykorzystac wyrazenia regularne. > [..] 3-ciej generacji funkcji o nazwach TerazNaprawdePerl_EregMatch() :> ZTCP ktos chyba na pcws-s stwierdzil ze z php5 beda w zasadzie uzywane tylko dwie funkcje - make_portal() i earn_money() :> > Brakuje mi też operatorów =~ do wyrażeń regularnych i podziale zastepuje go strstr. > zmiannych na skalary, tablice i hasze (w PHP jest tylko $, w Perlu zaś > $, @, %) Pochwalić PHP mogę za prosto zrobioną obsługę sesji, > zmiennych w URL i klasy. i ja odczuwam nostalgie - niestety czasem nie ma sie wplywu na wybor srodowiska pracy. ps czy ten post nie jest bardziej s-s a nie php? chyba bedzie to pierwszy crosspost w druga strone :> -- wojciech.jukowski
Re: Niedoróbki PHP na tle Perla
Author: Aleksander Piotrowski
Date: Mon, 20 Aug 2001 10:09
Date: Mon, 20 Aug 2001 10:09
17 lines
1212 bytes
1212 bytes
On Mon, 20 Aug 2001 10:21:21 +0200, JZ <programmer@[3585753410.cut]> wrote:
> Perl bez problemu sparsuje zmienne w napisie "To jest $arr[0][1] a to
> jest $hasz{kucz}". Zas dla PHP trzeba to rozdzielac, nie da sie
> wsadzic wszystko w jeden string.
jestes pewien?
<?php
$tablica[0] = 'kasia';
print "aaaaaa{$tablica[0]}aaaaa";
?>
tylko sie nie czepiaj, ze trzeba dostawiac klamry ;p
alek
Re: Niedoróbki PHP na tle Perla
Author: Andrzej Kaczmarek
Date: Mon, 20 Aug 2001 10:13
Date: Mon, 20 Aug 2001 10:13
42 lines
2806 bytes
2806 bytes
JZ napisał(a):
> Nie wiecie czemu PHP tak kiepsko parsuje zmienne bardziej zlozone? Np.
> Perl bez problemu sparsuje zmienne w napisie "To jest $arr[0][1] a to
> jest $hasz{kucz}". Zas dla PHP trzeba to rozdzielac, nie da sie
> wsadzic wszystko w jeden string. Czyli musi byc "To jest
> ".$arr[0][1]." a to jest ".$hasz{"klucz"}. To trochę denerwujące.
echo "to jest{$arr[0][1]}";
> Tak samo zauważyłem, że instrukcje typu preg_match czy preg_replace
> mimo, że mają być bardziej "perlopodobne" niz wcześniejsze ereg() i
> ereg_replace() to i tak daleko im do faktycznej kompatybilnosci z
> wyrażeniami regularnymi perla i jego przełącznikami. Czy konstruktorzy
> PHP planują uzyskać większą kompatybilność z perlem poprzez stworzenie
> 3-ciej generacji funkcji o nazwach TerazNaprawdePerl_EregMatch()
A czego na przykład brakuje? Bo tych funkcji nie pisali autorzy PHP, ale
ktoś z zewnątrz - autor biblioteki PCRE, chyba najbardziej znanej biblioteki
do obsługi wyrażeń regularnych kompatybilnych z Perlem.
(polecam http://www.pcre.org)
> Brakuje mi też operatorów =~ do wyrażeń regularnych i podziale
Niestety, mi też :( Ale to już chyba wynika ze specyfiki tego jeżyka.
> zmiannych na skalary, tablice i hasze (w PHP jest tylko $, w Perlu zaś
> $, @, %)
Mi tam akurat pod tym względem odpowiada PHP, bo w Perlu nigdy nie pamiętam
co który 'krzaczek' oznacza
> Pochwalić PHP mogę za prosto zrobioną obsługę sesji,
> zmiennych w URL i klasy. No i syntax <?php ?> jest chyba pomyślany aby
> pasował do XML, bo tam jest odpowiednia komenda dla XSLT która obrabia
> polecenia <?prefix ?>
AFAIK to <? ?> są robione na wzór ASP (w końcu można nawet ustawić <% %>)
--
pozdrawiam,
Andrzej
Re: Niedoróbki PHP na tle Perla
Author: JZ
Date: Mon, 20 Aug 2001 10:52
Date: Mon, 20 Aug 2001 10:52
42 lines
2889 bytes
2889 bytes
On 20 Aug 2001 10:13:52 GMT, Andrzej Kaczmarek <ak@wroc.vulcan.pl>
wrote:
>echo "to jest{$arr[0][1]}";
Faktycznie z klamrami działa, ale po co wprowadzili taką zmianę
składni? Perl ich nie potrzebuje, nawet ich nie parsuje. Po co ta
zmiana. Trudniej jest przenosić kod między tymi językami.
>> Tak samo zauważyłem, że instrukcje typu preg_match czy preg_replace
>> mimo, że mają być bardziej "perlopodobne" niz wcześniejsze ereg() i
>> ereg_replace() to i tak daleko im do faktycznej kompatybilnosci z
>> wyrażeniami regularnymi perla i jego przełącznikami. Czy konstruktorzy
>> PHP planują uzyskać większą kompatybilność z perlem poprzez stworzenie
>> 3-ciej generacji funkcji o nazwach TerazNaprawdePerl_EregMatch()
>
>A czego na przykład brakuje?
Różnych przełączników i skrótów. Nie pamiętam, ale kiedyś testowałem
sobie różne złożone wyrażenia regularne z książki na ich temat
("Mastering...") i w PHP wiele rzeczy nie działało a w Perlu - tak.
Skoro wprowadzają zmiany do ereg i chwalą się że to działa tak jak w
Perlu to powinno być to dokładnie sprawdzone.
>>(w PHP jest tylko $, w Perlu zaś $, @, %)
>
>Mi tam akurat pod tym względem odpowiada PHP, bo w Perlu nigdy nie pamiętam
>co który 'krzaczek' oznacza
Bez przesady. $=skalar, @=tablica, %=hasz. Kod jest dzięki temu
czytelniejszy, a w PHP z samej deklaracji $ niewiele się dowiesz.
>AFAIK to <? ?> są robione na wzór ASP
W definicji XSLT masz funkcje parse_instruction() która przetwarza XML
zawierającego tagi <?prefix jakies instrukcje?>. Stąd można napisać
np. ładny kod XML przeplatany wstawkami PHP i potem to ładnie
przekształcać na coś innego. Robiłem szablon XML z którego za pomocą
XSLT generował mi się elegancki kod PHP i XHTML. W przypadku
nietypowych <%%> będzie to dosyć trudne.
--
JZ programmer@[3585753410.cut]
Re: Niedoróbki PHP na tle Perla
Author: JZ
Date: Mon, 20 Aug 2001 10:52
Date: Mon, 20 Aug 2001 10:52
16 lines
1570 bytes
1570 bytes
On Mon, 20 Aug 2001 11:45:08 +0200, 7th Wojciech Jukowski <wojciech@jukowski.com> wrote: >> Brakuje mi też operatorów =~ do wyrażeń regularnych i podziale > >zastepuje go strstr. Chyba żartujesz. Czujesz różnicę między funkcją a operatorem? I zdaje się, że niie obsługuje wyrażeń regularnych tylko proste stringi. Brakuje mi też operatorów q() , qq(), qw() itp. Dzięki nim nie trzeba mozolnie wstawiać backslasha przed każdym cudzysłowem. Nie mogę napisać $tmp = qq(<?xml version="1.0"?>) ale muszę $tmp = "<?xml version=\"1.0\"?>"; -- JZ programmer@[3585753410.cut]
Re: Niedoróbki PHP na tle Perla
Author: Aleksander Piotrowski
Date: Mon, 20 Aug 2001 11:02
Date: Mon, 20 Aug 2001 11:02
15 lines
1364 bytes
1364 bytes
On Mon, 20 Aug 2001 12:52:05 +0200, JZ <programmer@[3585753410.cut]> wrote: > Brakuje mi też operatorów q() , qq(), qw() itp. Dzięki nim nie trzeba > mozolnie wstawiać backslasha przed każdym cudzysłowem. Nie mogę > napisać $tmp = qq(<?xml version="1.0"?>) ale muszę $tmp = "<?xml > version=\"1.0\"?>"; jestes pewien? <?php $tmp = '<?xml version="1.0"?>'; ?> uwaga: tekst w ' nie jest parsowany. alek
Re: Niedoróbki PHP na tle Perla
Author: 7th Wojciech Jukowski
Date: Mon, 20 Aug 2001 12:35
Date: Mon, 20 Aug 2001 12:35
17 lines
1569 bytes
1569 bytes
witam, JZ wrote: > >zastepuje go strstr. > Chyba żartujesz. Czujesz różnicę między funkcją a operatorem? I zdaje > się, że niie obsługuje wyrażeń regularnych tylko proste stringi. ech. =~ zastepujesz zaleznie od potrzeb strstr, ereg, preg_replace. sugeruje poczytac manual dokladniej. faktycznie niektorych rzeczy z perla w pregach niema, jednak wiadomo ktorych. wydajnosciowo tez wychodzi gorzej ale dziala. wiem ze prosciej bylo po prostu pamietac =~ i zaleznie od potrzeb s m czy tr. w php jest tak a nie inaczej. jak sie niepodoba to mozesz nie uzywac. jeszcze troche to powstanie pl.comp.lang.advocacy :> -- wojciech.jukowski
Re: Niedoróbki PHP na tle Perla
Author: JZ
Date: Mon, 20 Aug 2001 14:07
Date: Mon, 20 Aug 2001 14:07
24 lines
1598 bytes
1598 bytes
On 20 Aug 2001 11:02:17 GMT, alek@piestrak.waw.pl (Aleksander
Piotrowski) wrote:
>> Brakuje mi też operatorów q() , qq(), qw() itp. Dzięki nim nie trzeba
>> mozolnie wstawiać backslasha przed każdym cudzysłowem. Nie mogę
>> napisać $tmp = qq(<?xml version="1.0"?>) ale muszę $tmp = "<?xml
>> version=\"1.0\"?>";
>
>jestes pewien?
<input type="text" value="tst" onclick="alert('alamakota');">
Teraz lepiej? :)
><?php
>$tmp = '<?xml version="1.0"?>';
>?>
>
>uwaga: tekst w ' nie jest parsowany.
No właśnie. :)
--
JZ programmer@[3585753410.cut]
Re: Niedoróbki PHP na tle Perla
Author: slawek-
Date: Mon, 20 Aug 2001 15:16
Date: Mon, 20 Aug 2001 15:16
7 lines
1196 bytes
1196 bytes
"Andrzej Kaczmarek" <ak@wroc.vulcan.pl> napisał: > AFAIK to <? ?> są robione na wzór ASP (w końcu można nawet ustawić <% %>) Rasmus by się w grobie przekręcił (gdyby nie żył) ;-)) slawek-
Re: Niedoróbki PHP na tle Perla
Author: Andrzej Kaczmarek
Date: Mon, 20 Aug 2001 17:01
Date: Mon, 20 Aug 2001 17:01
11 lines
1398 bytes
1398 bytes
slawek- napisał(a): >> AFAIK to <? ?> są robione na wzór ASP (w końcu można nawet ustawić <% %>) > > Rasmus by się w grobie przekręcił (gdyby nie żył) ;-)) Napisałem *AFAIK*, czyli pewny tego nie byłem. -- pozdrawiam, Andrzej
Re: Niedoróbki PHP na tle Perla
Author: rafal wiosna
Date: Mon, 20 Aug 2001 18:18
Date: Mon, 20 Aug 2001 18:18
13 lines
1619 bytes
1619 bytes
* JZ <programmer@[3585753410.cut]> wrote: > Brakuje mi też operatorów q() , qq(), qw() itp. Dzięki nim nie trzeba > mozolnie wstawiać backslasha przed każdym cudzysłowem. Nie mogę > napisać $tmp = qq(<?xml version="1.0"?>) ale muszę $tmp = "<?xml > version=\"1.0\"?>"; To kwestia przyzwyczajenia. Ja teraz nawet w zwykłym HTML-u piszę \"... -- __________________________________________________________________________ rafal wiosna * Polbox On-Line Service Sp. z o.o. * TDCIP * In ARP we trust RAFD-RIPE * PGP nyckeln finns tillgänglig pĺ www.se.pgp.net (ID: 3CDCB7A9)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads