Istnieją pewne różnice między PHP.net a implementacją PHP, które są udostępniane przez produkt IBM Integration Bus.
Różnice dla poszczególnych funkcji są przedstawione w poniższych tabelach.
Tabela 1. Funkcje produktu MySQL
Funkcja |
Różnice |
Pole mysql_fetch_field |
Sprawdza rozróżnienie między typami, które są zwracane z TINYTEXT i VARCHAR. Jeden jest blob, drugi to łańcuch. Ta implementacja zwraca obie wartości jako VARCHAR, dlatego nie jest możliwe rozróżnienie między nimi. Wywołanie zwraca maksymalną długość zdefiniowaną w bazie danych, a nie maksymalną długość, która jest używana. Na przykład:(VARCHAR[50] xyz = abc) Zawiera 3 w PHP.net i 50 w IBM Integration Bus PHP. |
Tabela 2. Funkcje klasy String
Funkcja |
Różnice |
krypta |
Niedostępne w systemie Windows. |
Parametr html_entity_decode |
Powoduje wyświetlenie ostrzeżenia, jeśli określona wskazówka zestawu znaków nie jest równa UTF8. |
obiekty htmlentities |
Powoduje wyświetlenie ostrzeżenia, jeśli określona wskazówka zestawu znaków nie jest równa UTF8. |
htmlspecialchars |
Powoduje wyświetlenie ostrzeżenia, jeśli określona wskazówka zestawu znaków nie jest równa UTF8. |
Tabela 3. Funkcje obsługi sesji
Funkcja |
Różnice |
Funkcje obsługi sesji |
Obsługa opcji INI sesja.use_trans_sid nie jest obsługiwana. |
Tabela 4. Funkcje systemu plików
Funkcja |
Różnice |
Wszystkie funkcje systemu plików |
Tryb bezpieczny nie jest obsługiwany. |
clearstatcache |
Nie istnieje żadna pamięć statcache, dlatego funkcja ta nie ma żadnego efektu. |
stado |
Nie można użyć stada (, LOCK_EX) w celu uzyskania blokady na wyłączność dla pliku, który jest otwierany jako tylko do odczytu, chyba że masz również uprawnienia do zapisu do pliku; nie oznacza to, że musisz otworzyć plik w trybie zapisu, tylko to, że masz do tego uprawnienia. Jeśli użytkownik nie ma uprawnień do zapisu i zwracana jest wartość False, co oznacza, że nie uzyskano żadnej blokady, zostanie wygenerowane ostrzeżenie. |
fopen |
Środowisko wykonawcze PHP.net wysyła komunikat "No such file or directory", gdy w fopen używany jest nieprawidłowy tryb, podczas gdy program IBM Integration Bus PHP wysyła komunikat mówiący o tym, że jest to tryb nieprawidłowy. |
fseek |
Gdy używane są tryby fopen i file z opcją "t" w systemie Windows (tłumaczenie Windows), fseek nie działa w ten sam sposób, co środowisko wykonawcze PHP.net. |
realpath |
Funkcja realpath () nie wykrywa zmian nazw plików, które były wcześniej dowiązaniami symbolicznymi z powodu pamięci podręcznej nazw plików kanonicznych w środowisku Java™. Aby zreplikować zachowanie w PHP, można uruchomić maszynę JVM zDsun.io.useCanonCaches=false |
Tabela 5. BCMath Arbitralna Precyzja funkcje matematyki
Funkcja |
Różnice |
Wszystkie funkcje BCMath arbitralnej precyzji matematyki |
IBM Integration Bus PHP podnosi wartość E_WARNING, podczas gdy PHP.net zapisuje ostrzeżenie do STDERR. |
bcmul |
IBM Integration Bus PHP nie obcinać zer końcowych. |
bcpow |
IBM Integration Bus PHP nie obcinać zer końcowych. |
bcpowmod |
Program IBM Integration Bus PHP nie obsługuje zer końcowych, gdy używana jest skala inna niż 0. |
Tabela 6. Funkcje sieciowe
Funkcja |
Różnice |
fsockopen |
Argument wyjściowy errno nie jest obsługiwany. Argument errstr nie jest obsługiwany. Zaszyfrowane strumienie (SSL i TLS) nie są dostępne. |
Tabela 7. Funkcje klasy Array
Funkcja |
Różnice |
Wszystkie funkcje macierzowe |
Podczas sortowania pozycji tablicy, które mają równą wagę w użyciu algorytmu sortowania, wynikowa tablica może zawierać pozycje w innej kolejności niż algorytmy sortowania używane przez PHP.net. Na przykład: sortowanie SORT_NUMERIC wartości "a", "b", "c". |
Tabela 8. Funkcje łańcuchowe wielobajtowe
Funkcja |
Różnice |
Wszystkie funkcje łańcuchowe wielobajtowe |
Jeśli zostanie podane poprawne kodowanie dla danych znakowych i jeśli dane znakowe są poprawne, funkcje mb_ * działają w ten sam sposób, co MBString. Brak gwarancji, że dane wyjściowe są takie same jak w przypadku wartości MBString, jeśli dane znakowe nie są poprawne lub jeśli nie określono poprawnego kodowania. Na przykład w przypadku komendy mb_substr, jeśli użytkownik przejdzie do systemu i zdefiniuje go jako UTF-32 , gdy jest on rzeczywiście ASCII lub UTF-8, nie zostanie on taki sam, jak PHP.net. |
mb_convert_encoding, |
Nie obsługuje tablicy lub łańcucha zawierającego wiele kodowań, a automatycznie jest przekazywany jako wartość atrybutu from_encoding. W tych przypadkach generowane jest ostrzeżenie PHP. |
Tabela 9. Funkcje wykonywania programu
Funkcja |
Różnice |
Wszystkie funkcje wykonywania programu |
IBM Integration Bus PHP nie obsługuje trybu Safe. |
proc_open |
IBM Integration Bus PHP nie obsługuje dodatkowych opcji, które są określone przez opcjonalny szósty parametr. |
proc_terminate |
IBM Integration Bus PHP nie obsługuje wysyłania sygnałów do procesu potomnego, jak określono w opcjonalnym drugim parametrze. |
proc_get_status |
Ta funkcja nie jest obsługiwana przez program IBM Integration Bus PHP. |
Tabela 10. Obsługa błędów i funkcje rejestrowania
Funkcja |
Różnice |
Dziennik błędów |
Nie obsługuje atrybutu message_type o wartości 1 (email). Ostrzeżenie jest wysyłane, a funkcja zwraca fałsz. |
Tabela 11. Funkcje strumienia
Funkcja |
Różnice |
stream_get_meta_data, |
Pole nieprzeczytanych bajtów (używane wielkości buforu) w zamian nie zawsze jest takie samo dla strumieni plików, ponieważ implementacja strumienia plików nie używa buforów. |
stream_context_create |
Obsługa kontekstów strumieni jest ograniczona. Typ strumienia HTTP obsługuje tylko opcje nagłówka, metody, limitu czasu i treści. |