Komputery, Windows i masa kompletnego bałaganu. Tak, to mój dziennik.

ktos.jogger


short_open_tag

26 listopada 2006, 21:49:48. Kodowanie , 1.

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.

Kod PHP wyświetlony na stronie, przemieszany z kodem HTML, tak jak by parsowanie nie zadziałało.

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...

Komentarze

  1. Michał Górny
    26 listopada 2006 21:50:58

    Use sed, Luke q-;.

  2. Kangel
    26 listopada 2006 21:51:03

    Znajdź/Zamień w edytorze tekstowym? :D

  3. Michał Górny
    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' {} ';'

  4. PeCet
    26 listopada 2006 21:52:38

    Kangel -- no ale to chyba w pojedynczym pliku daje rady a nie w paru nie?

  5. Ktos
    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 ;-)

  6. Kangel
    26 listopada 2006 21:53:14

    JAK dużo? :)

  7. Speedy
    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...

  8. Ktos
    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.

  9. Kangel
    26 listopada 2006 22:02:12

    I nie chce ci się takiego lajtu robić? Mięczak...
    :P

  10. Michał Górny
    26 listopada 2006 22:02:39

    Ale szpanujesz własnymi, powolnymi, ogólnie ssiącymi programami.

    find -name '*.php' | wc -l

  11. Ktos
    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 ;-)

  12. Michał Górny
    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…

  13. Ktos
    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.

  14. Michał Górny
    26 listopada 2006 22:15:08

    Może źle gwiazdkę eskejpujesz?

  15. Ktos
    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ć :-)

  16. Michał Górny
    26 listopada 2006 22:24:37

    A jak nie sed, to Perl. Zawsze jest coś lepszego niż obrzydliwe .NET q-;.

Zostaw komentarz

W komentarzach dozwolona jest składnia Markdown do formatowania.