Tutorialul de bază PHP8+
Bazele
Introducere în PHP
Începerea lucrului
Executarea codului PHP
Problema cu codificările
Afișarea erorilor PHP
Cod complet pentru lansarea PHP
Cod îmbunătățit pentru lansare
Prezentarea generală a comenzilor PHP inițiale
Comentarii în PHP
Comentarii în manual
Dump-ul variabilelor
Funcții în PHP
Variabile
Utilizarea variabilelor
Modificarea valorilor variabilelor
Operații matematice cu numere
Operații matematice cu variabile
Prioritatea operațiilor matematice
Prioritate egală
Paranteze de grupare
Nuanțe de grupare
Fracții
Numere negative
Restul împărțirii
Ridicarea la putere
Prioritatea ridicării la putere
Șiruri de caractere
Adunarea șirurilor de caractere
Spații la adunarea șirurilor
Lungimea șirului
Problema cu chirilica
Etichete
Atributele etichetelor
Valori logice
Valoarea null
Conversia automată a tipurilor
Conversia automată la șir de caractere
Nuanțe ale conversiei la șir
Conversia la număr
Conversia la fracție
Conversia fracției la întreg
Conversia numărului la șir de caractere
Caracterele șirului
Cifre în șir
Accesarea cifrelor numărului
Nuanțe ale lucrului cu operația de atribuire
Operații prescurtate
Incrementare
Tipul prefix și postfix
Practică pentru găsirea erorilor
Practică pe operații
Practică pe formule
Array
Introducere în array-uri
Afișarea conținutului unui array
Elementul individual al array-ului
Array-uri asociative
Truc cu chei
Ordinea elementelor
Lungimea array-ului
Modificarea elementelor
Rescrierea elementelor array-ului
Incrementarea elementelor
Umplerea array-urilor
Specificarea explicită a cheilor
Chei din variabile
Practică în găsirea greșelilor
Condiții
Constructia if-else
Operatori mai mare și mai mic
Verificarea egalității
Verificarea inegalității
Compararea variabilelor
Tipuri de date și constructia if-else
Numere în ghilimele
Egalitate după valoare și tip
Inegalitate după valoare și tip
Nuanțe la compararea tipurilor de date
Condiții complexe în if-else
Și logic
Sau logic
Prioritatea operațiilor de comparare
Gruparea condițiilor
Inverterea enunțurilor
Constructia if-else și valorile booleene
Compararea nestrictă a valorilor logice
if scurtat
Nuanța operațiilor scurte
Comanda isset
Suprimarea avertismentelor
Verificarea elementelor array
Comanda empty
Opționalitatea comenzii else
Opționalitatea acoladelor
Problema opționalității acoladelor
Combinații if-else
Constructia elseif
if imbricate
Constructia switch
Opționalitatea default
Constructia match
Opționalitatea break
Operatorul ternar
Operatorul de coalescență cu null
Lanțuri de operatori de coalescență cu null
Operații logice
Determinarea părții orei
Verificarea lungimii șirurilor și array-urilor
Verificarea caracterului unui șir
Verificarea restului împărțirii
Practică pentru găsirea greșelilor
Practică if else
Bucle
Introducere
Bucla foreach
Bucla foreach cu chei
Bucla while
Bucla for
Condiții în bucle
Acumularea sumei numerelor
Acumularea sumei elementelor
Formarea șirurilor în buclă
Caracterul opțional al acoladelor
Problema caracterului opțional al acoladelor
Instrucțiunea break
Instrucțiunea continue
Lucrul cu steaguri
Bucle imbricate
Bucla for pentru tablouri
Umplerea tablourilor în buclă
Modificarea tablourilor în buclă
Sfaturi pentru scrierea codului
Practică pentru găsirea erorilor
Practică pe bucle
Multidimensionalitate
Introducere
Array tridimensional
Array-uri asociative
Array-uri arbitrare
Iterarea array-urilor multidimensionale
Iterarea array-ului tridimensional
Lucrul cu chei
Umplerea array-urilor multidimensionale
Umplerea cu numere în ordine
Array de array-uri asociative
Conversia array-urilor multidimensionale
Funcții matematice
Funcții pentru șiruri de caractere
Lungimea șirului
Registrul caracterelor
Tăierea șirurilor
Verificarea șirurilor
Căutarea în șiruri
Împărțirea șirurilor
Curățarea capetelor șirului
Afișarea șirului cu inserare
Formatarea reprezentării numerelor
Inversarea șirului
Umplerea șirului
Lucrul cu etichete
Codurile caracterelor
Numărarea subșirurilor
Părți ale șirului
Funcții pentru tablouri
Căutare în tablouri
Elemente de la capete
Segmentarea tablourilor
Îmbinarea tablourilor
Interval în tablou
Umplerea tablourilor
Combinarea tablourilor
Chei-valori
Inversare
Înlocuire
Eliminarea duplicatelor
Numărarea elementelor
Împărțirea în subtablouri
Sortare
Operații pe mulțimi
Generare aleatoare
Timp
Lucrul cu timestamp
Formatarea
Analiza datelor în format liber
Verificarea corectitudinii
Fus orar
Modificarea
Compararea ca șir de caractere
Compararea datei fără an
Includerea datei într-un interval
Compararea timestamp
Funcții personalizate
Introducere
Parametrii funcției
Mai mulți parametri
Parametrii-variabile
Parametrii opționali
Instrucțiunea return
Apelarea secvențială a funcțiilor
Nuanța return
Bucla și return
Aplicarea return în bucle
Metodă de lucru cu return
Steaguri în funcții
Operatori logici în funcții
Sfaturi privind funcțiile
Practică pentru găsirea greșelilor
Practică pe funcții
Domeniul de vizibilitate
Referințe-primitivi
Referințe-tablouri
Referințe în foreach
Variabile interne
Variabile externe
Variabile cu același nume
Variabile globale
Modificarea parametrilor
Parametri-referințe
Recursie
Recursie
Exemplu cu parametru
Suma elementelor array-ului
Recursie și array-uri multidimensionale
Suma unui array multidimensional
Manipulări cu elementele
Expresii regulate
Introducere
Operatori de repetiție
Paranteze de grupare
Escaparea caracterelor speciale
Lista caracterelor speciale
Acolade
Limitarea lăcomiei
Grupuri de caractere
Seturi de caractere
Inversarea seturilor de caractere
Particularitățile chirilicei
Caractere speciale în interiorul seturilor
Grupuri de caractere în interiorul seturilor
Caractere speciale-excepție în interiorul seturilor
Simbolul caret în interiorul seturilor
Particularitățile cratimei în interiorul seturilor
Începutul și sfârșitul liniei
Sfârșitul sau începutul cuvântului
Comanda 'sau'
Delimitatori
Escaparea delimitatorilor
Backslash
Verificarea șirului
Testarea automată a expresiilor regulate
Verificarea întregului șir
Capture la căutare
Căutarea tuturor potrivirilor
Toate potrivirile pe capture
Modificarea comportamentului căutării
Paranteze non-capturante
Capture la înlocuire
Capture în expresie
Capture numite
Capture numite în interiorul expresiei
Numărul general al capturelor
Lookahead
Lookbehind
Înlocuire cu callback
Modificatori
Ignorarea casei expresiilor regulate
Comentarii în expresiile regulate
Lucrul cu Unicode în expresiile regulate
Modificarea lăcomiei expresiilor regulate
Escaparea caracterelor obișnuite în expresiile regulate
Mai mulți modificatori ai expresiilor regulate
Escaparea automată a caracterelor speciale
Filtrarea array-ului
Împărțirea șirului în array
Formarea șirurilor
Inserarea variabilelor
Inserarea elementelor array
Inserarea elementelor array-urilor asociative
Buclă și inserarea variabilelor
Inserarea elementelor array-urilor în buclă
Inserarea elementelor array-urilor multidimensionale în buclă
Generarea tag-urilor
Generarea tag-urilor cu atribute
Buclă și generarea tag-urilor
Buclă și generarea tag-urilor din array-uri
Buclă și generarea tag-urilor și atributelor
Buclă și generarea tabelelor HTML
Generarea tabelului HTML cu ajutorul unei singure bucle
Generarea tabelului HTML cu ajutorul a două bucle imbricate
Inserarea codului PHP în HTML
Comanda scurtă echo
Afișarea variabilei în HTML
Afișarea elementelor array în HTML
Condiții și întreruperea codului PHP
Blocul else în întreruperea codului PHP
Blocul elseif în întreruperea codului PHP
Bucle și întreruperea codului PHP
Array în buclă în întreruperea codului PHP
Formulare
Introducere în formulare
Metoda de trimitere a formularului
Obținerea datelor din formulare
Obținerea datelor din formulare prin metoda GET
Obținerea datelor din formulare prin metoda POST
Prelucrarea formularului într-un singur fișier
Ascunderea formularului după trimitere
Păstrarea valorilor în formular
Păstrarea valorii implicite în formular
Cod scurtat pentru păstrarea valorilor implicite
Elementul textarea
Păstrarea valorii în textarea după trimitere
Caseta de bifat
Nuanțe ale utilizării casetelor de bifat
Păstrarea valorii în caseta de bifat
Butoane radio
Păstrarea valorii în butoanele radio
Selectoare
Atributul value în selectoare
Păstrarea valorii în selectoare
Cereri GET
Cereri GET folosind linkuri
Practică
Sesiuni
Introducere în sesiuni
Probleme posibile
Utilizarea sesiunilor pe o singură pagină
Ștergerea sesiunilor
Încheierea întregii sesiuni
Sesiuni și formulare
Scrierea array-urilor în sesiuni
Cookies
Introducere în cookie-uri
Problema setării cookie-urilor
Setarea instantanee a cookie-urilor
Contor de reîmprospătare a paginii
Timpul de viață al cookie-ului
Ștergerea cookie-urilor
Ștergerea instantanee a cookie-urilor
Sistemul de fișiere
Citirea fișierelor
Scrierea fișierelor
Combinația operațiunilor
Căi relative
Căi absolute
Avantajele căii absolute
Căi absolute către script
Redenumirea fișierelor
Mutarea fișierelor
Copierea fișierelor
Ștergerea fișierelor
Determinarea mărimii fișierelor
Verificarea existenței fișierelor
Crearea dosarelor
Ștergerea dosarelor
Redenumirea dosarelor
Mutarea dosarelor
Citirea conținutului dosarului
Deosebim dosarul de fișier
Analizăm conținutul dosarului
Inserarea fișierelor
Împărțirea machetei în elemente
Scrierea inserției în variabilă
Conectarea fișierelor
Conectarea o singură dată a fișierelor
Scrierea conectării în variabilă
Baze de date
Introducere în baze de date
PhpMyAdmin
Tabelul de testare users
Manipulări pregătitoare
Trimiterea interogărilor către baza de date
Identificarea erorilor în baza de date
Testarea funcționalității
Probleme cu codificările
Codul de testare complet
Obținerea rezultatului
Obținerea rezultatului sub formă de array
Formarea array-ului în buclă
Selecția înregistrărilor
Operații logice
Câmpurile de selecție
Inserarea înregistrărilor
Inserarea înregistrărilor la coloane lipsă
Actualizarea înregistrărilor
Ștergerea înregistrărilor
Sortarea înregistrărilor
Limitarea cantității
Numărarea cantității
Obținerea cantității
Interogări avansate
Organizarea Bazei de Date
Legarea tabelelor
Obținerea datelor din tabelele legate
Lanț de tabele legate
Legarea prin tabela de legătură
Relații de rudenie
Mai mulți descendenți
Relație dublă
Practică
Practică cu Baza de Date
Tabelul de testare users
Formatarea afișării
Ștergerea datelor
Vizualizarea datelor
Adăugarea datelor
Editarea datelor
Lucrul cu HTTP
Tutorial HTTP
Metoda cererii HTTP
Antetele cererii HTTP
Matricea antetelor cererii HTTP
Antetele răspunsului HTTP
Problema cu antetele răspunsului HTTP
Problema cu include
Trimiterea liniei de start a răspunsului HTTP
Trimiterea statusului răspunsului HTTP
Redirectări
Introducere în redirectări
Redirectare instantanee
Cereri GET și redirectare
Auto-redirectare cu adăugarea de parametri
Mesaje flash
Vector de mesaje flash
Salvarea formularelor
Mesaje de succes la trimitere
Redirectare la validarea formularului
Autentificare
Introducere
Autorizare
Sesiuni
Ieșire din sesiune
Înregistrare
Autorizare imediată la înregistrare
Adăugarea id-ului în sesiune
Ascunderea parolei
Verificarea login-ului pentru ocupare
Validare
Hash-uire
Adăugarea sării la înregistrare
Adăugarea sării la autentificare
Funcția password_hash
Profil
Cont
Schimbarea parolei
Confirmarea parolei
Ștergerea contului
Drepturi
Înregistrare cu separarea drepturilor
Drepturi și normalizarea bazei de date