Spis Treści



Pobieranie 4.28 Mb.
Data29.04.2016
Rozmiar4.28 Mb.

Spis Treści


Spis Treści 1

Wstęp 26

Dla kogo jest przeznaczona ta książka 26

Konwencje 26

Omówienie książki 26

Od autora 27

Przykłady kodu 27

Czym jest PHP 27

Dlaczego powinieneś użyć PHP 28

Gdzie szukać pomocy 28

Podziękowania 29

O autorze 29



Rozdział 1. Kompilacja i instalowanie PHP 30

Wstęp 30


Pobieranie PHP 30

Instalowanie wersji binarnej 30



Binarna instalacja dla Windows 30

Instalowanie PHP w postaci modułu ISAPI 31

Użycie PHP jako CGI 33

Inne instalacje binarne 33

Kompilowanie PHP 34



Kompilowanie PHP w Uniksach 34

Kompilacja modułu CGI 34

Kompilacja PHP jako statycznie dołączanego modułu Apache 36

Kompilacja PHP do postaci dynamicznie ładowanego modułu Apache 36

Podsumowanie kompilacji PHP w systemach Unix 37

Kompilowanie PHP w środowisku Windows 37

Podsumowanie kompilacji PHP 39

Konfigurowanie PHP 39



Korzystanie z pliku php.ini 39

Inne metody zmiany konfiguracji PHP 40

Podsumowanie 41



Rozdział 2. Język 42

Wstęp 42


Ogólne informacje na temat składni 42

Typy 43


Liczby — całkowite i zmiennoprzecinkowe 43

Ciągi 43

Tablice 44

Zmienne i stałe 45



Zmienne predefiniowane 46

Zasięg zmiennych 49

Stałe 50

Operatory i kolejność operatorów 50

Programowanie przepływu sterowania 51

if, else, elseif 51

while 51

do .. while 51

for 52

foreach 52

switch 52

break i continue 54

include i require 55

Funkcje 55



Klasy i programowanie obiektowe 56

Porównywanie wzorców 58



Podsumowanie 58

Rozdział 3. Formularze i cookie 59

Wstęp 59


Obsługa formularzy w PHP 60

Skalarne i wielowartościowe elementy formularza 60

Alternatywne metody odczytywania wartości z formularza 61

Użycie formularzy do przesyłania plików 64

Użycie rysunku jako przycisku wysłania danych 64

Kontrola poprawności danych formularza 65



Kontrola danych za pomocą wyrażeń regularnych 65

Kontrola poprawności za pomocą sprawdzania typów 66

Klasa Validator 67

Cookie 68

Ważne zagadnienia programowania dla WWW 69

Obsługa nieprawidłowych danych 69

Obsługa i formatowanie wyświetlanych danych 71

Podsumowanie 76



Rozdział 4. Operacje na plikach 77

Wstęp 77


Odczyt i zapis plików 77

Użycie gniazd 78

Użycie potoków 79

Klasa File 80

Podsumowanie 80

Rozdział 5. Wysyłanie plików przez formularz 81

Wstęp 81


Wysyłanie pojedynczego pliku 81

Pułapki 83

Przesyłanie wielu plików 83

Bezpieczeństwo 84

Podsumowanie 85

Rozdział 6. Współpraca z bazami danych 86

Wstęp 86


Wprowadzenie 86

Funkcje baz danych 86

MySQL 87

Rozpoczynamy pracę z MySQL 87

Użycie MySQL 87

ODBC 90


Podstawy ODBC 90

Instalowanie i kompilowanie unixODBC 91

Kompilowanie PHP z obsługą unixODBC 91

Instalowanie sterownika OOB 91

Konfigurowanie OOB 91

Korzystanie z ODBC 92

PHPLIB 93

Przechowywanie danych z formularzy 94

Wykorzystanie możliwości bazy danych 96

Podsumowanie 97

Rozdział 7. Sesje i stan aplikacji 99

Wstęp 99


Podstawy mechanizmu sesji 99

Wbudowany w PHP mechanizm zarządzania sesjami 100



Rozpoczęcie pracy z sesjami w PHP 100

Przesyłanie identyfikatora sesji bez użycia cookie 102

Zapisywanie zmiennych sesji w bazie danych 104

Inne funkcje i opcje dotyczące sesji 108

Użycie PHPLIB do obsługi sesji 109

Tworzenie własnego mechanizmu sesji 111

Inżynieria programowania a sesje 111

Podsumowanie 113

Rozdział 8. Uwierzytelnianie 114

Wstęp 114

Podstawowe uwierzytelnianie w Apache 114

Aktualizacja pliku .htaccess przy użyciu PHP 116

Podstawowe uwierzytelnianie za pomocą PHP 119

Kompletny system uwierzytelniania oparty o PHP 120

Podsumowanie 124

Rozdział 9. Niezależność od przeglądarki 125

Wstęp 125

Rozpoczynamy 125

Wewnętrzne funkcje PHP 126



Dodatkowe informacje na temat Browscap 126

BrowserHawk 129

Wykorzystanie danych o przeglądarce 133

Podsumowanie 134



Rozdział 10. Uruchamianie 135

Wstęp 135

