|
Jak programowo wykryć wersje php i wersje innych komponentów podłączonych do biblioteki php? |
System PHP składa się z różnych cegiełek, które można dowolnie przeglądać ze strony internetowej z poziomu funkcji phpinfo
otwierając tą funkcją stronę i badając jej zawartość można programowo stwierdzić jakie cegiełki i jakie wersje są zainstalowane - można to poprostu zautomatyzować wywołując funkcję phpinfo() i pobrać tą stronę zawierającą taką instrukcję przez file_get_contents a następnie szukać kluczowych wyrazów związanych z danym rozszerzeniem. Załóżmy, że chcemy sprawdzić za pomocą skryptu czy jest zainstalowana biblioteka ming. Jest to biblioteka umożliwiająca tworzenie obrazów flash za pomocą php.
tworzymy plik o nazwie kontrolka.php o następującej zawartości:
tworzymy drugi plik sprawdzam_system.php ze skryptem, który ma wykrywać czy w pliku kontrolka.php jest zawarte słowo ming co będzie świadczyło, że biblioteka ming jest zainstalowana
Powyższa sytuacja jest całkowicie fikcyjna ale mozliwa do zrobienia. Natomiast istnieją jeszcze inne mniej lub bardziej znane sposoby na zbadanie dostępności rozszerzeń lub bibliotek php.
Można również wyświetlić dodatkowe informacje w samym phpinfo stosując parametry np. phpinfo(INFO_MODULES). Standardowe phpinfo() z pustymi nawiasami jest równoważne phpinfo(INFO_ALL).
Mozna również użyć wyspecjalizowanych instrukcji służących właśnie do tego celu takich jak get_loaded_extensions() czy get_extension_func. Istnieje wiele dróg dotarcia do celu natomiast ta pierwsza dla początkującego webmastera wystarczy.
Na koniec ciekawa funkcja wykrywająca czy na serwerze jest dostępny tzw. moduł Zend Engine oraz w jakiej wersji.
mozna też zastosować function_exists jeśli wiesz jakie funkcje zawiera dana biblioteka
więcej o phpinfo dowiesz się ze strony: polskie tłumaczenie podręcznika php