PHP Notes for Professionals book

    Amazing collection of free programming books

    Collecting
    Free
    Amazing collection of free programming books

    The Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified

    Book created for educational purposes and is not affiliated with group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners

    https://goalkicker.com/

    Content

    • 1-1
      Content list
    • 1-2
      About
    • 1-3
      Chapter 1: Getting started with PHP
    • 1-4
      Section 1.1: HTML output from web server
    • 1-5
      Section 1.2: Hello, World!
    • 1-6
      Section 1.3: Non-HTML output from web server
    • 1-7
      Section 1.4: PHP built-in server
    • 1-8
      Section 1.5: PHP CLI
    • 1-9
      Section 1.6: Instruction Separation
    • 1-10
      Section 1.7: PHP Tags
    • 1-11
      Chapter 2: Variables
    • 1-12
      Section 2.1: Accessing A Variable Dynamically By Name (Variable variables)
    • 1-13
      Section 2.2: Data Types
    • 1-14
      Section 2.3: Global variable best practices
    • 1-15
      Section 2.4: Default values of uninitialized variables
    • 1-16
      Section 2.5: Variable Value Truthiness and Identical Operator
    • 1-17
      Chapter 3: Variable Scope
    • 1-18
      Section 3.1: Superglobal variables
    • 1-19
      Section 3.2: Static properties and variables
    • 1-20
      Section 3.3: User-defined global variables
    • 1-21
      Chapter 4: Superglobal Variables PHP
    • 1-22
      Section 4.1: Suberglobals explained
    • 1-23
      Section 4.2: PHP5 SuperGlobals
    • 1-24
      Chapter 5: Outputting the Value of a Variable
    • 1-25
      Section 5.1: echo and print
    • 1-26
      Section 5.2: Outputting a structured view of arrays and objects
    • 1-27
      Section 5.3: String concatenation with echo
    • 1-28
      Section 5.4: printf vs sprintf
    • 1-29
      Section 5.5: Outputting large integers
    • 1-30
      Section 5.6: Output a Multidimensional Array with index and value and print into the table
    • 1-31
      Chapter 6: Constants
    • 1-32
      Section 6.1: Defining constants
    • 1-33
      Section 6.2: Class Constants
    • 1-34
      Section 6.3: Checking if constant is defined
    • 1-35
      Section 6.4: Using constants
    • 1-36
      Section 6.5: Constant arrays
    • 1-37
      Chapter 7: Magic Constants
    • 1-38
      Section 7.1: Dierence between __FUNCTION__ and __METHOD__
    • 1-39
      Section 7.2: Dierence between __CLASS__, get_class() and get_called_class()
    • 1-40
      Section 7.3: File & Directory Constants
    • 1-41
      Chapter 8: Comments
    • 1-42
      Section 8.1: Single Line Comments
    • 1-43
      Section 8.2: Multi Line Comments
    • 1-44
      Chapter 9: Types
    • 1-45
      Section 9.1: Type Comparison
    • 1-46
      Section 9.2: Boolean
    • 1-47
      Section 9.3: Float
    • 1-48
      Section 9.4: Strings
    • 1-49
      Section 9.5: Callable
    • 1-50
      Section 9.6: Resources
    • 1-51
      Section 9.7: Type Casting
    • 1-52
      Section 9.8: Type Juggling
    • 1-53
      Section 9.9: Null
    • 1-54
      Section 9.10: Integers
    • 1-55
      Chapter 10: Operators
    • 1-56
      Section 10.1: Null Coalescing Operator (??)
    • 1-57
      Section 10.2: Spaceship Operator (<=>)
    • 1-58
      Section 10.3: Execution Operator (``)
    • 1-59
      Section 10.4: Incrementing (++) and Decrementing Operators (--)
    • 1-60
      Section 10.5: Ternary Operator (?:)
    • 1-61
      Section 10.6: Logical Operators (&&/AND and ||/OR)
    • 1-62
      Section 10.7: String Operators (. and .=)
    • 1-63
      Section 10.8: Object and Class Operators
    • 1-64
      Section 10.9: Combined Assignment (+= etc)
    • 1-65
      Section 10.10: Altering operator precedence (with parentheses)
    • 1-66
      Section 10.11: Basic Assignment (=)
    • 1-67
      Section 10.12: Association
    • 1-68
      Section 10.13: Comparison Operators
    • 1-69
      Section 10.14: Bitwise Operators
    • 1-70
      Section 10.15: instanceof (type operator)
    • 1-71
      Chapter 11: References
    • 1-72
      Section 11.1: Assign by Reference
    • 1-73
      Section 11.2: Return by Reference
    • 1-74
      Section 11.3: Pass by Reference
    • 1-75
      Chapter 12: Arrays
    • 1-76
      Section 12.1: Initializing an Array
    • 1-77
      Section 12.2: Check if key exists
    • 1-78
      Section 12.3: Validating the array type
    • 1-79
      Section 12.4: Creating an array of variables
    • 1-80
      Section 12.5: Checking if a value exists in array
    • 1-81
      Section 12.6: ArrayAccess and Iterator Interfaces
    • 1-82
      Chapter 13: Array iteration
    • 1-83
      Section 13.1: Iterating multiple arrays together
    • 1-84
      Section 13.2: Using an incremental index
    • 1-85
      Section 13.3: Using internal array pointers
    • 1-86
      Section 13.4: Using foreach
    • 1-87
      Section 13.5: Using ArrayObject Iterator
    • 1-88
      Chapter 14: Executing Upon an Array
    • 1-89
      Section 14.1: Applying a function to each element of an array
    • 1-90
      Section 14.2: Split array into chunks
    • 1-91
      Section 14.3: Imploding an array into string
    • 1-92
      Section 14.4: "Destructuring" arrays using list()
    • 1-93
      Section 14.5: array_reduce
    • 1-94
      Section 14.6: Push a Value on an Array
    • 1-95
      Chapter 15: Manipulating an Array
    • 1-96
      Section 15.1: Filtering an array
    • 1-97
      Section 15.2: Removing elements from an array
    • 1-98
      Section 15.3: Sorting an Array
    • 1-99
      Section 15.4: Whitelist only some array keys
    • 1-100
      Section 15.5: Adding element to start of array
    • 1-101
      Section 15.6: Exchange values with keys
    • 1-102
      Section 15.7: Merge two arrays into one array
    • 1-103
      Chapter 16: Processing Multiple Arrays Together
    • 1-104
      Section 16.1: Array intersection
    • 1-105
      Section 16.2: Merge or concatenate arrays
    • 1-106
      Section 16.3: Changing a multidimensional array to associative array
    • 1-107
      Section 16.4: Combining two arrays (keys from one, values from another)
    • 1-108
      Chapter 17: Datetime Class
    • 1-109
      Section 17.1: Create Immutable version of DateTime from Mutable prior PHP 5.6
    • 1-110
      Section 17.2: Add or Subtract Date Intervals
    • 1-111
      Section 17.3: getTimestamp
    • 1-112
      Section 17.4: setDate
    • 1-113
      Section 17.5: Create DateTime from custom format
    • 1-114
      Section 17.6: Printing DateTimes
    • 1-115
      Chapter 18: Working with Dates and Time
    • 1-116
      Section 18.1: Getting the dierence between two dates / times
    • 1-117
      Section 18.2: Convert a date into another format
    • 1-118
      Section 18.3: Parse English date descriptions into a Date format
    • 1-119
      Section 18.4: Using Predefined Constants for Date Format
    • 1-120
      Chapter 19: Control Structures
    • 1-121
      Section 19.1: if else
    • 1-122
      Section 19.2: Alternative syntax for control structures
    • 1-123
      Section 19.3: while
    • 1-124
      Section 19.4: do-while
    • 1-125
      Section 19.5: goto
    • 1-126
      Section 19.6: declare
    • 1-127
      Section 19.7: include & require
    • 1-128
      Section 19.8: return
    • 1-129
      Section 19.9: for
    • 1-130
      Section 19.10: foreach
    • 1-131
      Section 19.11: if elseif else
    • 1-132
      Section 19.12: if
    • 1-133
      Section 19.13: switch
    • 1-134
      Chapter 20: Loops
    • 1-135
      Section 20.1: continue
    • 1-136
      Section 20.2: break
    • 1-137
      Section 20.3: foreach
    • 1-138
      Section 20.4: do...while
    • 1-139
      Section 20.5: for
    • 1-140
      Section 20.6: while
    • 1-141
      Chapter 21: Functions
    • 1-142
      Section 21.1: Variable-length argument lists
    • 1-143
      Section 21.2: Optional Parameters
    • 1-144
      Section 21.3: Passing Arguments by Reference
    • 1-145
      Section 21.4: Basic Function Usage
    • 1-146
      Section 21.5: Function Scope
    • 1-147
      Chapter 22: Functional Programming
    • 1-148
      Section 22.1: Closures
    • 1-149
      Section 22.2: Assignment to variables
    • 1-150
      Section 22.3: Objects as a function
    • 1-151
      Section 22.4: Using outside variables
    • 1-152
      Section 22.5: Anonymous function
    • 1-153
      Section 22.6: Pure functions
    • 1-154
      Section 22.7: Common functional methods in PHP
    • 1-155
      Section 22.8: Using built-in functions as callbacks
    • 1-156
      Section 22.9: Scope
    • 1-157
      Section 22.10: Passing a callback function as a parameter
    • 1-158
      Chapter 23: Alternative Syntax for Control Structures
    • 1-159
      Section 23.1: Alternative if/else statement
    • 1-160
      Section 23.2: Alternative for statement
    • 1-161
      Section 23.3: Alternative while statement
    • 1-162
      Section 23.4: Alternative foreach statement
    • 1-163
      Section 23.5: Alternative switch statement
    • 1-164
      Chapter 24: String formatting
    • 1-165
      Section 24.1: String interpolation
    • 1-166
      Section 24.2: Extracting/replacing substrings
    • 1-167
      Chapter 25: String Parsing
    • 1-168
      Section 25.1: Splitting a string by separators
    • 1-169
      Section 25.2: Substring
    • 1-170
      Section 25.3: Searching a substring with strpos
    • 1-171
      Section 25.4: Parsing string using regular expressions
    • 1-172
      Chapter 26: Classes and Objects
    • 1-173
      Section 26.1: Class Constants
    • 1-174
      Section 26.2: Abstract Classes
    • 1-175
      Section 26.3: Late static binding
    • 1-176
      Section 26.4: Namespacing and Autoloading
    • 1-177
      Section 26.5: Method and Property Visibility
    • 1-178
      Section 26.6: Interfaces
    • 1-179
      Section 26.7: Final Keyword
    • 1-180
      Section 26.8: Autoloading
    • 1-181
      Section 26.9: Calling a parent constructor when instantiating a child
    • 1-182
      Section 26.10: Dynamic Binding
    • 1-183
      Section 26.11: $this, self and static plus the singleton
    • 1-184
      Section 26.12: Defining a Basic Class
    • 1-185
      Section 26.13: Anonymous Classes
    • 1-186
      Chapter 27: Namespaces
    • 1-187
      Section 27.1: Declaring namespaces
    • 1-188
      Section 27.2: Referencing a class or function in a namespace
    • 1-189
      Section 27.3: Declaring sub-namespaces
    • 1-190
      Section 27.4: What are Namespaces?
    • 1-191
      Chapter 28: Sessions
    • 1-192
      Section 28.1: session_start() Options
    • 1-193
      Section 28.2: Session Locking
    • 1-194
      Section 28.3: Manipulating session data
    • 1-195
      Section 28.4: Destroy an entire session
    • 1-196
      Section 28.5: Safe Session Start With no Errors
    • 1-197
      Section 28.6: Session name
    • 1-198
      Chapter 29: Cookies
    • 1-199
      Section 29.1: Modifying a Cookie
    • 1-200
      Section 29.2: Setting a Cookie
    • 1-201
      Section 29.3: Checking if a Cookie is Set
    • 1-202
      Section 29.4: Removing a Cookie
    • 1-203
      Section 29.5: Retrieving a Cookie
    • 1-204
      Chapter 30: Output Buering
    • 1-205
      Section 30.1: Basic usage getting content between buers and clearing
    • 1-206
      Section 30.2: Processing the buer via a callback
    • 1-207
      Section 30.3: Nested output buers
    • 1-208
      Section 30.4: Running output buer before any content
    • 1-209
      Section 30.5: Stream output to client
    • 1-210
      Section 30.6: Using Output buer to store contents in a file, useful for reports, invoices etc
    • 1-211
      Section 30.7: Typical usage and reasons for using ob_start
    • 1-212
      Section 30.8: Capturing the output buer to re-use later
    • 1-213
      Chapter 31: JSON
    • 1-214
      Section 31.1: Decoding a JSON string
    • 1-215
      Section 31.2: Encoding a JSON string
    • 1-216
      Section 31.3: Debugging JSON errors
    • 1-217
      Section 31.4: Using JsonSerializable in an Object
    • 1-218
      Section 31.5: Header json and the returned response
    • 1-219
      Chapter 32: SOAP Client
    • 1-220
      Section 32.1: WSDL Mode
    • 1-221
      Section 32.2: Non-WSDL Mode
    • 1-222
      Section 32.3: Classmaps
    • 1-223
      Section 32.4: Tracing SOAP request and response
    • 1-224
      Chapter 33: Using cURL in PHP
    • 1-225
      Section 33.1: Basic Usage (GET Requests)
    • 1-226
      Section 33.2: POST Requests
    • 1-227
      Section 33.3: Using Cookies
    • 1-228
      Section 33.4: Using multi_curl to make multiple POST requests
    • 1-229
      Section 33.5: Sending multi-dimensional data and multiple files with CurlFile in one request
    • 1-230
      Section 33.6: Creating and sending a request with a custom method
    • 1-231
      Section 33.7: Get and Set custom http headers in php
    • 1-232
      Chapter 34: Reflection
    • 1-233
      Section 34.1: Feature detection of classes or objects
    • 1-234
      Section 34.2: Testing private/protected methods
    • 1-235
      Section 34.3: Accessing private and protected member variables
    • 1-236
      Chapter 35: Dependency Injection
    • 1-237
      Section 35.1: Constructor Injection
    • 1-238
      Section 35.2: Setter Injection
    • 1-239
      Section 35.3: Container Injection
    • 1-240
      Chapter 36: XML
    • 1-241
      Section 36.1: Create a XML using DomDocument
    • 1-242
      Section 36.2: Read a XML document with DOMDocument
    • 1-243
      Section 36.3: Leveraging XML with PHP's SimpleXML Library
    • 1-244
      Section 36.4: Create an XML file using XMLWriter
    • 1-245
      Section 36.5: Read a XML document with SimpleXML
    • 1-246
      Chapter 37: SimpleXML
    • 1-247
      Section 37.1: Loading XML data into simplexml
    • 1-248
      Chapter 38: Parsing HTML
    • 1-249
      Section 38.1: Parsing HTML from a string
    • 1-250
      Section 38.2: Using XPath
    • 1-251
      Section 38.3: SimpleXML
    • 1-252
      Chapter 39: Regular Expressions (regexp/PCRE)
    • 1-253
      Section 39.1: Global RegExp match
    • 1-254
      Section 39.2: String matching with regular expressions
    • 1-255
      Section 39.3: Split string into array by a regular expression
    • 1-256
      Section 39.4: String replacing with regular expression
    • 1-257
      Section 39.5: String replace with callback
    • 1-258
      Chapter 40: Traits
    • 1-259
      Section 40.1: What is a Trait?
    • 1-260
      Section 40.2: Traits to facilitate horizontal code reuse
    • 1-261
      Section 40.3: Conflict Resolution
    • 1-262
      Section 40.4: Implementing a Singleton using Traits
    • 1-263
      Section 40.5: Traits to keep classes clean
    • 1-264
      Section 40.6: Multiple Traits Usage
    • 1-265
      Section 40.7: Changing Method Visibility
    • 1-266
      Chapter 41: Composer Dependency Manager
    • 1-267
      Section 41.1: What is Composer?
    • 1-268
      Section 41.2: Autoloading with Composer
    • 1-269
      Section 41.3: Dierence between 'composer install' and 'composer update'
    • 1-270
      Section 41.4: Composer Available Commands
    • 1-271
      Section 41.5: Benefits of Using Composer
    • 1-272
      Section 41.6: Installation
    • 1-273
      Chapter 42: Magic Methods
    • 1-274
      Section 42.1: __call() and __callStatic()
    • 1-275
      Section 42.2: __get(), __set(), __isset() and __unset()
    • 1-276
      Section 42.3: __construct() and __destruct()
    • 1-277
      Section 42.4: __toString()
    • 1-278
      Section 42.5: __clone()
    • 1-279
      Section 42.6: __invoke()
    • 1-280
      Section 42.7: __sleep() and __wakeup()
    • 1-281
      Section 42.8: __debugInfo()
    • 1-282
      Chapter 43: File handling
    • 1-283
      Section 43.1: Convenience functions
    • 1-284
      Section 43.2: Deleting files and directories
    • 1-285
      Section 43.3: Getting file information
    • 1-286
      Section 43.4: Stream-based file IO
    • 1-287
      Section 43.5: Moving and Copying files and directories
    • 1-288
      Section 43.6: Minimize memory usage when dealing with large files
    • 1-289
      Chapter 44: Streams
    • 1-290
      Section 44.1: Registering a stream wrapper
    • 1-291
      Chapter 45: Type hinting
    • 1-292
      Section 45.1: Type hinting classes and interfaces
    • 1-293
      Section 45.2: Type hinting scalar types, arrays and callables
    • 1-294
      Section 45.3: Nullable type hints
    • 1-295
      Section 45.4: Type hinting generic objects
    • 1-296
      Section 45.5: Type Hinting No Return(Void)
    • 1-297
      Chapter 46: Filters & Filter Functions
    • 1-298
      Section 46.1: Validating Boolean Values
    • 1-299
      Section 46.2: Validating A Number Is A Float
    • 1-300
      Section 46.3: Validate A MAC Address
    • 1-301
      Section 46.4: Sanitze Email Addresses
    • 1-302
      Section 46.5: Sanitize Integers
    • 1-303
      Section 46.6: Sanitize URLs
    • 1-304
      Section 46.7: Validate Email Address
    • 1-305
      Section 46.8: Validating A Value Is An Integer
    • 1-306
      Section 46.9: Validating An Integer Falls In A Range
    • 1-307
      Section 46.10: Validate a URL
    • 1-308
      Section 46.11: Sanitize Floats
    • 1-309
      Section 46.12: Validate IP Addresses
    • 1-310
      Section 46.13: Sanitize filters
    • 1-311
      Chapter 47: Generators
    • 1-312
      Section 47.1: The Yield Keyword
    • 1-313
      Section 47.2: Reading a large file with a generator
    • 1-314
      Section 47.3: Why use a generator?
    • 1-315
      Section 47.4: Using the send()-function to pass values to a generator
    • 1-316
      Chapter 48: UTF-8
    • 1-317
      Section 48.1: Input
    • 1-318
      Section 48.2: Output
    • 1-319
      Section 48.3: Data Storage and Access
    • 1-320
      Chapter 49: Unicode Support in PHP
    • 1-321
      Section 49.1: Converting Unicode characters to “\uxxxx” format using PHP
    • 1-322
      Section 49.2: Converting Unicode characters to their numeric value and/or HTML entities using PHP
    • 1-323
      Section 49.3: Intl extention for Unicode support
    • 1-324
      Chapter 50: URLs
    • 1-325
      Section 50.1: Parsing a URL
    • 1-326
      Section 50.2: Build an URL-encoded query string from an array
    • 1-327
      Section 50.3: Redirecting to another URL
    • 1-328
      Chapter 51: How to break down an URL
    • 1-329
      Section 51.1: Using parse_url()
    • 1-330
      Section 51.2: Using explode()
    • 1-331
      Section 51.3: Using basename()
    • 1-332
      Chapter 52: Object Serialization
    • 1-333
      Section 52.1: Serialize / Unserialize
    • 1-334
      Section 52.2: The Serializable interface
    • 1-335
      Chapter 53: Serialization
    • 1-336
      Section 53.1: Serialization of dierent types
    • 1-337
      Section 53.2: Security Issues with unserialize
    • 1-338
      Chapter 54: Closure
    • 1-339
      Section 54.1: Basic usage of a closure
    • 1-340
      Section 54.2: Using external variables
    • 1-341
      Section 54.3: Basic closure binding
    • 1-342
      Section 54.4: Closure binding and scope
    • 1-343
      Section 54.5: Binding a closure for one call
    • 1-344
      Section 54.6: Use closures to implement observer pattern
    • 1-345
      Chapter 55: Reading Request Data
    • 1-346
      Section 55.1: Reading raw POST data
    • 1-347
      Section 55.2: Reading POST data
    • 1-348
      Section 55.3: Reading GET data
    • 1-349
      Section 55.4: Handling file upload errors
    • 1-350
      Section 55.5: Passing arrays by POST
    • 1-351
      Section 55.6: Uploading files with HTTP PUT
    • 1-352
      Chapter 56: Type juggling and Non-Strict Comparison Issues
    • 1-353
      Section 56.1: What is Type Juggling?
    • 1-354
      Section 56.2: Reading from a file
    • 1-355
      Section 56.3: Switch surprises
    • 1-356
      Section 56.4: Strict typing
    • 1-357
      Chapter 57: Sockets
    • 1-358
      Section 57.1: TCP client socket
    • 1-359
      Section 57.2: TCP server socket
    • 1-360
      Section 57.3: UDP server socket
    • 1-361
      Section 57.4: Handling socket errors
    • 1-362
      Chapter 58: PDO
    • 1-363
      Section 58.1: Preventing SQL injection with Parameterized Queries
    • 1-364
      Section 58.2: Basic PDO Connection and Retrieval
    • 1-365
      Section 58.3: Database Transactions with PDO
    • 1-366
      Section 58.4: PDO: connecting to MySQL/MariaDB server
    • 1-367
      Section 58.5: PDO: Get number of aected rows by a query
    • 1-368
      Section 58.6: PDO::lastInsertId()
    • 1-369
      Chapter 59: PHP MySQLi
    • 1-370
      Section 59.1: Close connection
    • 1-371
      Section 59.2: MySQLi connect
    • 1-372
      Section 59.3: Loop through MySQLi results
    • 1-373
      Section 59.4: Prepared statements in MySQLi
    • 1-374
      Section 59.5: Escaping Strings
    • 1-375
      Section 59.6: Debugging SQL in MySQLi
    • 1-376
      Section 59.7: MySQLi query
    • 1-377
      Section 59.8: How to get data from a prepared statement
    • 1-378
      Section 59.9: MySQLi Insert ID
    • 1-379
      Chapter 60: SQLite3
    • 1-380
      Section 60.1: SQLite3 Quickstart Tutorial
    • 1-381
      Section 60.2: Querying a database
    • 1-382
      Section 60.3: Retrieving only one result
    • 1-383
      Chapter 61: Using MongoDB
    • 1-384
      Section 61.1: Connect to MongoDB
    • 1-385
      Section 61.2: Get multiple documents - find()
    • 1-386
      Section 61.3: Get one document - findOne()
    • 1-387
      Section 61.4: Insert document
    • 1-388
      Section 61.5: Update a document
    • 1-389
      Section 61.6: Delete a document
    • 1-390
      Chapter 62: mongo-php
    • 1-391
      Section 62.1: Everything in between MongoDB and Php
    • 1-392
      Chapter 63: Using Redis with PHP
    • 1-393
      Section 63.1: Connecting to a Redis instance
    • 1-394
      Section 63.2: Installing PHP Redis on Ubuntu
    • 1-395
      Section 63.3: Executing Redis commands in PHP
    • 1-396
      Chapter 64: Sending Email
    • 1-397
      Section 64.1: Sending Email - The basics, more details, and a full example
    • 1-398
      Section 64.2: Sending HTML Email Using mail()
    • 1-399
      Section 64.3: Sending Email With An Attachment Using mail()
    • 1-400
      Section 64.4: Sending Plain Text Email Using PHPMailer
    • 1-401
      Section 64.5: Sending HTML Email Using PHPMailer
    • 1-402
      Section 64.6: Sending Email With An Attachment Using PHPMailer
    • 1-403
      Section 64.7: Sending Plain Text Email Using Sendgrid
    • 1-404
      Section 64.8: Sending Email With An Attachment Using Sendgrid
    • 1-405
      Chapter 65: Using SQLSRV
    • 1-406
      Section 65.1: Retrieving Error Messages
    • 1-407
      Section 65.2: Fetching Query Results
    • 1-408
      Section 65.3: Creating a Connection
    • 1-409
      Section 65.4: Making a Simple Query
    • 1-410
      Section 65.5: Invoking a Stored Procedure
    • 1-411
      Section 65.6: Making a Parameterised Query
    • 1-412
      Chapter 66: Command Line Interface (CLI)
    • 1-413
      Section 66.1: Handling Program Options
    • 1-414
      Section 66.2: Argument Handling
    • 1-415
      Section 66.3: Input and Output Handling
    • 1-416
      Section 66.4: Return Codes
    • 1-417
      Section 66.5: Restrict script execution to command line
    • 1-418
      Section 66.6: Behavioural dierences on the command line
    • 1-419
      Section 66.7: Running your script
    • 1-420
      Section 66.8: Edge Cases of getopt()
    • 1-421
      Section 66.9: Running built-in web server
    • 1-422
      Chapter 67: Localization
    • 1-423
      Section 67.1: Localizing strings with gettext()
    • 1-424
      Chapter 68: Headers Manipulation
    • 1-425
      Section 68.1: Basic Setting of a Header
    • 1-426
      Chapter 69: Coding Conventions
    • 1-427
      Section 69.1: PHP Tags
    • 1-428
      Chapter 70: Asynchronous programming
    • 1-429
      Section 70.1: Advantages of Generators
    • 1-430
      Section 70.2: Using Icicle event loop
    • 1-431
      Section 70.3: Spawning non-blocking processes with proc_open()
    • 1-432
      Section 70.4: Reading serial port with Event and DIO
    • 1-433
      Section 70.5: HTTP Client Based on Event Extension
    • 1-434
      Section 70.6: HTTP Client Based on Ev Extension
    • 1-435
      Section 70.7: Using Amp event loop
    • 1-436
      Chapter 71: How to Detect Client IP Address
    • 1-437
      Section 71.1: Proper use of HTTP_X_FORWARDED_FOR
    • 1-438
      Chapter 72: Create PDF files in PHP
    • 1-439
      Section 72.1: Getting Started with PDFlib
    • 1-440
      Chapter 73: YAML in PHP
    • 1-441
      Section 73.1: Installing YAML extension
    • 1-442
      Section 73.2: Using YAML to store application configuration
    • 1-443
      Chapter 74: Image Processing with GD
    • 1-444
      Section 74.1: Image output
    • 1-445
      Section 74.2: Creating an image
    • 1-446
      Section 74.3: Image Cropping and Resizing
    • 1-447
      Chapter 75: Imagick
    • 1-448
      Section 75.1: First Steps
    • 1-449
      Section 75.2: Convert Image into base64 String
    • 1-450
      Chapter 76: SOAP Server
    • 1-451
      Section 76.1: Basic SOAP Server
    • 1-452
      Chapter 77: Machine learning
    • 1-453
      Section 77.1: Classification using PHP-ML
    • 1-454
      Section 77.2: Regression
    • 1-455
      Section 77.3: Clustering
    • 1-456
      Chapter 78: Cache
    • 1-457
      Section 78.1: Caching using memcache
    • 1-458
      Section 78.2: Cache Using APC Cache
    • 1-459
      Chapter 79: Autoloading Primer
    • 1-460
      Section 79.1: Autoloading as part of a framework solution
    • 1-461
      Section 79.2: Inline class definition, no loading required
    • 1-462
      Section 79.3: Manual class loading with require
    • 1-463
      Section 79.4: Autoloading replaces manual class definition loading
    • 1-464
      Section 79.5: Autoloading with Composer
    • 1-465
      Chapter 80: SPL data structures
    • 1-466
      Section 80.1: SplFixedArray
    • 1-467
      Chapter 81: IMAP
    • 1-468
      Section 81.1: Connecting to a mailbox
    • 1-469
      Section 81.2: Install IMAP extension
    • 1-470
      Section 81.3: List all folders in the mailbox
    • 1-471
      Section 81.4: Finding messages in the mailbox
    • 1-472
      Chapter 82: HTTP Authentication
    • 1-473
      Section 82.1: Simple authenticate
    • 1-474
      Chapter 83: WebSockets
    • 1-475
      Section 83.1: Simple TCP/IP server
    • 1-476
      Chapter 84: BC Math (Binary Calculator)
    • 1-477
      Section 84.1: Using bcmath to read/write a binary long on 32-bit system
    • 1-478
      Section 84.2: Comparison between BCMath and float arithmetic operations
    • 1-479
      Chapter 85: Docker deployment
    • 1-480
      Section 85.1: Get docker image for php
    • 1-481
      Section 85.2: Writing dockerfile
    • 1-482
      Section 85.3: Building image
    • 1-483
      Section 85.4: Starting application container
    • 1-484
      Chapter 86: APCu
    • 1-485
      Section 86.1: Iterating over Entries
    • 1-486
      Section 86.2: Simple storage and retrieval
    • 1-487
      Section 86.3: Store information
    • 1-488
      Chapter 87: PHP Built in server
    • 1-489
      Section 87.1: Running the built in server
    • 1-490
      Section 87.2: built in server with specific directory and router script
    • 1-491
      Chapter 88: PSR
    • 1-492
      Section 88.1: PSR-4: Autoloader
    • 1-493
      Section 88.2: PSR-1: Basic Coding Standard
    • 1-494
      Chapter 89: PHPDoc
    • 1-495
      Section 89.1: Describing a variable
    • 1-496
      Section 89.2: Adding metadata to functions
    • 1-497
      Section 89.3: Describing parameters
    • 1-498
      Section 89.4: Collections
    • 1-499
      Section 89.5: Adding metadata to files
    • 1-500
      Section 89.6: Inheriting metadata from parent structures
    • 1-501
      Chapter 90: Design Patterns
    • 1-502
      Section 90.1: Method Chaining in PHP
    • 1-503
      Chapter 91: Compile PHP Extensions
    • 1-504
      Section 91.1: Compiling on Linux
    • 1-505
      Chapter 92: Common Errors
    • 1-506
      Section 92.1: Call fetch_assoc on boolean
    • 1-507
      Section 92.2: Unexpected $end
    • 1-508
      Chapter 93: Compilation of Errors and Warnings
    • 1-509
      Section 93.1: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
    • 1-510
      Section 93.2: Notice: Undefined index
    • 1-511
      Section 93.3: Warning: Cannot modify header information - headers already sent
    • 1-512
      Chapter 94: Exception Handling and Error Reporting
    • 1-513
      Section 94.1: Setting error reporting and where to display them
    • 1-514
      Section 94.2: Logging fatal errors
    • 1-515
      Chapter 95: Debugging
    • 1-516
      Section 95.1: Dumping variables
    • 1-517
      Section 95.2: Displaying errors
    • 1-518
      Section 95.3: phpinfo()
    • 1-519
      Section 95.4: Xdebug
    • 1-520
      Section 95.5: Error Reporting (use them both)
    • 1-521
      Section 95.6: phpversion()
    • 1-522
      Chapter 96: Unit Testing
    • 1-523
      Section 96.1: Testing class rules
    • 1-524
      Section 96.2: PHPUnit Data Providers
    • 1-525
      Section 96.3: Test exceptions
    • 1-526
      Chapter 97: Performance
    • 1-527
      Section 97.1: Profiling with Xdebug
    • 1-528
      Section 97.2: Memory Usage
    • 1-529
      Section 97.3: Profiling with XHProf
    • 1-530
      Chapter 98: Multiprocessing
    • 1-531
      Section 98.1: Multiprocessing using built-in fork functions
    • 1-532
      Section 98.2: Creating child process using fork
    • 1-533
      Section 98.3: Inter-Process Communication
    • 1-534
      Chapter 99: Multi Threading Extension
    • 1-535
      Section 99.1: Getting Started
    • 1-536
      Section 99.2: Using Pools and Workers
    • 1-537
      Chapter 100: Secure Remeber Me
    • 1-538
      Section 100.1: “Keep Me Logged In” - the best approach
    • 1-539
      Chapter 101: Security
    • 1-540
      Section 101.1: PHP Version Leakage
    • 1-541
      Section 101.2: Cross-Site Scripting (XSS)
    • 1-542
      Section 101.3: Cross-Site Request Forgery
    • 1-543
      Section 101.4: Command Line Injection
    • 1-544
      Section 101.5: Stripping Tags
    • 1-545
      Section 101.6: File Inclusion
    • 1-546
      Section 101.7: Error Reporting
    • 1-547
      Section 101.8: Uploading files
    • 1-548
      Chapter 102: Cryptography
    • 1-549
      Section 102.1: Symmetric Encryption and Decryption of large Files with OpenSSL
    • 1-550
      Section 102.2: Symmetric Cipher
    • 1-551
      Chapter 103: Password Hashing Functions
    • 1-552
      Section 103.1: Creating a password hash
    • 1-553
      Section 103.2: Determine if an existing password hash can be upgraded to a stronger algorithm
    • 1-554
      Section 103.3: Verifying a password against a hash
    • 1-555
      Chapter 104: Contributing to the PHP Manual
    • 1-556
      Section 104.1: Improve the ocial documentation
    • 1-557
      Section 104.2: Tips for contributing to the manual
    • 1-558
      Chapter 105: Contributing to the PHP Core
    • 1-559
      Section 105.1: Setting up a basic development environment
    • 1-560
      Appendix A: Installing a PHP environment on Windows
    • 1-561
      Section A.1: Download, Install and use WAMP
    • 1-562
      Section A.2: Install PHP and use it with IIS
    • 1-563
      Section A.3: Download and Install XAMPP
    • 1-564
      Appendix B: Installing on Linux/Unix Environments
    • 1-565
      Section B.1: Command Line Install Using APT for PHP 7
    • 1-566
      Section B.2: Installing in Enterprise Linux distributions (CentOS, Scientific Linux, etc)
    • 1-567
      Credits
    • 1-568
      You may also like

    FAQ

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    Recommendations

    Reviews

    | Collecting

    Sales Plans