Inżynieria programowania a uruchamianie 135

Projekt aplikacji 135

Definiowanie standardów programowania 136

Przegląd oprogramowania 136

Testowanie 137

Uruchamianie 137

Programowanie defensywne 138

Własna obsługa błędów 142

Zaawansowana obsługa błędów 145

Podsumowanie 149

Bibliografia 150



Rozdział 11. Ponowne wykorzystanie kodu 151

Wstęp 151

Ponowne wykorzystanie kodu a inżynieria programowania 151

Ponowne użycie istniejącego kodu 152



PHP 152

C/C++ 153

Java 158

Dodawanie obsługi Javy w PHP na *niksach 158

Dołączanie obsługi Javy w PHP dla Windows 159

Opcje konfiguracji Javy 159



COM 161

Inne metody 163

Podsumowanie 164

Bibliografia 164

Rozdział 12. Oddzielanie kodu HTML od PHP 165

Wstęp 165

Wprowadzenie 165

Oddzielenie i integracja przy użyciu wbudowanych funkcji PHP 166



Motywacja 166

Implementacja 167

Czego należy unikać 171

Podsumowanie: Oddzielanie i integracja przy wykorzystaniu funkcji PHP 171

Wykorzystanie systemu szablonów 172



FastTemplate 172

Zaawansowane techniki użycia FastTemplate 177

Podsumowanie 179

Bibliografia 179

Rozdział 13. Fajny PHP 180

Wstęp 180

Wysyłanie do przeglądarki plików innych niż HTML 180

Skrypty automatyzujące 184

WDDX 188

Monitorowanie sieci 192

Podsumowanie 194

Rozdział 14. Witryny oparte o szablony 195

Podstawy wykorzystania szablonów 195

Zapożyczanie 203

Personalizacja witryny 205

Obsługa wielu języków 207

Podsumowanie 209



Rozdział 15. Witryny oparte o bazę danych 210

Wstęp 210

Projekt bazy danych 210

Zarządzanie danymi aplikacji 213

Wyświetlanie danych 219

Podsumowanie 224



Rozdział 16. Generowanie statycznych stron HTML w oparciu o dynamiczne dane 225

Wstęp 225

Koncepcja 225

Generowanie stron statycznych 225



Użycie buforowania 225

Użycie FastTemplate 227

Techniki buforowania 228

Podsumowanie 230

Rozdział 17. Witryny handlu elektronicznego 231

Wstęp 231

Bezpieczeństwo 231

Zastosowanie SSL 231

Certyfikaty 231

Bezpieczeństwo bazy danych 232

Przetwarzanie płatności 232

Dostarczanie produktów 239

Podsumowanie 240



Dodatek A. Funkcje 241

function_exists 241

func_get_arg 241

func_get_args 241

func_num_args 242

fwrite 242

getallheaders 242

getcwd 242

getdate 242

getenv 243

gethostbyaddr 243

gethostbyname 243

gethostbynamel 243

GetImageSize 243

getlastmod 244

getmxrr 244

getmyinode 244

getmypid 244

getmyuid 244

getprotobyname 245

getprotobynumber 245

getrandmax 245

getrusage 245

getservbyname 245

gettext 245

gettimeofday 245

gettype 246

get_browser 246

get_cfg_var 247

get_class 247

get_class_methods 247

get_class_vars 247

get_current_user 247

get_declared_classes 247

get_extension_funcs 247

get_html_translation_table 247

get_included_files 248

get_loaded_extesions 248

get_magic_quotes_gpc 248

get_magic_quotes_runtime 248

get_meta_tags 249

get_object_vars 249

get_parent_class 250

get_required_files 250

gmdate 250

gmmktime 250

gmstrftime 251

GregorianToJD 251

gzclose 251

gzcompress 251

gzeof 251

gzfile 251

gzgetc 252

gzgets 252

gzgetss 252

gzopen 252

gzpassthru 252

gzputs 252

gzread 253

gzrewind 253

gzseek 253

gztell 253

gzuncompress 253

gzwrite 253

header 254

headers_sent 254

hebrev 254

hebrevc 254

hexdec 255

highlight_file 255

highlight_string 255

htmlentities 255

htmlspecialchars 256

hw_Array2Objrec 256

hw_Children 256

hw_ChildrenObj 256

hw_Close 256

hw_Connect 257

hw_Cp 257

hw_Deleteobject 257

hw_DocByAnchor 257

hw_DocByAnchorObj 257

hw_Document_Attributes 257

hw_Document_BodyTag 257

hw_Document_Content 257

hw_Document_SetContent 258

hw_Document_Size 258

hw_EditText 258

hw_Error 258

hw_ErrorMsg 258

hw_Free_Document 258

hw_GetAnchors 258

hw_GetAnchorsObj 258

hw_GetAndLock 259

hw_GetChildColl 259

hw_GetChildCollObj 259

hw_GetChildDocColl 259

hw_GetChildDocCollObj 259

hw_GetObject 259

hw_GetObjectByQuery 260

hw_GetObjectByQueryColl 260

hw_GetObjectByQueryCollObj 260

hw_GetObjectByQueryObj 260

hw_GetParents 260

hw_GetParentsObj 260

