Formalno, datoteka dobiva sadržaj PHP konstrukcije sličan je datoteci, ali sadržaj pročitanog sadržaja smješta u niz, a ne u niz nizova, a omogućuje vam da odredite pomak u datoteci iz koje ćete početi čitati.
Redovito čitanje kroz fopen / fgets / fclose postaje manje relevantno. Pogodnije je čitati sadržaj datoteke ili cijele stranice web-lokacije, a zatim s njom obavljati potrebne radnje. PHP datoteka dobiti sadržaj izgradnje omogućuje stvaranje učinkovitijih i učinkovitih algoritama. obrada informacija.
sintaksa:
Ovdje $ filename je naziv datoteke ili URL stranice, $ use_include_path omogućuje traženje datoteke u include pathu, $ context je resurs kreiran stream_context_create () konstrukcijom, $ offset je offset za početak čitanja, $ maxlen je maksimalna količina podataka za čitanje ,
Obično se koristi jednostavniji PHP sadržaj:
U ovom primjeru sadržaj stranice se čita u $ cLine (1) varijabli. Navedeni je URL. Zapravo, stranica (2) je predstavljena PHP phpinfo () konstruktom, to jest, nije tekst od tri retka koji se čita, već rezultat izvršenja ove funkcije.
Kao što možete vidjeti, rezultat je punopravna stranica, dok PHP datoteka dobiva sadržaj konstruirati na (http ...) čitati i pisati unutarnji sadržaj ove stranice u $ cLine varijabli.
Treba imati na umu da korištenje parametra $ context otvara velike mogućnosti.
U uobičajenoj praksi korištenje svih parametara osim $ filename nije popularno pravilo. Međutim, vrijednost koju je stvorio stream_context_create () konstruirati i koristiti kao parametar $ context omogućuje vam pisanje vrlo složenih algoritama za dobivanje potrebnih informacija.
Različiti sustavi datoteka, stream handlers (omotači) zahtijevaju različite parametre i opcije za opisivanje konteksta. Može se stvoriti kroz konstrukcije stream_context_create (stream_context_set_option, stream_context_set_params).
Umjesto specifičnog URL adresa Parametar $ filename može se predstaviti nazivom varijable. To omogućuje analizu sadržaja stranica u automatskom programabilnom načinu, prepoznavanje imena stranica, određivanje veza, izdvajanje potrebnih informacija.
Možete stvoriti vlastiti parser, web-pretraživač i pisati programe za distribuiranu obradu informacija. Zadatak je relevantan, zanimljiv i praktičan.
Nema problema, koju datoteku čitati. U sljedećoj, složenoj verziji, izrada datoteke php sadržaj je primjer činjenice da se "Word" datoteka može čitati bez problema:
Ovdje je složen dokument koji se koristi za testiranje PHPOffice / PHPWord knjižnice. MS Word datoteka (* .docx), kao što znate, je zip-arhiva, unutar koje se nalaze informacije o Open XML standardu .
U pravilu, dokumentne datoteke su prilično velike i složene, ali PHP datoteka dobiva sadržaj konstruira se s lakoćom čitanja. Specifičnost ovog konkretnog primjera je da obrada dokumenta korištenjem isključivo PHPOffice / PHPWord knjižnice ne pruža potrebne mogućnosti i jednostavno je nemoguće slijedno čitati datoteku.
U ovom dokumentu svi njegovi elementi (riječi, odlomci, formule, slike, elementi pravopisa) opisani su nizom oznaka, od kojih se neke mogu predstaviti nizom objekata ugniježđenih jedan u drugi.
Ako uzmete primjer dokumenta (* .docx) s tablicama, situacija se uopće ne može riješiti sekvencijalnom obradom datoteke. Potrebno je barem dva prolaza kroz tijelo dokumenta, ako ne ići posebno, na primjer, kada se tablice međusobno gnijezde.
Ako čitanje složenih datoteka ne uzrokuje probleme, onda problemi s radom s jednostavnim datotekama. U početku, to bi trebalo shvatiti kao aksiom: PHP čita datoteku kako bi sadržaj bio ispravno konstruiran. Čak i ako ne koristite određene parametre, najjednostavnija verzija njezine aplikacije uvijek će raditi kako treba.
Teškoće uzrokuju kutne zagrade i kodiranje datoteka. Potrebno je razlikovati rad unutar algoritma od prikazivanja rezultata u prozoru preglednika. Na slici s primjerom Wordove datoteke, linija (1) - $ cLine = scChangeLTGT ($ cLine) - poziva funkciju pretvaranja para kutnih zagrada u posebne znakove “<” i “>”, inače samo pročitana datoteka ne može uvijek biti prikazana u prozoru preglednika. Kako pisati ovu funkciju nije važno, ali važno je ne zaboraviti da čitanje informacija može sadržavati XML i HTML oznake, a to zahtijeva posebnu pozornost.
Sljedeća točka: kodiranje datoteka. Nije uvijek jednostavna tekstualna datoteka ne stvara probleme. Ako se čita tekstualna informacija, prisutnost ruskih slova može stvoriti određene poteškoće (2).
$ cLine = iconv ('UTF-8', 'CP1251', $ cLine). U ovom kontekstu, upotreba funkcije iconv () s pravim smjerom pretvorbe važna je ne samo u odnosu na PHP "file get contents http://" za čitanje stranice stranice, već i kada se čita obična lokalna datoteka.
Ako je rezultat čitanja "nevidljiv", prvo je provjeriti kodiranje znakova.