System recognize ORICO 2599US3 as NORELSYS 106X USB. Case material: ABS/Rubber Oil.
Summary
Controller decreasing IOPS so it is not the best case for SSDs. If you put normal HDD there should not be big performance differences.
Tests results:
tosiek
webmajsterka, czyli wszystko co związane ze stronami internetowymi oraz PHP
System recognize ORICO 2599US3 as NORELSYS 106X USB. Case material: ABS/Rubber Oil.
Controller decreasing IOPS so it is not the best case for SSDs. If you put normal HDD there should not be big performance differences.
Tests results:
W tym wpisie pokażę jak zintegrować aktualizacje i sterowniki z obrazem systemu Windows 8.1 Update. Integracja ze starszymi systemami (7 oraz 8) wygląda identycznie, różnią się jedynie wersje programów dism oraz oscdimg do montowania obrazu install.wim oraz programu do tworzenia obrazów płyt ISO.
Lista potrzebnych narzędzi (pilnuj architektury, jeśli x64 to sterowniki i aktualizacje też muszą być x64):
Tworzymy np. na dysku D:\ lub na pulpicie (nie na systemowym C:\ bo nie będziemy mieć praw do zapisu i odczytu) 5 folderów:
Kopiujemy zawartość folderów DISM oraz Oscdimg do folderu tools. (cały czas musimy pamiętać o architekturze x64 lub x86)
Wszystkie ścieżki w opisie są podane jako D:\podfolder.
cd /d d:\tools |
dism.exe /mount-wim /wimfile:"D:\source\sources\install.wim" /mountdir:"D:\mount" /index:1 |
dism.exe /Image:"D:\mount" /Add-Driver /Driver:"D:\drivers" /Recurse /ForceUnsigned |
Może to trwać 10minut lub więcej.
W związku z powyższym będziemy każdą aktualizację instalowali z osobna, nie wskażemy całego folderu updates. Poniżej dwa polecenia w pętli, które dodadzą każdą aktualizację po kolei:
for /R D:\updates %f in (*.msu) do dism.exe /image:"D:\mount" /add-package /packagepath:"%f" for /R D:\updates %f in (*.cab) do dism.exe /image:"D:\mount" /add-package /packagepath:"%f" |
Jeśli mamy dużo miejsca można wskazać cały folder (odradzam), mogą wyskakiwać błędy przy końcowych aktualizacjach (np. przez brak miejsca na dysku):
dism.exe /image:"D:\mount" /add-package /packagepath:"D:\updates" |
dism.exe /Unmount-Wim /MountDir:"D:\mount" /commit |
Porzucenie zmian i odmontowanie można wykonać poleceniem (stracimy całą pracę i oryginalny obraz zostanie nietknięty):
dism.exe /Unmount-Wim /MountDir:"D:\mount" /discard |
dism.exe /Export-Image /SourceImageFile:"D:\source\sources\install.wim" /SourceIndex:1 /DestinationImageFile:"D:\mount\install.wim" /Compress:max |
Po kompresji musimy przenieść i zamienić plik install.wim z folderu D:\mount\ do D:\source\sources\ (kopiuj i zamień)
[EditionID] [Channel] OEM [VL] 0 |
oscdimg.exe -b"D:\source\boot\Etfsboot.com" -u2 -h -lWIN -m "D:\source" "D:\WIN.iso" |
Na przykładzie notebooka BenQ JoyBook P51E (P51) pokażę jak wydobyć BIOS w formacie ROM razem z programem do flashowania phlash16.
Wersja P51E to wersja europejska więc szukamy na stronie supportu BenQ np. malezyjskiego albo indyjskiego. Jest tam model JoyBook P51 bez E na końcu. W zakładce BIOS znajdziemy plik:
Joybook P51_[Joybook P51 BIOS v3A09]
adresy do supportu na stronie producenta:http://benq.co.in/page/?pageid=4&plid=18&pid=790&s=1
http://www.benq.com.my/page/?pageid=4&plid=18&pid=790&s=1
Uruchamiamy Joybook P51 3A09(2.0.0.6).exe uruchomi nam się BenQ QBIOS Flash, nic nie klikamy w okienku (tj. ani Next ani Cacnel). Przechodzimy do katalogu %temp% np.:
C:\Users\username\AppData\Local\Temp
szukamy folderu o składniowo podobnej nazwie “{5425C536-DCE4-4054-8C98-0827E3201A63}”, w którym znajdują się jeden folder np. “{C53D5269-00AD-4438-A314-58F9E0AF8C7F}” i plik corecomp.ini:
wchodzimy w podfolder i otwieramy plik BIOSFlash.ini. Musimy w nim ustawić wersję biosu wyższą niż mamy na laptopie, inaczej bios się nie wypakuje (można też podmienić model).
Oryginalny plik:
[Model] 01=Joybook P51 [BIOS] 01=Q3A09 |
po podmianie Q3A09 na Q3A10
[Model] 01=Joybook P51 [BIOS] 01=Q3A10 |
Zapisujemy i zamykamy plik.
Klikamy przycisk Next w okienku QBIOS Flash i czekamy (dość długo, nawet 10 minut). Jak pojawi się okienko Joybook Status nie klikaj nic:
tylko przejdź do folderuC:\Windows\Temp\BIOSFlashUpdate\BIOS
tam znajduje się plik PQVF.VFD, otwórz go za pomocą programu 7zip (plik .vfd da się otworzyć programem 7zip).
W środku będzie plik BIOS.rom oraz pliki do flashowania biosu phlash16.exe (wersja biosu Phoenix):
po wypakowaniu plików w okienku QBIOS Flash klikamy Cancel, jeśli klikniemy next to podmieni nam MBR także uważajcie!
Polecenie do flashowania Joybook P51 BIOS Q3A09:phlash16 /x /s /c BIOS.ROM
Jeśli ktoś chciałby dodać dodać SLIC do tego biosu to działa metoda SSV2 w narzędziu PhoenixTool Phoenix/DELL/EFI SLIC MOD v2.56. Nazwa pliku wynikowego nie może zawierać podkreślenia!
zła nazwa: BIOS_SLIC.rom
dobra nazwa: BIOS.rom
innej nazwy phlash16 nie odczyta.
Joomla 1.5 ma opcję tworzenia przyjaznych adresów dla wyszukiwarek (ang. SEF URL’s – Search Engine Friendly URL’s) jednakże posiada ona pewną niedoróbkę związaną z tworzeniem aliasów dla tytułów zawierających polskie znaki. Przy tworzeniu aliasu dla tytułu Joomla opuszcza po prostu wszystkie polskie znaki przykładowo nasz artykuł jest zatytułowany
“Pchnąć w tę łódź jeża lub ośm skrzyń fig”
powinien zostać przekształcony w alias w postaci tranliterowanej
pchnac-w-te-lodz-jeza-lub-osm-skrzyn-fig
lub z rzeczywistymi polskimi znakami
pchnąć-w-tę-łódź-jeża-lub-ośm-skrzyń-fig
natomiast domyślnie Joomla tworzy nam taki oto alias
pchn-w-t-od-jea-lub-om-skrzy-fig
przez co staje się nieczytelny i nie jest zgodny z oryginałem oraz traci swoje znaczenie.
Poniżej znajduje się lista dostępnych funkcji biblioteki cURL w PHP razem z opisami i przykładami użycia.
Całą tabelkę poniżej można przeciągać jak i resztę tabel także, wystarczy kliknąć i przytrzymać przycisk myszy.
Nazwa funkcji | Opis funkcji | Przykładowe użycie | |
---|---|---|---|
curl_init | Inicjuje sesję i zwraca uchwyt dla reszty funkcji. Przybiera jeden opcjonalny argument tj. adres URL, adres można zamiast tutaj podać w opcji “CURLOPT_URL”. |
| |
curl_setopt | Ustawia pojedynczą opcję dla zwykłej sesji cURL. |
| |
curl_setopt_array | Ustawia kilka opcji dla sesji curla na raz przy pomocy tablicy gdzie klucz to opcja a wartość to ustawienie dla tej opcji. |
| |
curl_exec | Wywołuje sesję curl_init z podanymi wcześniej parametrami, zwraca TRUE przy powodzeniu i FALSE przy nieudanym wywołaniu. Jeśli “CURLOPT_RETURNTRANSFER” zostanie ustawione na TRUE to ta funkcja zwróci zawartość strony przy udanym wywołaniu lub FALSE przy nieudanym. |
| |
curl_getinfo | Pobiera informacje o wykonanej sesji cURL i zwraca je w postaci tablicy. |
| |
curl_errno | Zwraca numer ostatniego błędu lub 0 (zero) w przypadku braku błędów. |
| |
curl_error | Zwraca opis i wiadomość dotyczącą ostatniego błędu. W celu upewnienia się, że błąd wystąpił użyj funkcji curl_errno , która zwraca 0 (zero) jeśli wszystko jest w porządku a po napotkaniu błędu, jego numer lub curl_exec z kolei ta zwraca FALSE przy błędzie. |
| |
curl_copy_handle | Kopiuje parametry danej sesji i zwraca w postaci nowego uchywtu sesji. |
| |
curl_close | Zamyka pojedynczą sesję cURL i zwalnia użyte zasoby (pamięć etc.). Usuwa takze uchwyt cURL $ch . |
| |
curl_multi_init | Inicjuje multi-sesję i zwraca uchwyt dla niej, nie przyjmuje żadnych argumentów. |
| |
curl_multi_add_handle | Dodaje zwykłą pojedynczą sesję cURL do jednej multi-sesji którą trzeba uprzednio utworzyć. |
| |
curl_multi_exec | Wywołuje i aktywuje multi-sesje, pierwszy parametr uchwyt multi-sesji stworzony za pomocą curl_multi_init a drugi informacja o tym czy jest aktywna ta multi-sesja. |
| |
curl_multi_select | Czeka aż wszystkie dane zostaną zwrócone przy wszystkich połączeniach multi-sesji lub aż upłynie czas timeout; zwraca -1 przy błędach. Przyjmuje dwa parametry, uchwyt multi-sesji oraz czas timeout. |
| |
curl_multi_info_read | Zwraca informacje o multi-sesji w tablicy z trzema kluczami; “msg” zwraca zawsze: ‘CURLMSG_DONE’, “result” zwraca jeden wynik spośród: ‘CURLE_*’; w przypadku powodzenia zwraca: ‘CURLE_OK’, “handle” zwraca uchwyt sesji cURL, której to informacje dotyczą. Powtórne wywołanie funkcji zwróci kolejne inne wyniki. Przyjmuje dwie wartości, pierwsza to uchwyt multi-sesji a druga to zmienna przechowująca ilość wiadomości w kolejce. |
| |
curl_multi_getcontent | Jeżeli “CURLOPT_RETURNTRANSFER” jest ustawione na TRUE to zwraca zawartość strony, jedyny argument to zwykła sesja pojedynczego – uchwyt cURL. |
| |
curl_multi_remove_handle | Usuwa sesję pojedynczego cURL z multi-sesji i umożliwia wykonanie curl_exec na zwolnionym uchwycie, po tym należy zamknąć multi-sesję oraz pojedyncze sesje żeby zwolnić użyte zasoby. |
| |
curl_multi_close | Kończy multi-sesję, nadal jednak należy usunąć zwykłe sesje z multi-sesji za pomocą curl_multi_remove_handle oraz zakończyć każdą zwykłą pojedynczą sesje cURL aby zwolnić zasoby. |
| |
curl_version | Zwraca informacje o cURL w postaci tablicy. |
|
Wartości jakie przyjmują funkcje razem z legendą oznaczeń:
Wszystkie opcje dotyczące nagłówków HTTP oraz typów zapytań POST, GET oraz HEAD jak i PUT.
Nazwa opcji | Domyślna wartość oraz typ wartości jakie przyjmuje | Opis |
---|---|---|
CURLOPT_AUTOREFERER | true (B) | wysyła nagłówek “Referer:” po napotkaniu przekierownaia i podążaniu za nagłówkiem “Location:” |
CURLOPT_CRLF | true (B) | true jeśli ma konwertować unixowe końce linii “\n”(LF) na “\r\n”(CRLF) w nagłówkach, transferach itp. |
CURLOPT_FOLLOWLOCATION | false (B) | podążaj za przekierowaniami i adresami w nagłówku “Location:”; uważaj bo moze to być nieskończona liczba przekeirowań jeśli “CURLOPT_MAXREDIRS” nie zostanie ustawione |
CURLOPT_HEADER | false (B) | umieszcza nagłówki HTTP zwrotne w wynikowych danych curla |
CURLINFO_HEADER_OUT | false (B) | nie jestem pewien ale chyba zwraca nagłówki HTTP przy wywołaniu curl_getinfo(); lub “śledzi uchwyt ciągu zapytania”? |
CURLOPT_HTTPGET | true (B) | true aby zresetować zapytanie do metody GET; wymagane tylko jeśli ta opcja została wcześniej zmieniona bo jest to ustawione domyślnie |
CURLOPT_NOBODY | false (B) | true aby wykluczyć główną część dokumentu (tj. body, to co po nagłówkami HTTP). Metoda zapytanai zmienai się na “HEAD”. Ustawienei tego na false nie mzienai metody zapytania na GET -> patrz “CURLOPT_HTTPGET” |
CURLOPT_POST | false (B) | ustaw na true aby wykonać regularne / zwykłe zapytnaie post i ustawic typ kodownaia danych na najbardziej popularny tj. “application/x-www-form-urlencoded” |
CURLOPT_PUT | false (B) | true aby wykonać polecenie PUT dla pliku poprzez HTTP; plik do wysłanai musi posiadac dwie opcje: “CURLOPT_INFILE” oraz “CURLOPT_INFILESIZE” |
CURLOPT_CUSTOMREQUEST | ” (S) | Niestandardowe zapytnaie HTTP do użycia zamaist zapytań ‘GET’ oraz ‘HEAD’. Jest to użyteczne gdy chcemy wykonać np. zapytanie ‘DELETE’ lub inne bardziej skomplikowane zapytania HTTP. Prawidłowymi wartościami są np. ‘GET’, ‘POST’, ‘CONNECT’ i tak dalej, nie należy wprowadzać całej linijki żądania. Przykładowo podanie ‘GET /index.html HTTP/1.0\r\n\r\n’ będzie błędem. Nie używaj tej opcji zanim nie upewnisz się czy serwer obsługuje dane zapytanie. |
CURLOPT_ENCODING | ” (S) | Zawartość nagłówka HTTP “Accept-Encoding:”. Włącza to dekodowanie odpowiedzi serwera. Wspierane kodowania to: ‘identity’, ‘deflate’ oraz ‘gzip’ np. ‘gzip, deflate’. Jeśli wartość jest pusta ” to wysyłany jest nagłówek zawierajace wszystkei obsługiwane typy. |
CURLOPT_POSTFIELDS | ” (S/A) | Pełne dane zapytania HTTP “POST”. Aby wysłać plik metodą POST należy poprzedzić jego pełną ścieżkę znakiem ‘@’ (ważne należy użyć bezwzględnej, pełnej ścieżki). Typ mime pliku można określić za pomocą parametru ‘type’ np. ‘@/home/file.txt; type=text/plain;’. Wartością dla tej opcji może być łanćuch składjący sie z kolejnych parametrów i ich wartości zakodowanych za pomocą urlencode() w postaci: ‘parametr1=wartosc1¶metr2=wartosc2&…’ można takze przekazać dane dla tej opcji w postaci tablicy przy czym klucz w tablicy to nazwa parametru a wartość to wartość tegożż parametru. Jeśli wartością dla tej opcji jest tablica nagłówek “Content-Type:” zostanie ustawiony i wysłany jako: “multipart/form-data”. Od wersji PHP 5.2.0 aby plik parsowany z prefixem w postaci ‘@’ został prawidłowo wysłany i zinterpretowany dane muszą być dostarczone w postaci tablicy. |
CURLOPT_REFERER | ” (S) | Zawartość nagłówka HTTP “Referer:” używanego przy zapytaniach. |
CURLOPT_USERAGENT | ” (S) | Zawartość nagłówka HTTP “User-Agent:” używanego przy zapytaniu. |
CURLOPT_HTTPHEADER | array(‘Content-type: text/plain’, ‘Content-length: 0’) (A) | Tablica z nagłówkami HTTP do wysłania przy wykonywaniu zapytania. |
Kodowanie polskich znaków to zapis konkretnego znaku w postaci bajtów rozumianych przez komputer, które następnie są zamieniane na wizualne litery i cyfry widoczne dla końcowego użytkownika. Do obsługi polskiego alfabetu zaleca się kodowanie UTF-8, jest ono wielobajtowym kodowaniem które to dla wszystkich narodowych i diakrytycznych znaków stosuje zapis za pomocą dwóch bajtów za wyjątkiem systemów pisma CJK to jest wywodzących się z pisma chińskiego, kodowanie utf8 obsługuje standard Unicode dla wszystkich znaków i języków świata. Kodowaniem – dość powszechnie stosowanym – z rodziny ISO/IEC które posiada obsługę polskich znaków jest ISO-8859-2; jest ono z reguły używane na starszych stronach i wspiera tylko kilka języków oraz ma bardzo ograniczony zakres znaków, które jest w stanie wyświetlić.
Najnowsze komentarze