hw_GetRemote 260

hw_GetRemoteChilden 261

hw_GetSrcByDestObj 261

hw_GetText 261

hw_getusername 261

hw_Identify 262

hw_InCollections 262

hw_Info 262

hw_InsColl 262

hw_InsDoc 262

hw_InsertDocument 262

hw_InsertObject 262

hw_mapid 263

hw_Modifyobject 263

hw_Mv 264

hw_New_Document 264

hw_Objrec2Array 264

hw_Output_Document 265

hw_pConnect 265

hw_PipeDocument 265

hw_Root 265

hw_Unlock 265

hw_Who 265

ibase_close 265

ibase_connect 265

ibase_execute 266

ibase_fetch_object 266

ibase_fetch_row 267

ibase_free_query 267

ibase_free_result 267

ibase_num_fields 267

ibase_pconnect 267

ibase_prepare 268

ibase_query 268

ibase_timefmt 268

icap_close 268

icap_delete_event 268

icap_fetch_event 268

icap_list_alarms 269

icap_list_events 269

icap_open 269

icap_snooze 269

icap_store_event 270

ifxus_close_slob 270

ifxus_create_slob 270

ifxus_free_slob 270

ifxus_open_slob 270

ifxus_read_slob 271

ifxus_seek_slob 271

ifxus_tell_slob 271

ifxus_write_slob 271

ifx_affected_rows 271

ifx_blobinfile_mode 271

ifx_byteasvarchar 272

ifx_close 272

ifx_connect 272

ifx_copy_blob 272

ifx_create_blob 272

ifx_create_char 273

ifx_do 273

ifx_error 273

ifx_erormsg 273

ifx_fetch_row 273

ifx_fieldproperties 274

ifx_fieldtypes 274

ifx_free_blob 274

ifx_free_char 275

ifx_free_result 275

ifx_getsqlca 275

ifx_get_blob 275

ifx_get_char 275

ifx_htmltbl_result 275

ifx_nullformat 275

ifx_num_fields 276

ifx_num_rows 276

ifx_pconnect 276

ifx_query 276

ifx_textasvarchar 277

ifx_update_blob 277

ifx_update_char 277

ignore_user_abort 277

ImageArc 277

ImageChar 277

ImageCharUp 278

ImageColorAllocate 278

ImageColorAt 278

ImageColorClosest 278

ImageColorDeAllocate 278

ImageColorExact 278

ImageColorResolve 278

ImageColorSet 278

ImageColorsForIndex 279

ImageColorsTransparent 279

ImageCopy 279

ImageCopyResized 279

ImageCreate 279

ImageCreateFromGif 279

ImageCreateFromJPEG 280

ImageCreateFromPNG 280

ImageDashedLine 280

ImageDestroy 280

ImageFill 281

ImageFilledPolygon 281

ImageFilledRectangle 281

ImageFillToBorder 281

ImageFontHeight 281

ImageFontWidth 281

ImageGammaCorrect 281

ImageGIF 281

ImageInterlace 282

ImageJPEG 282

ImageLine 282

ImageLoadFont 282

ImagePNG 282

ImagePolygon 283

ImagePSBBox 283

ImagePSEncodeFont 283

ImagePsExtendfont 283

ImagePSFreeFont 283

ImagePSLoadFont 283

ImagePsSlantFont 283

ImagePSText 284

ImageRectangle 284

ImageSetPixel 284

ImageString 284

ImageStringUp 284

ImageSX 284

ImageSY 285

ImageTTFBBox 285

ImageTTFText 285

ImageTypes 285

imap_8bit 286

imap_alerts 286

imap_append 286

imap_base64 286

imap_binary 286

imap_body 286

imap_check 287

imap_clearflag_full 287

imap_close 287

imap_createmailbox 287

imap_delete 288

imap_deletemailbox 288

imap_errors 288

imap_expunge 288

imap_fetchbody 289

imap_fetchheader 289

imap_fetchstructure 289

imap_fetch_overview 290

imap_getmailboxes 290

imap_getsubscribed 291

imap_header 291

imap_headerinfo 291

imap_headers 292

imap_last_error 292

imap_listmailbox 292

imap_listsubscribed 292

imap_mail 292

imap_mailboxmsginfo 293

imap_mail_compose 293

imap_mail_copy 294

imap_mail_move 294

imap_mime_header_decode 294

imap_msgno 294

imap_num_msg 294

imap_num_recent 294

imap_open 295

imap_ping 295

imap_qprint 296

imap_renamemailbox 296

imap_reopen 296

imap_rfc822_parse_adrlist 296

imap_rfc822_parse_headers 296

imap_rfc822_write_address 296

imap_scanmailbox 297

imap_search 297

imap_setflag_full 297

imap_sort 298

imap_status 298

imap_subscribe 299

imap_uid 299

imap_undelete 299

imap_unsubscribe 299

imap_utf7_decode 299

imap_utf7_encode 299

imap_utf8 299

implode 299

ini_alter 300

ini_get 300

ini_restore 300

ini_set 300

intval 300

in_array 300

ip2long 301

iptcparse 301

isset 301

is_array 301

is_bool 301

is_dir 301

is_double 301

