short_open_tag
Chciałem zainstalować pewien skrypt. Tylko po to, aby się przyjrzeć pewnym funkcjonalnościom jakie powinny mieć systemy aukcyjne. Najlepszy do takich jest podobno phpAucton. Normalnie to to płatne jest. Ale na SF.net jest jakaś wersja dostępna. Po skopiowaniu plików ujrzałem piękny obraz.
WTF? Dlaczego kod PHP się nie wykonuje. Przejrzenie kodu, nic nadzwyczajnego. Patrzę znowu. a tam to okropieństwo w postaci <?. No tak. U mnie w php.ini krótkie tagi otwierające są wyłączone. Bo ja ich używam w prologu XML, więc lepiej by było, gdyby PHP mi nie parsował tego. A tutaj cały skrypt napisany w oparciu o krótkie tagi otwierające... Mówimy stanowcze nie i piszemy długą wersję, tak jak trzeba! Ale z tego co widzę to data plików to 2002 rok. Chyba mogę wybaczyć.
A jakość kodu też porażająca. Lepsze niż pewien inny skrypt jaki dziś widziałem, w którym niektóre momenty przypominały mi mój własny kod, też napisany w okolicach 2002-2003 roku. Kod, do którego się nie przyznaję teraz ;-)
To ja teraz coś napiszę, co mi <? na normalne <?php zamieni w tych pliczkach...
26 listopada 2006 21:50:58
Use sed, Luke q-;.
26 listopada 2006 21:51:03
Znajdź/Zamień w edytorze tekstowym? :D
26 listopada 2006 21:52:08
Gwoli ścisłości, o ile się nie mylę:
find -name '*.php' -exec sed -i -e 's/<?/<?php/g' {} ';'
26 listopada 2006 21:52:38
Kangel -- no ale to chyba w pojedynczym pliku daje rady a nie w paru nie?
26 listopada 2006 21:52:48
@Kangel: Tak, ale tych plików jest więcej. Jak bym miał każdy otwierać i w nim to zmieniać...
Lepiej będzie tak jak Peres mówi zastosować seda oraz find. Choć ja oryginalnie myślałem o for i sed ;-)
26 listopada 2006 21:53:14
JAK dużo? :)
26 listopada 2006 21:54:37
Patrz też: osCommerce z wymaganym RegisterGlobals, podobnie tandetnym momentami kretyńskim kodem i debilnym, zupełnie nie logicznym układem tabelek w bazie. Niby standard, a ja bym nawet te 3 lata temu lepiej to napisał.
o! I jeszcze kiedyś słynny J-Portal...
26 listopada 2006 22:01:31
E:\Marcin\>ktregexplister "E:\Marcin\!Projekty\WWW\Misc\phpauction" "php$" /r /s
(...)
Znaleziono 239 plikow
Czas wyszukiwania: 81 ms
Tak dużo.
26 listopada 2006 22:02:12
I nie chce ci się takiego lajtu robić? Mięczak...
:P
26 listopada 2006 22:02:39
Ale szpanujesz własnymi, powolnymi, ogólnie ssiącymi programami.
find -name '*.php' | wc -l
26 listopada 2006 22:04:15
Właśnie z bliżej nieznanych powodów find mi nie działa jak powinien. Aż się przyjrzę zaraz, bo tak być nie może.
I mam wrażenie, że będzie wolniejszy ;-)
26 listopada 2006 22:05:00
Pod Win to możliwe. Tam wykonywanie aplikacji jest tak *tragicznie* rozwiązane, że nawet bash się do użytku nie nadaje pod MinGW…
26 listopada 2006 22:14:20
To to chyba raczej wina portu.
Niemniej jednak find na każde "zapytanie" z -name odpowiada zwracaniem... niczego (nie, nie Nietzchego). Ale find | grep "php$" | wc -l odpowiedziało tym samym co i mój program.
26 listopada 2006 22:15:08
Może źle gwiazdkę eskejpujesz?
26 listopada 2006 22:20:52
Nie wiem, nie chce mi się dzisiaj z tym bawić.
Ale dzięki Michał za podpowiedź seda, zapomniałem o nim, i miałem klasy .NET do tego angażować :-)
26 listopada 2006 22:24:37
A jak nie sed, to Perl. Zawsze jest coś lepszego niż obrzydliwe .NET q-;.