Introduction to File Processing with PHP
Review of Course Outcomes 1. Implement file reading and writing programs using PHP. 2. Identify file access schemes, including: sequential file access direct file access indexed sequential file access. 3. Describe file-sorting and file-searching techniques. 4. Describe data compression and encryption techniques. 5. Design a rational database using E-R modeling techniques. 6. Build a relational database. 7. Write database queries using SQL. 8. Implement a web-based relational database using MySQL.
File Structures File Structures are persistent data structures Files composed of records Records composed of fields Files can be viewed as tables File -> Table Record -> Row Field -> Column
File Organization The data is stored as a collection of files. Each file is a sequence of records. A record is a sequence of fields. One approach: assume record size is fixed each file has records of one particular type only this case is easiest to implement; we will consider it further
Organization of Records in Files Heap – a record can be placed anywhere in the file where there is space Sequential – store records in sequential order, perhaps based on the value of the search key of each record Indexing – Keep two files, the Data File and an Index File and the data file. Index records hold file pointers of Data records Hashing – a hash function computed on some attribute of each record; the result specifies in which block of the file the record should be placed
Fixed-Length Records Simple approach: Store record i starting from byte n (i – 1), where n is the size of each record. Record access is simple but records may cross blocks Modification: do not allow records to cross block boundaries Ways to delete record i: move records i + 1,..., n to i,..., n – 1 move record n to i do not move records, but mark deleted record
Variable-Length Records Variable-length records arise in database systems in several ways: Storage of multiple record types in a file. Record types that allow variable lengths for one or more fields such as strings Record types that allow repeating fields (used in some older data models). We won’t talk about VL records
Sequential File Organization For sequential processing of entire file Records ordered by a search-key
Sequential File Organization Deletion – use pointer chains Insertion –locate the position where the record is to be inserted – if there is free space insert there – if no free space, insert the record in an overflow block – In either case, pointer chain must be updated Need to reorganize the file from time to time to restore sequential order
The CRUD paradigm Open the current version of a file Process it using the CRUD operations – Create records – Retrieve records – Update records – Delete records Output and close the new version of the file
Implementing CRUD paradigm in PHP Use PHP file functions There a many of them We will start with a simple subset that are similar to file functions used in C and in other C-based languages
The PHP filesystem functions php php
A C-like subset fopen – fgets – fwrite – fclose –
Some PHP File Tutorials