is_executable 302

is_file 302

is_float 302

is_int 302

is_integer 302

is_link 302

is_long 302

is_numeric 302

is_object 302

is_readable 303

is_real 303

is_resource 303

is_string 303

is_subclass_of 303

is_uploaded_file 303

is_writeable 303

JDDayOfWeek 304

JDMonthName 304

JDToFrench 304

JDToGregorian 304

JDToJewish 304

JDToJulian 304

jdtounix 304

JewishToJD 305

join 305

JulianToJD 305

key 305

krsort 305

ksort 305

lcg_value 306

ldap_add 306

ldap_bind 306

ldap_close 306

ldap_compare 307

ldap_connect 307

ldap_count_entries 307

ldap_delete 307

ldap_dn2ufn 308

ldap_err2str 308

ldap_errno 308

ldap_error 308

ldap_explode_dn 308

ldap_first_attribute 309

ldap_first_entry 309

ldap_free_result 309

ldap_get_attributes 309

ldap_get_dn 310

ldap_get_entries 310

ldap_get_values 310

ldap_get_values_len 310

ldap_list 311

ldap_modify 311

ldap_mod_add 311

ldap_mod_del 311

ldap_mod_replace 311

ldap_next_attribute 312

ldap_next_entry 312

ldap_read 312

ldap_search 312

ldap_unbind 313

leak 313

levenshtein 313

link 314

linkinfo 314

list 314

listen 315

localtime 315

log 315

log10 315

long2ip 316

lstat 316

ltrim 316

mail 316

max 317

mcal_append_event 317

mcal_close 317

mcal_create_calendar 317

mcal_date_compare 317

mcal_date_valid 317

mcal_days_in_month 318

mcal_day_of_week 318

mcal_day_of_year 318

mcal_delete_calendar 318

mcal_delete_event 318

mcal_event_add_attribute 318

mcal_event_init 318

mcal_event_set_alarm 318

mcal_event_set_category 318

mcal_event_set_class 318

mcal_event_set_description 318

mcal_event_set_end 319

mcal_event_set_recur_daily 319

mcal_event_set_recur_monthly_mday 319

mcal_event_set_recur_monthly_wday 319

mcal_event_set_recur_none 319

mcal_event_set_recur_weekly 319

mcal_event_set_recur_yearly 319

mcal_event_set_start 319

mcal_event_set_title 319

mcal_expunge 320

mcal_fetch_current_stream_event 320

mcal_fetch_event 320

mcal_is_leap_year 321

mcal_list_alarms 321

mcal_list_events 321

mcal_next_recurrence 321

mcal_open 321

mcal_popen 321

mcal_rename_calendar 321

mcal_reopen 322

mcal_snooze 322

mcal_store_event 322

mcal_time_valid 322

mcrypt_cbc 322

mcrypt_cfb 322

mcrypt_create_iv 322

mcrypt_decrypt 323

mcrypt_ecb 323

mcrypt_encrypt 323

mcrypt_enc_get_algorithms_name 324

mcrypt_enc_get_block_size 324

mcrypt_enc_get_iv_size 324

mcrypt_enc_get_key_size 324

mcrypt_enc_get_modes_name 324

mcrypt_enc_get_supported_key_sizes 324

mcrypt_enc_is_block_algorithm 324

mcrypt_enc_is_block_algorithm_mode 324

mcrypt_enc_is_block_mode 325

mcrypt_enc_self_test 325

mcrypt_generic 325

mcrypt_generic_end 325

mcrypt_generic_init 325

mcrypt_get_block_size 325

mcrypt_get_cipher_name 325

mcrypt_get_iv_size 326

mcrypt_get_key_size 326

mcrypt_list_algorithms 326

mcrypt_list_modes 326

mcrypt_module_get_algo_block_size 327

mcrypt_module_get_algo_key_size 327

mcrypt_module_get_algo_supported_key_sizes 327

mcrypt_module_is_block_algorithm 327

mcrypt_module_is_block_algorithm_mode 327

mcrypt_module_is_block_mode 327

mcrypt_module_open 327

mcrypt_module_self_test 328

mcrypt_ofb 328

md5 328

mdecrypt_generic 328

metaphone 329

method_exists 329

mhash 329

mhash_count 329

mhash_get_block_size 329

mhash_get_hash_name 329

microtime 329

min 330

mkdir 330

mktime 330

move_uploaded_file 331

msql 331

msql_affected_rows 331

msql_close 331

msql_connect 331

msql_createdb 332

msql_create_db 332

msql_data_seek 332

msql_dbname 332

msql_dropdb 332

msql_drop_db 332

msql_error 332

msql_fetch_array 332

msql_fetch_field 333

msql_fetch_object 333

msql_fetch_row 333

msql_fieldflags 333

msql_fieldlen 333

msql_fieldname 334

msql_fieldtable 334

msql_fieldtype 334

msql_field_seek 334

msql_freeresult 334

msql_free_result 334

msql_listdbs 334

msql_listfields 334

msql_listtables 334

msql_list_dbs 334

msql_list_fields 335

msql_list_tables 335

msql_numfields 335

msql_numrows 335

msql_num_fields 335

msql_num_rows 335

