PHP. filekezelés, stringek, reguláris kifejezések

Hasonló dokumentumok
PHP. Programozzuk a szervert

10. ÓRA. Fájlok használata

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Tartalomjegyzék. I. rész Az elsõ lépések

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

HTML ÉS PHP ŐSZI FÉLÉV

Programozás alapjai. 5. előadás

Bevezetés a számítástechnikába

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

Karakterláncok kezelése

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE

Fájlkezelés. Fájlok beágyazása az include() függvénnyel

Programozás II. Fájlkezelés

Operációs Rendszerek II. labor. 2. alkalom

Php ismétlés. Munkakönyvtár - környezet

Szkriptnyelvek. 1. UNIX shell

Pénzügyi algoritmusok

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Példák tematikus csoportosításban

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)

A PHP nyelv. Rövid jegyzet a Tanuljuk meg a PHP5 használatát könyv alapján. Készült Készítette Nagy Zsolt

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Operációs rendszerek 1.

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

M A T L A B A D A T O K B E O L V A S Á S A / K I Í R Á S A

Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

WEBFEJLESZTÉS 2. ADATTÁROLÁS, FÁJLOK

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

2018, Diszkrét matematika

Operációs rendszerek gyakorlat

Szerver oldali technológiák Szerver oldali script nyelvek PHP

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

BASH SCRIPT SHELL JEGYZETEK

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

C string műveletek (string.h alkalmazása)

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; }

chmod umask chown, chgrp

Bináris egység: bit (binary unit) bit ~ b; byte ~ B (Gb Gigabit;GB Gigabyte) Gb;GB;Gib;GiB mind más. Elnevezés Jele Értéke Elnevezés Jele Értéke

Reguláris vagy szabályos kifejezések használata

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Számítógépes Hálózatok GY 2.hét

Operációs Rendszerek. Windows Parancssor

ELTE SAP Excellence Center Oktatóanyag 1

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Programozás I gyakorlat. 10. Stringek, mutatók

Komputeralgebra rendszerek

BEVEZETÉS Az objektum fogalma

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

Programozás 6. Dr. Iványi Péter

Tematika. MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework

Fájl rendszer. Fájl koncepció Elérési módok Könyvtár szerkezet Védelem Konzisztencia szemantika

Operációs rendszerek gyak.

Adatbázisrendszerek I. Fájlszintű adattárolás C-ben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Pénzügyi algoritmusok

XML / CSV specifikáció

Algoritmizálás és adatmodellezés tanítása 1. előadás

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Bevezetés a programozásba I.

MailMasterPlus API. fejlesztői dokumentáció

Programozás II. 2. Dr. Iványi Péter

INFO1 Számok és karakterek

S z á m í t ó g é p e s a l a p i s m e r e t e k

INFO1 Számok és karakterek

Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Webdesign II Oldaltervezés 3. Tipográfiai alapismeretek

Youtube videó letöltés és konvertálás Linuxon

Smalltalk 2. Készítette: Szabó Éva

7. gyakorlat Sorozatok, Fájlkezelés

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

1. Alapok. Programozás II

Operációs rendszerek 1.

Adatbázisrendszerek I. File-szintű adattárolás C-ben. 1. gyakorlat

Listák, szótárak, fájlok Listák, szótárak, fájlok

Programzás I gyakorlat

Objektumorientált Programozás IV.

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

C programozási nyelv

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

2018, Funkcionális programozás

Szerver oldali technológiák Szerver oldali script nyelvek PHP

AWK programozás Bevezetés

2018, Diszkre t matematika. 8. elo ada s

Témák. Bevezetés az informatikába 7. Előadás. Szövegfile-ok típusai. Szövegszerkesztők típusai. Mértékegységek. Szövegszerkesztők szolgáltatásai

Munka kiszolgálói környezetben

Web programozás I. 4. előadás

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Biztonságos PHP a gyakorlatban

Átírás:

PHP filekezelés, stringek, reguláris kifejezések

Filekezelés

Filekezelés <?php!! $data = array(!!! firstname => David,!!! lastname => Bowie!! );!! $json = json_encode($data);!! file_put_contents( filename.txt, $json);!!! $json = file_get_contents( filename.txt );!! $data = json_decode($json, true);!!! unlink( filename.txt ); // törlés!?>