msql_pconnect 335

msql_query 335

msql_regcase 336

msql_result 336

msql_selectdb 336

msql_select_db 336

msql_tablename 336

mssql_close 336

mssql_connect 337

mssql_data_seek 337

mssql_fetch_array 337

mssql_fetch_field 337

mssql_fetch_object 337

mssql_fetch_row 338

mssql_field_length 338

mssql_field_name 338

mssql_field_seek 338

mssql_field_type 338

mssql_free_result 338

mssql_get_last_message 338

mssql_min_error_severity 338

mssql_min_message_severity 338

mssql_num_fields 338

mssql_num_rows 339

mssql_pconnect 339

mssql_query 339

mssql_result 339

mssql_select_db 339

mt_getrandmax 339

mt_rand 339

mt_srand 340

mysql_affected_rows 340

mysql_change_user 340

mysql_close 340

mysql_connect 341

mysql_create_db 341

mysql_data_seek 342

mysql_db_name 342

mysql_db_query 342

mysql_drop_db 342

mysql_errno 343

mysql_error 343

mysql_fetch_array 343

mysql_fetch_assoc 344

mysql_fetch_field 344

mysql_fetch_lengths 345

mysql_fetch_object 345

mysql_fetch_row 345

mysql_field_flags 346

mysql_field_len 346

mysql_field_name 346

mysql_field_seek 346

mysql_field_table 346

mysql_field_type 346

mysql_free_result 347

mysql_insert_id 347

mysql_list_dbs 347

mysql_list_fields 348

mysql_list_tables 348

mysql_num_fields 348

mysql_num_rows 348

mysql_pconnect 348

mysql_query 349

mysql_result 349

mysql_select_db 350

mysql_tablename 350

natcasesort 350

natsort 350

next 351

nl2br 351

number_format 351

ob_end_clean 351

ob_end_flush 351

ob_get_contents 352

ob_get_length 352

ob_implicit_flush 352

ob_start 352

OCIBindByName 352

OCIColumnIsNULL 353

OCIColumnName 353

OCIColumnSize 353

OCIColumnType 354

OCICommit 354

OCIDefineByName 354

OCIError 355

OCIExecute 355

OCIFetch 355

OCIFetchInto 355

OCIFetchStatement 355

OCIFreeCursor 356

OCIFreeDesc 356

OCIFreeStatement 356

OCIInternalDebug 356

OCILogOff 356

OCILogon 356

OCINewCursor 357

OCINewDescriptor 358

OCINLogon 359

OCINumCols 360

OCIParse 360

OCIPLogon 361

OCIResult 361

OCIRollback 361

OCIRowCount 361

OCIServerVersion 361

OCIStatementType 361

octdec 362

odbc_autocommit 362

odbc_binmode 362

odbc_close 363

odbc_close_all 363

odbc_columnprivileges 363

odbc_columns 363

odbc_commit 363

odbc_connect 364

odbc_cursor 364

odbc_do 364

odbc_exec 364

odbc_execute 364

odbc_fetch_into 364

odbc_fetch_row 365

odbc_field_len 365

odbc_field_name 365

odbc_field_num 365

odbc_field_precision 365

odbc_field_scale 365

odbc_field_type 365

odbc_foreignkeys 365

odbc_free_result 366

odbc_gettypeinfo 366

odbc_longreadlen 366

odbc_num_fields 366

odbc_num_rows 366

odbc_pconnect 367

odbc_prepare 367

odbc_primarykeys 367

odbc_procedurecolumns 367

odbc_procedures 367

odbc_result 368

odbc_result_all 368

odbc_rollback 368

odbc_setoption 368

odbc_specialcolumns 369

odbc_statistics 369

odbc_tableprivileges 369

odbc_tables 369

opendir 370

openlog 370

Ora_Bind 371

Ora_Close 371

Ora_ColumnName 371

Ora_ColumnSize 371

Ora_ColumnType 371

Ora_Commit 372

Ora_CommitOff 372

Ora_CommitOn 372

Ora_Do 372

Ora_Error 372

Ora_ErrorCode 372

Ora_Exec 373

Ora_Fetch 373

Ora_Fetch_Into 373

Ora_GetColumn 373

Ora_Logoff 373

Ora_Logon 373

Ora_Numcols 374

Ora_Numrows 374

Ora_Open 374

Ora_Parse 374

Ora_pLogon 374

Ora_Rollback 374

OrbitEnum 374

OrbitObject 375

OrbitStruct 375

ord 375

pack 375

parse_str 376

parse_url 377

passthru 377

pdf_add_outline 377

pdf_arc 377

pdf_begin_page 377

pdf_circle 377

pdf_clip 377

pdf_close 378

pdf_closepath 378

pdf_closepath_fill_stroke 378

pdf_closepath_stroke 378

pdf_close_image 378

pdf_continue_text 378

pdf_curveto 378

pdf_endpath 378

pdf_end_page 378

pdf_execute_image 379

pdf_fill 379

pdf_fill_stroke 379

pdf_get_image_height 379

pdf_get_image_width 379

pdf_get_parameter 379

pdf_get_value 380

pdf_lineto 380

pdf_moveto 380

pdf_open 380

pdf_open_gif 380

pdf_open_image_file 380

pdf_open_jpeg 381

pdf_open_memory_image 381

pdf_open_png 381

pdf_open_tiff 381

pdf_place_image 382

pdf_put_image 382

pdf_rect 382

pdf_restore 382

pdf_rotate 382

pdf_save 382

pdf_scale 382

pdf_setdash 383

pdf_setflat 383

pdf_setgray 383

pdf_setgray_fill 383

pdf_setgray_stroke 383

pdf_setlinecap 383

pdf_setlinejoin 383

pdf_setlinewidth 383

pdf_setmiterlimit 383

pdf_setrgbcolor 384

pdf_setrgbcolor_fill 384

pdf_setrgbcolor_stroke 384

pdf_set_border_color 384

pdf_set_border_dash 384

pdf_set_border_style 384

pdf_set_char_spacing 384

pdf_set_duration 384

pdf_set_font 384

pdf_set_horiz_scaling 385

pdf_set_info 385

pdf_set_leading 385

pdf_set_parameter 385

pdf_set_text_matrix 385

pdf_set_text_pos 386

pdf_set_text_rendering 386

pdf_set_text_rise 386

pdf_set_transition 386

pdf_set_value 386

pdf_set_word_spacing 386

pdf_show 386

pdf_show_boxed 386

pdf_show_xy 387

pdf_skew 387

pdf_stringwidth 387

Dodatek B. Predefiniowane zmienne i stałe PHP 388

Zmienne 388



Zmienne Apache 388

GATEWAY_INTERFACE 388

SERVER_NAME 388

SERVER_SOFTWARE 388

SERVER_PROTOCOL 388

REQUEST_METHOD 388

QUERY_STRING 388

DOCUMENT_ROOT 388

HTTP_ACCEPT 389

HTTP_ACCEPT_CHARSET 389

HTTP_ENCODING 389

HTTP_ACCEPT_LANGUAGE 389

HTTP_CONNECTION 389

HTTP_HOST 389

HTTP_REFERER 389

HTTP_USER_AGENT 389

REMOTE_ADDR 389

REMOTE_PORT 389

SCRIPT_FILENAME 389

SERVER_ADMIN 389

SERVER­_PORT 389

SERVER_SIGNATURE 389

PATH_TRANSLATED 390

SCRIPT_NAME 390

REQUEST_URI 390

Zmienne środowiska 390

Zmienne PHP 390

argv 390


argc 390

PHP_SELF 390

HTTP_COOKIE_VARS 390

HTTP_GET_VARS 390

HTTP_POST_VARS 390

HTTP_POST_FILES 391

HTTP_ENV_VARS 391

HTTP_SERVER_VARS 391

Stałe 391

__FILE__ 391

__LINE__ 391

PHP_VERSION 391

PHP_OS 391

TRUE 391


FALSE 391

E_ERROR 391

E_WARNING 391

E_PARSE 391

E_NOTICE 391

E_ALL 392



Dodatek C. Opcje kompilacji PHP 393

Bazy danych 393

--with-adabas[=DIR] 393

--enable-dba=shared 393

--enable-dbase 393

--with-db2[=DIR] 393

--with-db3[=DIR] 393

--with-dbm[=DIR] 393

--with-dbmaker[=DIR] 393

--with-empress[=DIR] 393

--enable-filepro 393

--with-gdbm[=DIR] 393

--with-hyperwave 393

--with-ibm-db2[=DIR] 394

--with-informix[=DIR] 394

--with-ingres[=DIR] 394

--with-interbase[=DIR] 394

--with-ldap[=DIR] 394

--with-msql[=DIR] 394

--with-mysql[=DIR] 394

--with-ndbm[=DIR] 394

--with-oci8[=DIR] 394

--with-oracle[=DIR] 394

--with-pgsql[=DIR] 394

--with-solid[=DIR] 394

--with-sybase-ct[=DIR] 394

--with-sybase[=DIR] 395

--with-openlink[=DIR] 395

--with-iodbc[=DIR] 395

--with-custom-odbc[=DIR] 395

--with-unixODBC[=DIR] 395

--with-velocis[=DIR] 395

Handel elektroniczny 395

--with-ccvs[=DIR] 395

--with-cybercash[=DIR] 395

--with-pfpro[=DIR] 395

Grafika 395

--enable-freetype-4bit-antialias-hack 395

--with-gd[=DIR] 395

--without-gd 396

--with-jpeg-dir[=DIR] 396

--with-png-dir[=DIR] 396

--with-t1lib[=DIR] 396

--with-tiff-dir[=DIR] 396

--with-ttf[=DIR] 396

--with-xpm-dir[=DIR] 396

Różne 396

--disable-libtool-lock 396

--disable-pear 396

--disable-pic 396

--disable-posix 396

--disable-rpath 396

--disable-session 396

--enable-bcmath 396

--enable-c9x-inline 397

--enable-calendar 397

--enable-debug 397

--enable-discard-path 397

--enable-dmalloc 397

--enable-exif 397

--enable-experimental-zts 397

--enable-fast-install[=PKGS] 397

--enable-force-cgi-redirect 397

--enable-inline-optimization 397