File, Readfile file teljes tartalmának betöltése egy tömbbe soronként $data = file( filename.txt );! foreach($data as $line){!! echo $line. \n ;! }!! readfile( filename.txt ); file teljes tartalmának betöltése egyből az output bufferbe

Output Buffer A kimenetet bufferelheti a php több szinten akár, aminek a kezelését végezhetjük az ob_ függvényekkel.! flush ob_clean ob_end_clean ob_end_flush ob_flush ob_get_clean ob_get_contents ob_start! ob_start(); $strangerobject->callhismethod(); $html = ob_get_clean(); echo(process($html)); Egy nem általunk készített osztály egy objektuma egyből a kimenetre szeretne írni, de azt mi előtte szeretnénk feldolgozni.

The f* words fclose feof fflush fgetc fgetcsv fgets fgetss flock fnmatch fopen fpassthru fputcsv fputs fread fscanf fseek fstat ftell ftruncate fwrite rewind :) $fp = fopen('somefile.txt', 'r');! $data = fgets($fp, 4096);! fseek($fp, 0);! $contents = fread($handle, filesize($fp));! fclose($fp);

The is_* words is_dir is_executable is_file is_link is_readable is_uploaded_file is_writable = is_writeable

The file* words is_file or is_dir file_exists fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype

Fájlrendszer kezelése touch copy mkdir scandir getcwd unlink rename rmdir glob chdir $records = glob( *porn* );! foreach($records as $record){!! if(is_file($record) unlink($record);! } $cwd = getcwd();! chdir( somewhere_else );! @mkdir( some_directory );! chdir($cwd);

Fájlok neve FILE dirname pathinfo realpath $path_parts = pathinfo( FILE );! echo $path_parts['dirname'];! echo $path_parts['basename'];! echo $path_parts['extension'];! echo $path_parts['filename'];

Fájlok beolvasása Az internetről! $csv = file_get_contents( http:// /export.csv ); fopen => readfile, file, file_get_contents

Stringek

Stringek http://www.php.net/manual/en/ref.strings.php addcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string convert_uudecode convert_uuencode count_chars crc32 crypt echo" explode" fprintf get_html_translation_table hebrev hebrevc hex2bin html_entity_decode htmlentities htmlspecialchars_decode htmlspecialchars implode" join lcfirst levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br" number_format ord parse_str print printf quoted_printable_decode quoted_printable_encode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_getcsv str_ireplace str_pad" str_repeat" str_replace" str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen" strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos" strrchr strrev strripos strrpos strspn strstr strtok strtolower" strtoupper" strtr" substr_compare" substr_count substr_replace" substr" trim" ucfirst" ucwords vfprintf vprintf vsprintf wordwrap

Stringek vs $bob = Dylan ;! $hello1= Hello ;! stringek összefűzése. (pont) operátorral $hello2 = $hello1..$bob; // Hello Dylan! $hello3 = Hi, $bob ; // Hi, Dylan! $hello4 = Hi, $bob ; // Hi, $bob Ha a feldolgozó idézőjelek közötti stringben egy változót talál, megpróbálja azt behelyettesíteni. Ellenben aposztrófok között nem tesz ilyet. Utóbbi ezért nyilván gyorsabb, előbbi néha hasznosabb lehet. $link= index.php ;! $html1 = <a href=\ $link\ > ;! $html2 = <a href=.$link. > ;! // <a href= index.php >

Stringek robbantása $string = alfa, béta, gamma, delta ;! $array = explode (,, $string);!! foreach($array as $index=>$item){!! $array[$index] = trim($item);! }!! $string = implode( -, $array);! // alfa-béta-gamma-delta!! echo substr($string, 5, 4); // béta! echo substr($string, 5, -11); // béta! echo substr($string, 16); // delta! echo substr($string, -5); // delta

HTML, mint string htmlspecialchars htmlentities htmlspecialchars_decode html_entities_decode strip_tags $html = file_get_contents( http://index.hu );! $cleanhtml = strip_tags($html, <b><i> );! echo $cleanhtml; Kiszedi a stringből az összes html taget, kivéve a <b> és <i> tageket.

Karakterek ábrázolása

Karakterek ábrázolása Számokat (bit mintákat) szövegként értelmezünk Az egyes számokhoz megjelenítendő szimbólumokat rendelünk. HÜK: Hasamra Ütök Kódolás: 0: a 1: b 2: c Ezt a kódtáblát használva a 012 jelsorozat az az `abc` szót jelenti. Egy byte - egy karakter. Binárisan ábázolva: 00000000 00000001 00000010!!! 0: a 1: b 2: c

ASCII 1 karakter - 7 bit (kibővített készleteknél 8 bit) maximum 255 különböző szimbólum Az alap ASCII-ben 0-31-ig és a 127-es (delete) kód vezérlőkaraktereket jelöl. A többiek (32-126) a megjeleníthető szimbólumok. öüóőúéáűíöüóőúéáűí? äßąůłýýģōůż? Sumér és akkád ékírás???

MB: MultiByte Egy byte minden ismert/lehetséges/használandó szimbólum ábrázolására nem elég. Megoldás? Használjunk többet! Akár 6-ot! Unicode kódolás UTF-8 És tud akkádul! Változó hosszúságú karakterek. Az első 127 kód megfelel az ASCII-nek

PHP MB A PHP stringkezelése byte alapon történik: 00000001 01010000 336: Ő karakter (UTF-8: U+0150 ~ Ő) 1: heading start karakter 80: P karakter Kiírásnál, összefűzésnél bevitelnél nincs probléma: az adat jön, megy a kódolást lelkesen beállítottuk! Műveleteknél azonban, ahol a PHP-nek valamilyen módon értelmeznie kell a stringet, meg kell mondanunk, ha több byte-os karakterkódolást használunk.

PHP mb_ functions mb_check_encoding mb_convert_case mb_convert_encoding mb_convert_kana mb_convert_variables mb_decode_mimeheader mb_decode_numericentity mb_detect_encoding mb_detect_order mb_encode_mimeheader mb_encode_numericentity mb_encoding_aliases mb_ereg_match mb_ereg_replace_callback mb_ereg_replace mb_ereg_search_getpose_name mb_regex_encoding mb_regex_set_options mb_send_mail mb_split mb_strcut mb_strimwidth mb_stripos mb_stristr mb_strlen mb_strpos mb_strrchr mb_strrichr mb_strripos mb_strrpos mb_strstr mb_strtolower mb_strtoupper mb_strwidth mb_substitute_character mb_substr_count mb_substr http://www.php.net/manual/en/ref.mbstring.php

RegExp

RegExp Jelentés: Reguláris kifejezések Minden reguáris kifejezés egy minta/szövegértelmező automata, mely egy reguláris nyelvet ismer fel. ~ eldönti egy szövegről, hogy az a nyelvbe tartozik-e/megfelel-e a mintának A gykorlatban több elképzelés és megvalósítás létezik - POSIX - PCRE

PCRE - Perl Compatible Regular Expressions A PHP is, ahogy a világ nagy része ezt használja. A reguláris kifejezéseket végrehajtó motor optimalizál, a hatékonyság érdekében több féle algoritmussal képes dolgozni - gyors DFA, lassabb visszalépéses megoldás (NFA). fájlnév kiterjesztés vizsgálat: /\.(jpg jpe jpeg png gif gif svg)$/i e-mail cím ellenőrzés: \b[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}\b

PHP RegExp preg_grep preg_match preg_match_all preg_quote preg_replace preg_replace_callback preg_split

Gyors referencia. Any character except newline. \. A period (and so on for \*, \(, \\, etc.) ^ The start of the string. $ The end of the string. \d,\w,\s A digit, word character [A-Za-z0-9_], or whitespace. \D,\W,\S Anything except a digit, word character, or whitespace. [abc] Character a, b, or c. [a-z] a through z. [^abc] Any character except a, b, or c. aa bb Either aa or bb.? Zero or one of the preceding element. * Zero or more of the preceding element. + One or more of the preceding element. {n} Exactly n of the preceding element. {n,} n or more of the preceding element. {m,n} Between m and n of the preceding element.??,*?,+?,{n}?, etc. Same as above, but as few as possible. (expr) Capture expr for use with \1, etc. (?:expr) Non-capturing group. (?=expr) Followed by expr. (?!expr) Not followed by expr. http://regexpal.com/