--enable-libgcc 397

--enable-maintainer-mode 397

--enable-memory-limit 397

--enable-safe-mode 397

--enable-satellite 397

--enable-shared[=PKGS] 398

--enable-sigchild 398

--enable-static[=PKGS] 398

--enable-sysvsem 398

--enable-sysvshm 398

--enable-trans-sid 398

--with-cdb[=DIR] 398

--with-config-file-path=PATH 398

--with-cpdflib[=DIR] 398

--with-esoob[=DIR] 398

--with-exec-dir[=DIR] 398

--with-fdftk[=DIR] 398

--with-gnu-ld 398

--with-icap[=DIR] 398

--with-imap[=DIR] 398

--with-java[=DIR] 399

--with-kerberos[=DIR] 399

--with-mcal[=DIR] 399

--with-mcrypt[=DIR] 399

--with-mhash[=DIR] 399

--with-mm[=DIR] 399

--with-mod_charset 399

--with-pdflib[=DIR] 399

--with-readline[=DIR] 399

--with-regex=TYPE 399

--with-servlet[=DIR] 399

--with-swf[=DIR] 399

--with-tsrm-pth[=pth-config] 399

--with-tsrm-pthreads 399

--with-zlib-dir[=DIR] 399

--with-zlib[=DIR] 400

--without-pcre-regex 400

Sieć 400

--with-curl[=DIR] 400

--enable-ftp 400

--disable-url-fopen-wrapper 400

--with-mod-dav=DIR 400

--with-openssl[=DIR] 400

--with-snmp[=DIR] 400

--enable-ucd-snmp-hack 400

--enable-sockets 400

--with-yaz[=DIR] 400

--enable-yp 400

Działanie PHP 401

--enable-magic-quotes 401

--disable-short-tags 401

Serwer 401

--with-aolserver-src=DIR 401

--with-aolserver=DIR 401

--with-apache[=DIR] 401

--with-apxs[=FILE] 401

--enable-versioning 401

--with-fhttpd[=DIR] 401

--with-nsapi=DIR 401

--with-pi3web=DIR 401

--with-roxen=DIR 401

--enable-roxen-zts 401

--with-zeus=DIR 401

Tekst i język 402

--with-aspell[=DIR] 402

--with-gettext[=DIR] 402

--with-pspell[=DIR] 402

--with-recode[=DIR] 402

XML 402


--with-dom[=DIR] 402

--enable-sablot-errors-descriptive 402

--with-sablot[=DIR] 402

--enable-wddx 402

--disable-xml 402

Dodatek D. Opcje konfiguracji PHP 403

Ogólne dyrektywy konfiguracji 403

allow_url_fopen boolean 403

asp_tags boolean 403

auto_append_file string 403

auto_prepend_file string 403

cgi_ext string 403

display_errors boolean 403

doc_root string 403

engine boolean 403

error_log string 404

error_reporting integer 404

open_basedir string 404

gpc_order string 404

ignore_user_abort string 404

include_path string 404

isapi_ext string 404

log_errors boolean 404

magic_quotes_gpc boolean 404

magic_quotes_runtime boolean 404

magic_quotes_sybase boolean 405

max_execution_time integer 405

memory_limit integer 405

nsapi_ext string 405

register_globals boolean 405

short_open_tag boolean 405

sql.safe_mode boolean 405

track_errors boolean 405

track_vars boolean 405

upload_tmp_dir string 405

user_dir string 405

warn_plus_overloading boolean 405

Dyrektywy konfiguracji poczty 406

SMTP string 406

sendmail_from string 406

sendmail_path string 406

Dyrektywy konfiguracji trybu bezpiecznego 406

safe_mode boolean 406

safe_mode_exec_dir string 406

Dyrektywy konfiguracji debuggera 406

debugger.host string 406

debugger.port string 406

debugger.enabled boolean 406

Dyrektywy ładowania rozszerzeń 406

enable_dl boolean 406

extension_dir string 407

extension string 407

Dyrektywy konfiguracji MySQL 407

mysql.allow_persistent boolean 407

mysql.default_host string 407

mysql.default_user string 407

mysql.default_password string 407

mysql.max_persistent integer 407

mysql.max_links integer 407

Dyrektywy konfiguracji mSQL 407

msql.allow_persistent boolean 407

msql.max_persistent integer 407

msql.max_links integer 407

Dyrektywy konfiguracji PostgreSQL 407

pgsql.allow_persistent boolean 407

pgsql.max_persistent integer 408

pgsql.max_links integer 408

Dyrektywy konfiguracji Sybase 408

sybase.allow_persistent boolean 408

sybase.max_persistent integer 408

sybase.max_links integer 408

Dyrektywy konfiguracji Sybase-CT 408

sybct.allow_persistent boolean 408

sybct.max_persistent integer 408

sybct.max_links integer 408

sybct.min_server_severity integer 408

sybct.min_client_severity integer 408

sybct.login_timeout integer 408

sybct.timeout integer 409

sybct.hostname string 409

Dyrektywy konfiguracji Informix 409

ifx.allow_persistent boolean 409

ifx.max_persistent integer 409

ifx.max_links integer 409

ifx.default_host string 409

ifx.default_user string 409

ifx.default_password string 409

ifx.blobinfile boolean 409

ifx.textasvarchar boolean 409

ifx.byteasvarchar boolean 409

ifx.charasvarchar boolean 409

ifx.nullformat boolean 410

Dyrektywy konfiguracji BC Math 410

bcmath.scale integer 410

Dyrektywy konfiguracji możliwości przeglądarek 410

browscap string 410

Dyrektywy konfiguracji Zunifikowanego ODBC 410

uodbc.default_db string 410

uodbc.default_user string 410

uodbc.default_pw string 410

uodbc.allow_persistent boolean 410

uodbc.max_persistent integer 410

uodbc.max_links integer 410



Dodatek E. Zasoby Sieci 411

Wstęp


Książka ta jest przeznaczona dla programistów tworzących aplikacje WWW za pomocą PHP. Należy zwrócić uwagę, że zostało użyte określenie aplikacje WWW a nie strony WWW lub witryny WWW. W przeszłości w Sieci znajdowały się w większości proste strony HTML o ograniczonej możliwości interakcji. Dzisiejszy obraz Sieci jest o wiele bardziej skomplikowany. Użytkownicy i firmy oczekują od Sieci coraz więcej. Powoduje to powstanie coraz większej ilości dynamicznych aplikacji WWW. PHP jest idealny do tworzenia takich aplikacji, ponieważ został zaprojektowany właśnie do realizacji tego zadania.

Dla kogo jest przeznaczona ta książka


Książka ta powinna być użyteczna dla szerokiego grona programistów WWW, ale pisana była z myślą o średnio zaawansowanych lub zaawansowanych programistach. PHP jest językiem programowania a nie językiem opisu strony, więc przydatne będzie doświadczenie w programowaniu. Programiści znający C lub Perla powinni uznać PHP za język bardzo przyjazny, natomiast programiści pracujący w ASP Microsoftu (Active Server Pages) uznają PHP za język o podobnej strukturze.

Ponieważ książka ta nie jest kierowana do początkujących programistów, podstawowe pojęcia dotyczące programowania zostaną przedstawione bardzo skrótowo. Zakłada się, że Czytelnik zna takie pojęcia programowania, jak funkcje, zmienne i stałe.


Konwencje


W książce przyjęto następujące konwencje:

  • Kod programu i jego wyniki zaznaczone są czcionką o stałej szerokości.

  • Nazwy plików i katalogów zaznaczone są czcionką pochyłą.

  • Komendy i elementy języka zaznaczone są czcionką o stałej szerokości.

Omówienie książki


Książka zawiera zwięzłe wprowadzenie do PHP, oraz opis języka. Został w niej również przedstawiony sposób instalacji i konfiguracji PHP.

Druga część, „Specjalne wymagania przy programowaniu WWW”, przeznaczona jest dla programistów tradycyjnych aplikacji rozpoczynających pracę przy aplikacjach WWW. W części tej przedstawione zostały takie zagadnienia jak: przetwarzanie formularzy, interakcję z użytkownikiem, utrzymywanie stanu oraz niezależność od przeglądarki.

Następna część, „Zarządzanie projektem aplikacji WWW” opisuje zalety modularności i powtórnego użycia kodu.

Część „Przykłady zastosowań” pokazuje użycie PHP na podstawie fragmentów działających już aplikacji. Część ta łączy zagadnienia przedstawione w poprzednich częściach i pokazuje przykłady pełnej wymiany informacji pomiędzy przeglądarką użytkownika i aplikacją zainstalowaną na serwerze WWW.

Na końcu książki znajduje się skorowidz zawierający wszystkie funkcje PHP4.

Od autora


Od około trzech lat tworzę aplikacje WWW przy użyciu PHP i ASP, jako niezależny przedsiębiorca. Fundamentem mojego sukcesu było użycie PHP, ponieważ pozwala on na szybkie budowanie prototypów, oraz jest wystarczająco wydajny i pewny nawet do tworzenia dużych aplikacji WWW.

Celem tej książki jest przekazanie innym programistów użytecznych informacji. Nie będę opisywał różnic pomiędzy PHP i innymi tego typu narzędziami i nie będę zajmował się historią PHP. Wszystkie te informacje można znaleźć na oficjalnej witrynie PHP, www.php.net. Zamiast tego pokażę zastosowanie PHP do stworzenia aplikacji WWW. Omówię również inżynierię programowania w projektach WWW, sposoby przeniesienia istniejącego kodu do nowych projektów WWW. Przedstawię również kilka przydatnych narzędzi napisanych dla PHP.


Przykłady kodu


Zamieszczone przykłady kodu były tworzone i testowane pzy użyciu PHP 4.0.1 (poprawka 2) na Apache 1.3.11 działającym w systemie RedHat 6.1. Do edycji plików HTML i PHP wykorzystuję edytor Allaire Homeite 4.5.1 zainstalowany na Windows NT.

Do testowania małych fragmentów kodu stosowałem następujący szablon HTML do którego wklejałem odpowiedni kod PHP:







Nazwa przykładu





Pobieranie 4.28 Mb.





©absta.pl 2020
wyślij wiadomość

    Strona główna