Bahay / Mga game console / Paano basahin ang php file. Paggawa, pagbabasa at pagsulat ng Php file. Mga kapaki-pakinabang na pagdaragdag at pag-andar ng PHP para sa pagtatrabaho sa isang bukas na file

Paano basahin ang php file. Paggawa, pagbabasa at pagsulat ng Php file. Mga kapaki-pakinabang na pagdaragdag at pag-andar ng PHP para sa pagtatrabaho sa isang bukas na file

Ang PHP ay lumitaw nang mas huli kaysa sa mga programming language na pinalakas ang kanilang mga posisyon at bumuo ng mga pangkalahatang ideya tungkol sa syntax, logic, variable at iba pang mga bagay sa programa. Ang mga file at pag-andar para sa pagtatrabaho sa kanila ay hindi umunlad, at kahit na ang problema sa pag-encode ng file, na lumitaw para sa mga natural na kadahilanan, ay hindi humantong sa mga radikal na bagong solusyon.

Pangkalahatang tala

Ang pangunahing gawain sa mga file, anuman ang mga ito, ay binubuo ng pagbubukas, pagbabasa/pagsusulat at pagsasara. Maaari mong gamitin ang mga function ng pagharang/pag-unblock ng access sa isang file habang ito ay pinoproseso, maaari mong itakda ang read/write na posisyon sa file - lahat ay katulad ng dati, sa malayong nakaraan.

Ang isang mahalagang punto sa PHP ay ang kasaganaan ng mga function para sa pagtatrabaho sa mga file at mga opsyon para sa paggamit ng mga ito. Sa pagsasagawa, sapat na ang paggamit ng simple ngunit gumaganang mga opsyon. Ang isang file ay, una sa lahat, memorya ng programa. Maaari kang mag-imbak ng impormasyon dito. Ang layunin ng anumang programa, ang layunin ng anumang website ay ipakita, iproseso at tiyakin ang kaligtasan ng impormasyon.

Mahalagang pangyayari

Dati, hindi natitinag ang pangangailangan para sa compatibility, kahit mula sa ibaba hanggang sa itaas. Ibig sabihin, ang isang program na minsang nakasulat sa isang bersyon ng isang programming language ay perpektong pinagsama-sama/nabibigyang kahulugan sa susunod na bersyon. Sa modernong programming hindi ito ang kaso. Ang pangangailangan para sa pagiging tugma ng mga syntactic na istruktura ng isang wika ay naging isang bagay ng kasaysayan, at ang pakikibaka sa pagitan ng mga estilo at mga tool sa programming at mga bersyon ng ilang mga tool ay naging pamantayan ng kanilang buhay.

Ang pagtatrabaho sa mga file, gayundin sa mga database, ay kasinghalaga ng interface ng site. Ang una ay dapat na binuo sa paraang kapag binabago ang platform, hosting, o bersyon ng wika, hindi na kailangang baguhin ang code ng site. Ang interface para sa pagtatrabaho sa mga file ay dapat na kasama sa isang hiwalay na script at tiyakin ang buong compatibility, tulad ng disenyo ng site ay dapat na sapat na umangkop sa anumang device, browser at magbigay ng iba pang functionality ng site na may parehong mga kakayahan.

Basahin at baguhin ang iyong sarili

Maaari bang baguhin ng isang programa ang sarili nito, iyon ay, maaari bang mapabuti ang isang script? Hanggang ngayon, ang tanong na ito ay interesado sa marami. Ngunit ang gawain ay mukhang mas praktikal: Pagbabasa ng PHP PHP file. Hindi palaging malulutas ng isang developer ang isang partikular na problema sa pamamagitan ng pagsusulat ng partikular na code. Minsan ito ay kinakailangan upang baguhin ito kapag ang isang bisita ay dumating sa site at bumuo ng isang tanong na hindi foreseen sa yugto ng pag-unlad.

Tulad ng sa lahat ng iba pang mga kaso, una sa lahat kailangan mong buksan ang file. Hindi mahalaga kung umiiral ang file na ito o wala. Kung alam na ang file ay umiiral (ang file_exists() function ay nagbibigay ng isang positibong sagot), ang fopen() function ay ginagamit na may access 'r', 'r+', 'a', 'a+'. Kung ang file ay wala pa, pagkatapos ay may access na 'a', 'a+', 'w', 'w+'. Ang resulta ng pagbubukas ng isang file ay ang descriptor nito. Ang file ay sarado gamit ang fclose() function.

Maginhawang gumamit ng PHP upang basahin ang isang file sa isang array kapag hindi na kailangang iproseso ito sa oras ng pagbabasa.

if (file_exists ($fName)) (

$aLines = file($fName)

Sa opsyong ito, ang bawat linya ng file ay napupunta sa array element nang sunud-sunod. Dapat tandaan na ang file() o file_get_contents() ay hindi kailangang buksan ang file at isara ito.

Kapag ang input file ay masyadong malaki at kailangan mong maghanap lamang ng kaunting impormasyon, o para sa iba pang mga kadahilanan, maaari mong gamitin ang PHP upang basahin ang file sa bawat linya. Nagbibigay ang PHP ng kakayahang gawin ito sa mga function na fgets() at fgetc().

$fvs = fopen($fName, "r")

habang ((false !== ($cLine = fgets($fvs, 2000)))) (

$cLines .="
" . $i . "). " . $cLine

Ang parehong mga pagpipilian ay gumagana nang walang kamali-mali. Gayunpaman, kapag nagsasagawa ng pagbabasa ng PHP ng isang PHP file para sa pagbabago sa ibang pagkakataon, dapat mag-ingat. Hindi laging posible na mahulaan kung paano ito gagamitin ng isang bisita sa yugto ng pagbuo ng site. Mas mabuti kung ang mga script ay binago sa loob ng mga function ng site, at ang kontrol sa pagbabagong ito ay hindi available sa bisita, kasama ang resource administrator.

Nagse-save ng mga resulta

Ang natanggap at na-update na impormasyon ay isinulat sa file ng fputs() function na linya sa linya o ng file_put_contents() function sa kabuuan.

$fName = $_SERVER["DOCUMENT_ROOT"] . "/tmp/scData.php"

$fvs = fopen($fName, "a")

kawan($fvs, LOCK_EX)

$cLine = "1 linya". chr(10)

fputs($fvs, $cLine)

$cLine = "2 linya" . chr(10)

fputs($fvs, $cLine)

kawan($fvs, LOCK_UN)

Sa line-by-line na opsyon sa pag-record, maaari mong manipulahin ang data sa panahon ng proseso ng pag-record sa pangalawang kaso, ang nakasulat na string o array ay inilalagay sa buong file.

$file = " scData.php "

$cContents = file_get_contents($file)

// pagdaragdag ng entry

$cContents .= "bagong entry\n"

// isulat ang file pabalik

file_put_contents($file, $cContents)

Ang pagbabasa at pagsusulat ng mga PHP file ay madali at natural. Gayunpaman, mahalagang tandaan: ang bawat file ay may pangalan, extension at landas (folder). Upang makapagbasa at makapagsulat ng mga file ang script ng PHP, dapat ay may naaangkop na mga karapatan ang script. Awtomatikong nalalantad ang mga ito sa pagho-host, ngunit sa ilang mga kaso kailangan nilang palawakin.

Sa ilang mga kaso, maaaring kanais-nais na i-verify ang mga resulta sa pamamagitan ng pagsasagawa ng test read. Ang pagsusulat ng mga PHP file ay nangangailangan nito sa panahon ng pag-unlad, ngunit sa ilang mga kaso, sa mga interes ng seguridad o pagiging maaasahan ng site, ang pagsuri sa pag-record ng data ay mahalaga.

Isang tampok na katangian ng PHP, MySQl, JavaScript, at lalo na ng mga browser: tahimik na nagpapahintulot sa ilang mga error na mangyari. “Hindi kinikilala, hindi tapos...” - hindi isang napakahusay na pagsasanay sa frontline teknolohiya ng impormasyon, ngunit tinuturuan nito ang mga developer na huwag magkamali at magsulat ng malinis, mataas na kalidad na code, na hindi rin masama.

PHP at nagtatrabaho sa mga tunay na dokumento

Ang pagbabasa ng PHP ng PHP file ay tiyak na praktikal na interes, ngunit ito ang larangan ng programming. Interesado ang user at bisita sa site sa impormasyon ng isang inilapat na kalikasan, na nakasanayan niyang makita sa anyo ng mga talahanayan at dokumento, lalo na sa *.xlsx at * na mga format. docx file. Ito ay mga file sa MS Excel at MS Word na format.

Ang mga listahan ng mga kalakal, mga presyo, mga katangian ay karaniwang nabuo sa anyo ng mga talahanayan, kaya PHP pagbabasa Excel file ay may makabuluhang kahalagahan.

Ang PHPExcel at PHPWord na mga aklatan ay binuo upang gumana sa mga naturang file. Gayunpaman, ang mga nilalaman ng *.xlsx at *.docx file ay ipinakita sa pamantayan ng OOXML, iyon ay, ang tunay, naiintindihan na dokumento ay ipinakita sa isang zip archive. Ang Zip archive ay isang set ng mga file, kabilang ang mga larawan, bagay, formula, at insert mula sa iba pang mga program. Ang mga text file dito ay kinakatawan ng mga paglalarawan sa anyo ng mga tag. Ang pagbabasa ng naturang file ay hindi sapat; kailangan mong i-parse ito upang makuha ang mga nilalaman at istraktura para sa paggamit at pagbabago.

Nangangahulugan ito na ang read operation ay nagiging isang archive opening procedure. Binubuksan ng mga aklatang ito ang archive ng dokumento nang nakapag-iisa at nagbibigay sa developer ng malawak na function para sa pagbabasa, pagproseso at pagsusulat ng mga naturang dokumento.

Mga talahanayan ng Excel

include_once 'PhpOffice/PhpExcel/IOFactory.php'

function na scGetExcelFile($xls)(

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

//ang array na ito ay naglalaman ng mga arrays ng mga string

$aSheet = $objPHPExcel->getActiveSheet()

$array = array()

//pagproseso

foreach($aSheet->getRowIterator() bilang $row)(

$cellIterator = $row->getCellIterator()

foreach($cellIterator bilang $cell)(

array_push($item, iconv("utf-8", "cp1251", $cell->getCalculatedValue()))

array_push($array, $item)

Ang pagbabasa at pagproseso ng mga file ng Excel ay mas mahirap iproseso Mga dokumento ng salita. Ang pinakamagandang opsyon, kung kailangan mong magpatupad ng seryosong proyekto para sa pagbabasa at pagproseso ng inilapat na impormasyon, ay ang master muna ang PHPWord library. Bibigyan ka nito ng magandang karanasan at mabilis na pag-unawa sa mga detalye ng isyu.

Mga Word Document

Dalawang linya lang:

$oWord = bagong \PhpOffice\PhpWord\PhpWord()

$oDocx = $this->oWord->loadTemplate($cFileName)

Ang dokumentong $cFileName ay magagamit na ngayon para sa pagproseso. Susunod, ang archive ay binuksan, ang mga nilalaman nito ay pinili at pinag-aralan, na maaaring ipakita sa website, baguhin at isulat pabalik.

$zipClass = bagong ZipArchive()

$zipClass->open($this->tempFileName)

// basahin ang buong nilalaman ng dokumento

para sa ($i=0; $i<$zipClass->numFiles; $i++) (

$cNameIn = $zipClass->getNameIndex($i)

$cNameInExt = substr($cNameIn, -4)

kung (($cNameInExt == ".xml") || ($cNameInExt == "rels")) (

// ang mga file na may mga extension na ".xml" at ".xml.rels" ay naka-save sa talahanayan ng dokumento

// bawat linya ng xml ay nakasulat na may natatanging numero sa pagkakasunud-sunod

$cBodyIn = $zipClass->getFromName($cNameIn)

$cBodyInLen = strlen($cBodyIn)

// lahat ng iba pang mga file ay nakasulat sa folder ng dokumento bilang ay

$cNameOnly = substr($cNameIn, strrpos($cNameIn, "/") + 1)

$zipClass->getFromName($cNameIn, $cWorkPath); // nilalaman bilang isang file

Ang mga pagkakataong inaalok ng PHP Excel at PHP Word ay nagpapahintulot sa iyo na manipulahin ang mga tunay na dokumento at gawing may kaugnayan ang kanilang nilalaman sa anumang oras. Sa dynamic na mundo ngayon, ito ay nagiging napakahalaga. Ang sentro ng grabidad ay matagal nang lumipat mula sa lokal na paggamit ng teknolohiya ng computer patungo sa virtual na espasyo sa Internet. Samakatuwid, ang paglikha ng mga talahanayan at dokumento sa mga lokal na produkto ng Microsoft ay hindi gaanong mahusay kaysa sa pagtatrabaho sa mga naturang dokumento sa awtomatiko at semi-awtomatikong mode sa isang website, na naa-access hindi lamang sa lumikha ng talahanayan o dokumento, kundi pati na rin sa mga mamimili nito.

Mga text file, panibagong buhay

Sa unang pagtataya, ang mga text file ay mas simple kaysa sa mga PHP file o mga dokumento ng application. Gayunpaman, mayroong isang bagay na dapat isipin dito. Ang mga read/write operation ng naturang mga file ay ipinahiwatig na sa itaas, ngunit ang kahulugan ng naturang mga file ay mas mahalaga.

Dahil mayroong isang ibinigay bilang isang kliyente at isang server (ang una ay pinangungunahan ng JavaScript, ang pangalawa ay sa pamamagitan ng PHP), kung gayon kahit na ang mga mekanismo ng cookie at session ay hindi makayanan ang pangangailangan na maglipat ng impormasyon sa pagitan ng mga script, pahina, at ilang mga proseso.

Posibleng ipakita ang nais na mga pagbabago sa database, ngunit para sa lahat ng kanilang mga pakinabang at bilis, ang maliit na pansamantala o permanenteng mga text file ay maaaring maging isang mas kawili-wiling opsyon para sa pagpapadala ng impormasyon. Kung hindi ka gagawa ng maraming maliliit na file at kontrolin ang laki ng mga ito, maaari silang maging partikular at mas nababaluktot na bersyon ng isang database.

Ang pagbabasa ng PHP ng isang text file ay mabilis, maaari itong agad na mai-parse sa isang istraktura, array o bagay. Ang huli ay napakahalaga, dahil pinapayagan ka nitong lumikha ng mga bagay na nabubuhay sa labas ng oras na inilaan script ng PHP, na, tulad ng alam mo, ay maaari lamang umiral sa server at sa oras lamang na na-load ang pahina, isang AJAX na tugon ang nabuo, o para sa isa pang dahilan na nagiging sanhi ng paglunsad ng PHP interpreter.

Kung iisipin mo kung ano text file- ito ang nilalaman at istraktura mula sa developer, ang PHP file ay ang syntax ng interpreter kasama ang lohika ng developer, at ang "tag" na mga paglalarawan na html, css, xml ay mas semantic na elemento, ngunit kinokontrol ng mga static na pamantayan. Ang isa ay maaaring dumating sa konklusyon na marahil ay oras na para sa mga file na makakuha ng bagong nilalaman, at ito mismo ang dapat matukoy ang kanilang kalidad at lohika ng paggamit. Ito ay tiyak dahil ang programming ay hindi pa handa para sa susunod na yugto ng pag-unlad nito na ang mga file ngayon ay nananatiling simpleng mga file na nilikha ng developer at tinutukoy ang kanilang paggamit.

Ang pinaka-kawili-wili at promising na bagay ay kapag ang PHP ay nagbabasa ng PHP file nang nakapag-iisa kapag kailangan. At ang isang simpleng PHP na nagbabasa ng isang linya mula sa isang file ay nagreresulta sa paglikha ng isang bagay, hindi bababa sa estado kung saan ito na-save. Ang mga ito ay hindi ganap na pamilyar na mga ideya, ngunit sa modernong mundo ang lahat ay mabilis na nagbabago.

Naka-block ang JavaScript sa iyong browser. Mangyaring paganahin ang JavaScript para gumana ang site!

Paggawa gamit ang mga file

Ang pagmamanipula ng file ay isang mahalagang tool ng PHP.

Kasama ang mga panlabas na file

Maaari kang magsama ng file sa bawat dokumento ng PHP gamit ang pagtuturo isama ang(). Ang argumento nito ay ang landas patungo sa file. Ang pagtuturo na ito ay maginhawang gamitin kapag mayroon kang magkaparehong piraso ng code sa maraming mga programang PHP. Ang mga nilalaman ng kasamang file ay pinoproseso bilang plain HTML text. Upang ang mga nilalaman ng file na ito ay maproseso bilang isang PHP program, dapat itong napapalibutan ng mga tag ng pagbubukas at pagsasara ng PHP.

Halimbawa 1

Gamit ang include() ...Ang pangunahing bahagi..."; ?>

Echo"

...Pangkalahatang pagbati...

"

RESULTA NG HALIMBAWA 1:

...Pangkalahatang pagbati...

...Ang pangunahing bahagi...

SA sa kasong ito magiging pareho ang resulta kung ang include file top.php ay naglalaman lamang ng isang linya ng HTML na teksto:

...Pangkalahatang pagbati...

Ang mga kasamang file ay maaaring magbalik ng mga halaga tulad ng mga function. Ang paggamit ng return statement ay nagtatapos sa pagpapatupad ng file na ito sa parehong paraan tulad ng mga function.

Halimbawa 2

Paggamit ng isang include() na pahayag na nagbabalik ng isang halaga Ang kasamang file ay nagbalik ng $res"; ?>

Isama ang file top.php sa PHP program:

RESULTA NG HALIMBAWA 2:

Ibinalik ang kasamang file 56

Mga tagubilin isama ang() maaaring magamit sa loob ng isang loop. Sa isang loop isama ang() ay isinasagawa sa bawat pag-ulit. Magagamit ito para magsama ng maraming file. Halimbawa:

Para sa ($i=1; $i<=5; $i++) include("incfile{$i}.htm");

Ang pagtukoy sa pangalan ng kasamang file at paglo-load nito ay paulit-ulit sa tuwing tatawag ka isama ang(). Nangangahulugan ito na kung nagbago ang nilalaman ng kasamang file mula noong nakaraang tawag, mailo-load ang bagong nilalaman.

Operator isama ang() maaari ding isama sa katawan ng isang conditional statement.

Bagama't katulad ng hitsura sa paggana, isama ang() ay hindi isang function, ngunit isang espesyal na pagbuo ng wika.

Upang ipahiwatig na isang beses lang kailangang isama ang file, ginagamit ang operator na include_once().

Pagsusuri ng file

Ang PHP ay naglalaman ng maraming mga function na nagbibigay ng impormasyon tungkol sa mga file. Ang pinaka ginagamit ay:

  • file_exists()- tinutukoy ang pagkakaroon ng isang file. Halimbawa: kung (!file_exists("aaa.php")) echo "Attention! File aaa.php not found!";
  • is_file()- tinutukoy kung ang bagay na sinusuri ay isang file. Halimbawa: kung (is_file("bbb.txt")) echo "Makatiyak ka, ang bbb.txt ay isang file";
  • is_dir()- tinutukoy kung ang bagay na sinusuri ay isang direktoryo. Halimbawa: kung (is_dir("/tmp")) echo "Sa katunayan, ang /tmp ay isang direktoryo";
  • is_readable()- tinutukoy kung ang file ay nababasa. Halimbawa: kung (is_readable("db.dbf")) echo "mababasa ang db.dbf";
  • is_writable()- tinutukoy kung ang file ay maisusulat. Halimbawa: kung (is_writable("db.dbf")) echo "Maaari kang sumulat sa db.dbf";
  • filesize()- tinutukoy ang laki ng file sa bytes.
  • oras ng pelikula()- tinutukoy ang petsa at oras na huling binago ang file.
  • fileatime()- tinutukoy ang petsa at oras ng huling pag-access sa file.

Halimbawa 3

Impormasyon ng file "; echo "$f - ".(is_dir($f) ? "" : "hindi ")."
"; echo "$f ".(is_readable($f) ? "" : "not ")."
"; echo "$f ".(is_writable($f) ? "" : "not ")."
"; echo "ang laki ng $f sa bytes ay ".(filesize($f))."
"; echo "huling binago ang $f - ".(date("d M Y H:i", filmtime($f)))."
"; echo "huling tawag sa $f - ".(date("d M Y H:i", fileatime($f)))."
"; } ?>

RESULTA NG HALIMBAWA 3:

Top.php - file top.php - hindi isang directory na top.php ang nababasa top.php is writeable size of top.php in bytes - 732 last change top.php - 04 Oct 2005 20:21 last access to top.php - 20 Okt 2005 14:01

Pansin! Ang mga function na ito ay hindi gumagana sa mga tinanggal na file. Maaari lamang silang mailapat sa lokal na file system.

Pamamahala ng file

Ang PHP ay naglalaman ng maraming mga tampok sa pamamahala ng file. Ang pinaka ginagamit ay:

  • hawakan()- lumilikha ng isang walang laman na file na may ibinigay na pangalan. Kung mayroon nang ganoong file, babaguhin ng function ang petsa ng pagbabago. Halimbawa: touch("ex1.txt");
  • kopya()- kinokopya ang file. Upang kopyahin ang mga file sa PHP, gamitin ang function na kopya ($source, $result). Kailangan lang nitong ipasa ang dalawang parameter - ang source $source at ang pangalan ng copy file - $result. Ito ay nagkakahalaga ng noting na dapat mong ipahiwatig ang buong address ng mga file. Isang halimbawa ng paggamit ng function ng kopya:

  • i-unlink()- tinatanggal ang tinukoy na file. Halimbawa:
  • fopen()- nagbubukas ng lokal o tinanggal na file at nagbabalik ng isang pointer dito. Ang pointer ay ginagamit sa lahat ng mga operasyon sa mga nilalaman ng file. Mga argumento: pangalan ng file at mode ng pagbubukas.
    rpagbabasa. Ang file pointer ay nakatakda sa simula ng file
    r+pagbabasa at pagsusulat. Ang file pointer ay nakatakda sa simula ng file
    wrekord. Ang file pointer ay nakatakda sa simula ng file. Nawala ang lahat ng lumang nilalaman ng file. Kung ang isang file na may tinukoy na pangalan ay hindi umiiral, sinusubukan ng function na likhain ito
    w+pagbabasa at pagsusulat. Ang file pointer ay nakatakda sa simula ng file. Nawala ang lahat ng lumang nilalaman ng file. Kung ang isang file na may tinukoy na pangalan ay hindi umiiral, sinusubukan ng function na likhain ito
    arekord. Ang file pointer ay nakatakda sa dulo ng file. Kung ang isang file na may tinukoy na pangalan ay hindi umiiral, sinusubukan ng function na likhain ito
    a+pagbabasa at pagsusulat. Ang file pointer ay nakatakda sa dulo ng file. Kung ang isang file na may tinukoy na pangalan ay hindi umiiral, sinusubukan ng function na likhain ito

    Halimbawa:

    $fp = fopen("http://www.php.net/", "r"); // para sa pagbabasa $fp = fopen("ex1.txt", "w"); // for recording $fp = fopen("ex2.txt", "a"); // para idagdag sa dulo

    Kung hindi mo mabuksan ang file, maaari mong matakpan ang program. Halimbawa:

    $fp = fopen("ex1.txt", "w") o die("Nabigong buksan ang file");

  • fclose()- isinasara ang file. Pangangatwiran: Ang file pointer na natanggap mas maaga mula sa fopen() function. Halimbawa: fclose($fp);
  • feof()- pagsuri sa dulo ng file. Pangangatwiran: file pointer.
  • fgetc()- pagbabasa ng susunod na character mula sa file. Pangangatwiran: file pointer.
  • fgets()- pagbabasa sa susunod na linya ng file. Mga argumento: file pointer at haba ng string na babasahin. Ang operasyon ay magwawakas pagkatapos mabasa ang tinukoy na bilang ng mga character o kapag ang dulo ng linya o file ay nakita.

    Halimbawa 4

    Pagbabasa ng mga linya mula sa isang file "; ?>
  • fread() - pangkalahatang pag-andar pagbabasa mula sa isang file. Mga argumento: file pointer at bilang ng mga character na babasahin.
  • fseek()- indent mula sa simula ng file. Mga argumento: file pointer at offset.

    Halimbawa 5

    Ipinapakita ang ikalawang kalahati ng file
  • fputs()- pagsulat ng isang linya sa isang file. Mga argumento: file pointer at string.
  • fwrite()- kumpletong analogue ng function fputs().

    Halimbawa 6

    Pagre-record at pagdaragdag sa file
  • kawan()- hinaharangan ang file, ibig sabihin. pinipigilan ang ibang mga user na magbasa o sumulat sa file hanggang sa matapos ang taong gumawa ng lock sa file. Mga argumento: file pointer at lock mode number.

    Halimbawa 7

    Lock ng file

    I-lock gamit ang kawan() ay hindi ganap. Tanging ang mga program na gumagamit din ng function na ito ang isasaalang-alang ito.

Ang bersyon ng PHP >= 4.3.0 ay may mga bagong maginhawang function para sa pagtatrabaho sa mga file:

  • file_get_contents()- basahin ang buong file o URL
  • file_put_contents()- magsulat ng file

Paggawa gamit ang mga katalogo

Ang PHP ay may ilang mga function para sa pagtatrabaho sa mga direktoryo:

  • mkdir()- paggawa ng catalog. Mga argumento: pathname ng direktoryo at mode ng pag-access. Ang access mode ay isang tatlong-digit na octal na numero na may nangungunang zero. Ang unang numero ay ang karapatan sa pag-access para sa may-ari, ang pangalawa ay para sa grupo, at ang pangatlo ay para sa lahat. SA Sistema ng Windows hindi pinapansin ang access mode. Ang UNIX system ay tumutukoy sa mga sumusunod na karapatan sa pag-access:

    Halimbawa, tama ganap na pag-access para sa may-ari, magbasa at tumakbo para sa pangkat at tumakbo para sa lahat:

    Mkdir("testdir", 0751);

  • rmdir()- pagtanggal ng isang direktoryo. Argumento: pathname ng direktoryo. Maaari ka lamang magtanggal ng walang laman na direktoryo kung may karapatan kang gawin ito. Kung matagumpay, ang function ay nagbabalik ng true.
  • opendir()- pagbubukas ng isang direktoryo. Argumento: pathname ng direktoryo. Kung may naganap na error, ang function ay nagbabalik ng false. Ang isang error sa pagbubukas ay maaaring sanhi ng katotohanan na ang direktoryo ay hindi umiiral o ang programa ay walang pahintulot na basahin ito.
  • readdir()- pagbabasa ng direktoryo. Argumento: pathname ng direktoryo. Nagbabalik ng string na naglalaman ng pangalan ng nahanap na file o subdirectory. Kapag naabot ang dulo ng direktoryo, ang function ay nagbabalik ng false.

    Halimbawa 8

    Nagbabasa ng isang direktoryo "; ?>

    Ang loop test expression ay hindi gagana tulad ng inaasahan kung mayroong isang file na pinangalanang "0" sa direktoryo. Sa kasong ito, ang pangalang "0" ay iko-convert sa 0, na magiging sanhi ng pagwawakas ng loop. Maiiwasan ito sa pamamagitan ng pagsasagawa ng mga karagdagang hakbang sa seguridad sa pamamagitan ng pagbabago ng expression ng tseke:

    Gettype($f = readdir($dh)) != "boolean"

    Bukod sa paggamit ng function na fgetc() fgets() fgetss(), maaari mong gamitin
    $file = file($filename). Binabasa nito ang $filename sa array($file).

    Halimbawa:

    $file=file($filename); para sa ($i=0; $i<=count($file); $i++) { echo $file[$i], "
    "; }

Paglilipat ng file mula sa server. Mag-download ng file. I-download.

Manu-manong Pag-download, o kung paano gumamit ng script para magbukas ng window sa pag-save ng file para sa user. Upang mabuksan ng browser ang dialog na "I-save ang File" gamit ang file name file.dat, dapat ipadala ng script ang mga sumusunod na header:

Header("Content-Disposition: attachment; filename=file.dat"); header("Content-Type: application/x-force-download; name=\"file.dat\"");

Isang handa na halimbawa ng pagpapadala ng isang file mula sa disk:

Hindi masama na tukuyin din ang script bilang http://.../download.php?file.dat, kung hindi, maaaring subukan ng mga browser na nakabase sa Mozilla na isulat ang file bilang file.dat.php. o tukuyin ang katangian ng pag-download: I-download Tandaan: Huwag gamitin ang header("Cache-Control: no-cache") na header sa naturang mga script ay hindi mada-download ng karamihan sa mga bersyon ng Internet Explorer ang file.

Ang sumusunod na halimbawa ng script ay nagpapakita kung paano ayusin ang suporta sa pag-download:

Ipinapalagay na ang $cd ay ang landas ng file, ang $fn ay ang pangalan ng filePaano maglipat ng file sa server?

Mga function para sa pagtatrabaho sa mga direktoryo

  • chdir() - Baguhin ang direktoryo
  • boolean chdir (string str)

    Binabago ang kasalukuyang direktoryo ng PHP sa tinukoy bilang str parameter. Nagbabalik ng TRUE sa tagumpay, FALSE sa pagkakamali

  • chroot() - Baguhin ang root directory
  • boolean chroot (string str)

    Binabago ang root directory ng kasalukuyang proseso sa isa na ipinasa bilang str parameter. Nagbabalik ng TRUE sa tagumpay, FALSE sa pagkakamali.

    Tandaan: Hindi ipinapatupad ang function na ito para sa mga Windows platform.

  • closedir() - Magbakante ng hawakan ng direktoryo
  • void closedir (resource catalog)

    Isinasara ang stream na nauugnay sa catalog at ipinasa bilang parameter ng catalog. Bago gamitin ang function na ito, dapat buksan ang stream gamit ang opendir() function.

    dir - Klase ng direktoryo

class dir ( dir (string str) string path resource handle string read (void) void rewind (void) void close (void) )

Isang pseudo-object-oriented na mekanismo para sa pagbabasa ng direktoryo na ipinasa sa parameter ng direktoryo. Mula sa sandaling mabuksan ang direktoryo, dalawang katangian ng klase ang magiging available. Maaaring gamitin ang property na "handle" kasama ng iba pang mga function sa pagmamanipula ng direktoryo, tulad ng mga function na readdir(), rewinddir() at closedir(). Ang property na "path" ay naglalaman ng path sa bukas na direktoryo. Tatlong paraan ang magagamit: basahin, i-rewind at isara.

Pakitandaan ang paraan kung paano sinusuri ang return value ng dir() na mga pamamaraan ng klase sa halimbawa sa ibaba. Sinusuri ng halimbawang ito ang halaga para sa pagkakakilanlan (magkapareho ang mga expression kapag pantay ang mga ito at pareho ang uri - para sa higit pa detalyadong impormasyon(tingnan ang chapter Comparison Operators) value FALSE, dahil kung hindi, ang anumang entry sa direktoryo na ang pangalan ay maaaring ipahayag bilang FALSE ay titigil sa loop.

Halimbawang code:

hawakan."
\n"; echo "Path: ".$d->path."
\n"; habang (false !== ($entry = $d->read())) ( echo $entry."
\n"; ) $d->close(); ?>

Tandaan: Ang pagkakasunud-sunod kung saan ang paraan ng "basahin" ay nagbabalik ng mga entry sa direktoryo ay depende sa operating system.

Tandaan: Gayundin, awtomatikong tinutukoy ng PHP ang isang panloob na klase na tinatawag na Directory, na nangangahulugang hindi mo magagawang tukuyin ang iyong sariling mga klase na may parehong pangalan.


  • getcwd() - Kunin ang pangalan ng kasalukuyang gumaganang direktoryo
  • string getcwd(walang bisa)

    Ibinabalik ang pangalan ng kasalukuyang gumaganang direktoryo.


  • opendir() - Magbukas ng direktoryo
  • mapagkukunan opendir (string path)

    Nagbabalik ng hawakan ng direktoryo para magamit sa ibang pagkakataon kasama ang mga function na closedir(), readdir(), at rewinddir().

    Kung ang path ay hindi umiiral o ang direktoryo na matatagpuan sa tinukoy na landas ay hindi mabubuksan dahil sa mga legal na paghihigpit o mga file system error, ang opendir() function ay nagbabalik ng FALSE at bumubuo ng PHP error message ng level E_WARNING. Maaari mong sugpuin ang isang mensahe ng error sa pamamagitan ng paglalagay ng prefix sa opendir() na pangalan ng function na may simbolo na "@".

    Halimbawang code

    Simula sa PHP 4.3.0, ang parameter ng path ay maaari ding maging anumang URL, na nag-a-access na nagreresulta sa isang listahan ng mga file at direktoryo nito. ang pamamaraang ito gumagana lamang kapag ginagamit ang file:// url packer. Nagdagdag ang PHP 5.0.0 ng suporta para sa ftp:// url packer.


  • readdir - Kumuha ng elemento ng direktoryo sa pamamagitan ng hawakan nito
  • string readdir (resource catalog)

    Ibinabalik ang pangalan ng susunod na sequential directory entry. Ang mga pangalan ng elemento ay ibinalik sa pagkakasunud-sunod depende sa file system.

    Tandaan kung paano ibinabalik ng function na readdir() ang halaga sa halimbawa sa ibaba. Sinusuri ng halimbawang ito na ang isang halaga (magkapareho ang mga expression kapag magkapareho ang mga ito at mga halaga ng parehong uri - tingnan ang kabanata ng Mga Operator ng Paghahambing para sa higit pang impormasyon) ay kapareho ng FALSE dahil kung hindi, anumang entry sa direktoryo na ang pangalan ay maaaring ipahayag bilang FALSE , ay titigil sa loop (halimbawa, isang elemento na pinangalanang "0").

    Halimbawang code

    Tandaan na ang readdir() function ay nagbabalik din ng mga pinangalanang elemento, at kung hindi mo gustong matanggap ang mga halagang iyon, itapon lang ang mga ito:

    Halimbawang code


  • rewinddir() - I-reset ang hawakan ng direktoryo
  • void rewinddir (resource catalog)

    Nire-reset ang stream ng catalog na ipinasa sa parameter ng catalog upang tumuro sa simula ng catalog


  • scandir() - Kumuha ng listahan ng mga file at direktoryo na matatagpuan sa tinukoy na landas
  • array scandir (string catalog [, int order])

    Nagbabalik ng array na naglalaman ng mga pangalan ng mga file at direktoryo na matatagpuan sa path na ipinasa sa parameter ng catalog. Kung ang direktoryo ay hindi isang direktoryo, ang function ay nagbabalik ng FALSE at bumubuo ng isang E_WARNING na mensahe ng error.

    Bilang default, ang pag-uuri ay ginagawa sa alpabetikong pagkakasunud-sunod sa pataas na pagkakasunud-sunod. Kung ang opsyonal na parameter ng order ay tinukoy (katumbas ng 1), ang pag-uuri ay ginagawa sa alpabetikong pagkakasunud-sunod sa pababang pagkakasunud-sunod. Halimbawang code

    Ang resulta ay magiging katulad ng:

    Array ( => . => .. => bar.php => foo.txt => somedir) Array ( => somedir => foo.txt => bar.php => .. => .)

    Halimbawang code

    HALIMBAWA RESULTA:

    Array ( => . => .. => bar.php => foo.txt => somedir) Array ( => somedir => foo.txt => bar.php => .. => .)

    Ang bawat programmer ay dapat na makapagtrabaho nang tama sa mga file. Ang artikulong ito ay naglalayong sa mga baguhan na programmer ng PHP, ngunit ang "koleksyon ng mga recipe" ay magiging kapaki-pakinabang din para sa mga advanced na user.

    Ang pagtatrabaho sa mga file ay nahahati sa 3 yugto:

    1. Pagbukas ng file.
    2. Pagmamanipula ng data.
    3. Pagsasara ng file.

    ako. Pagbukas ng file

    Upang magbukas ng file sa kapaligiran ng PHP, gamitin ang function fopen(). Ang mga kinakailangang parameter para sa function na ito ay ang file name at file mode.

    $fp = fopen("counter.txt", "r");

    Ayon sa dokumentasyon ng PHP, ang mga sumusunod na uri ng mga mode ng file ay nakikilala:

    1. r – buksan ang file para sa read only.
    2. r+ - nagbubukas ng file para sa pagbabasa at pagsusulat sa parehong oras.
    3. w – lumilikha ng bagong walang laman na file. Kung mayroon nang ganoong file sa oras ng tawag, masisira ito.
    4. w+ - katulad ng r+, kung mayroong ganoong file sa oras ng pagtawag, tatanggalin ang mga nilalaman nito.
    5. a – nagbubukas ng isang umiiral na file sa write mode, na ang pointer ay inilipat sa huling byte ng file (sa dulo ng file).
    6. a+ - nagbubukas ng file sa read-write mode, na ang pointer ay inilipat sa huling byte ng file (sa dulo ng file). Ang mga nilalaman ng file ay hindi tinanggal.

    Tandaan: Maaaring may isa pang opsyonal na parameter sa dulo ng alinman sa mga linya: b o t . Kung tinukoy ang b, mabubuksan ang file sa binary read/write mode. Kung t , kung gayon ang mode ng pagsasalin ng feed ng linya ay nakatakda para sa file, i.e. ito ay nakikita bilang tekstwal.

    Upang ipakita, isaalang-alang ang sumusunod na senaryo:

    //Nagbubukas ng file sa iba't ibang mga mode
    $fp = fopen("counter.txt", "r"); // Binary mode
    $fp = fopen("counter.txt", "rt"); // Text mode
    $fp = fopen("http://www.yandex.ru", "r");// Nagbubukas ng HTTP na koneksyon para sa pagbabasa
    $fp = fopen("ftp://user: [email protected]", "w"); //Buksan ang koneksyon sa FTP na nagsasaad ng login at password
    ?>

    II. Pagmamanipula ng Data ng File

    Maaari kang magsulat ng data sa isang file gamit ang PHP gamit ang function fwrite(). Ang function na ito ay tumatagal ng 2 kinakailangang parameter at 1 opsyonal na isa. Ang mga kinakailangang parameter ay ang file descriptor at ang file mode:

    $fp = fopen("counter.txt", "a"); // Buksan ang file sa write mode
    $mytext = "Kailangan nating isulat ang linyang ito\r\n"; // Source string
    $test = fwrite($fp, $mytext); // Sumulat sa file
    if ($test) echo "Ang data ay matagumpay na naipasok sa file.";
    else echo "Error writing to file.";
    fclose($fp); //Isara ang file
    ?>

    Upang basahin ang isang file sa bawat linya, gamitin ang function fgets(). Ang function ay tumatagal ng 2 kinakailangang mga parameter:


    kung ($fp)
    {
    habang (!feof($fp))
    {
    $mytext = fgets($fp, 999);
    echo $mytext."
    ";
    }
    }

    fclose($fp);
    ?>

    Tandaan: Sa halimbawang ito, ang value na 999 ay tumutukoy sa bilang ng mga character na babasahin hanggang sa maabot ng pointer ang dulo ng file (EOF).

    Upang mabasa ang file bilang isang solong kabuuan, kailangan mong gamitin ang function readfile(), na tumatagal ng 1 kinakailangang parameter. Ang function ay nagbubukas ng isang file, ipinapakita ang mga nilalaman nito sa isang browser window, at pagkatapos ay isinasara ang file:

    echoreadfile("counter.txt");
    ?>

    Maaari mo ring gamitin ang function na fpassthru() na tumatagal ng 1 kinakailangang parameter. Bago gamitin ang feature na ito, dapat mong buksan ang file sa Read mode. Kapag natapos nang basahin ang file, awtomatikong isinasara ng function ang file (at magiging invalid ang file descriptor).

    $fp = fopen("counter.txt", "r"); // Buksan ang file sa read mode
    kung ($fp) echo fpassthru($fp);
    elseecho "Error sa pagbubukas ng file";
    ?>

    Kadalasan mayroong mga sitwasyon kung kailan kinakailangang basahin ang mga nilalaman ng isang site sa isang array. Kasama sa feature na ito ang paggamit ng function file(). Kapag tinawag ang function na ito, ang bawat linya ng file ay maiimbak sa hiwalay na elemento ang tinukoy na hanay.

    Tandaan: Hindi dapat gamitin ang function file() sa mga binary file (binary-safe), dahil Hindi ito secure sa mga tuntunin ng pagbabasa ng mga binary file, at kung nakatagpo ito ng isang end-of-file (EOF) na character sa isang lugar, hindi nito ginagarantiya na mababasa mo ang buong binary file.

    $file_array = file("counter.txt"); // Basahin ang file sa $file_array
    // Paggawa gamit ang data ng array
    ?>

    Tandaan: Ang pagtatrabaho sa mga array ay inilarawan nang detalyado, mga may-akda: Mukhametshin D.F., Simdyanov I.V.

    Sa dulo ng artikulo, makakahanap ka ng isang mahusay na "libro ng recipe" sa mga array, na nagbibigay ng mga solusyon sa maraming problema na nararanasan ng isang web programmer araw-araw.

    Isipin natin ang isang sitwasyon kung saan ang isang file ay kailangang basahin ng character sa pamamagitan ng character. Upang gawin ito maaari naming gamitin ang function fgetc(). Ang function ay tumatagal ng isang parameter. Ang function ay kapaki-pakinabang kung kailangan nating maghanap ng anumang karakter o ang bilang ng magkaparehong mga character.

    $fp = fopen("counter.txt", "r"); // Buksan ang file sa read mode
    kung ($fp)
    {
    habang(!feof($fp))
    {
    $char = fgetc($fp);
    if ($char == "c") $i = $i + 1;// Hanapin ang karakter na "c"
    }
    echo "Bilang ng 'c' na mga titik sa file: ". $i;
    }
    else echo "Error opening file";
    ?>

    III. Pagsasara ng file

    Ang file ay sarado gamit ang function fclose(), na tumatagal ng 1 kinakailangang parameter.

    $fp = fopen("counter.txt", "r");
    kung ($fp)
    {
    echo "Bukas ang file";
    fclose($fp); // Pagsasara ng file
    }
    ?>

    Koleksyon ng mga recipe

    1) Kailangan nating suriin kung ito o ang file na iyon. Upang gawin ito gagamitin namin ang function file_exists().

    myfile("counter.txt"); // Gamitin ang myfile function, na ipinapasa ang pangalan ng file bilang argumento

    function myfile($name) //Gumawa ng isang function upang suriin ang pagkakaroon ng isang file
    {
    if (file_exists($name)) echo "Ang file ay umiiral";

    }
    ?>

    Tandaan: Pag-andar file_exists hindi sinusuri ang mga file sa malayong web server. Para sa tamang operasyon function, ang file na may script ay dapat na matatagpuan sa parehong server bilang ang file na sinusuri.

    2) Tukuyin ang laki ng file gamit ang function laki ng mga file()

    myfile("counter.txt");

    function myfile($name) //Gumawa ng isang function upang suriin ang pagkakaroon ng isang file at matukoy ang laki ng file
    {
    if (file_exists($name)) echo "File size: ".filesize($name)." bytes";
    else echo "Walang file";
    }
    ?>

    3) Gumawa ng pansamantalang file gamit ang function tmpfile()

    $myfile = tmpfile();
    fwrite($myfile, "Ang linyang ito ay nakasulat sa isang pansamantalang file."); // Sumulat sa isang pansamantalang file
    fseek($myfile, 0); // Itakda ang file pointer
    echo fread($myfile, 1024); // output ang mga nilalaman ng file
    ?>

    4) Kailangan mong matukoy ang bilang ng mga linya sa file. Upang gawin ito ginagamit namin ang function bilangin()

    $fp = file("counter.txt");
    echo "Bilang ng mga linya sa file: ".count($fp);
    ?>

    5) Kailangan nating gumamit ng mekanismo ng pag-lock ng file

    $fp = fopen("counter.txt", "a");
    kawan($fp, LOCK_EX); // I-lock ang file para sa pagsusulat
    fwrite($fp, "Line to write");
    kawan($fp, LOCK_UN); // I-unlock
    fclose($fp);
    ?>

    6) Kailangan naming tanggalin ang isang tiyak na linya mula sa file

    $num_stroka = 5; // Tanggalin ang linya 5 mula sa file
    $file = file("counter.txt"); // Basahin ang buong file sa isang array

    para sa ($i = 0; $i< sizeof($file); $i++)
    if($i == $num_stroka) unset($file[$i]);

    $fp = fopen("counter.txt", "w");
    fputs($fp, implode("", $file));
    fclose($fp);
    ?>

    7) Pagtukoy sa uri ng file. Gamit ang function

    PHP

    file_exists("test.txt")//May file ba? filesize("test.txt");//Alamin ang laki ng file //Ibinalik ang timestamp: fileatime("test.txt");//Petsa ng huling pag-access sa file //date("d M Y" , $atime); filemtime("test.txt");//Petsa ng pagbabago ng file //date("d M Y", $mtime); filectime("test.txt");//Petsa ng paglikha ng file (Windows) //date("d M Y", $ctime);

    Mga file: mga mode ng pagpapatakbo

    PHP

    resource fopen (string filename, string mode) // resource - nagbabalik ng pointer sa file kung sakaling magtagumpay, o FALSE kung sakaling magkamali
    Operating mode Paglalarawan
    r bukas na file read-only;
    r+ buksan ang file para sa pagbabasa at pagsusulat;
    w buksan ang file para sa pagsusulat lamang. Kung mayroon ito, masisira ang kasalukuyang nilalaman ng file. Ang kasalukuyang posisyon ay nakatakda sa simula;
    w+ buksan ang file para sa pagbabasa at pagsusulat. Kung mayroon ito, masisira ang kasalukuyang nilalaman ng file. Ang kasalukuyang posisyon ay nakatakda sa simula;
    A buksan ang file para sa pagsusulat. Ang kasalukuyang posisyon ay nakatakda sa dulo ng file;
    a+ buksan ang file para sa pagbabasa at pagsusulat. Ang kasalukuyang posisyon ay nakatakda sa dulo ng file;
    b iproseso ang binary file. Ang flag na ito ay kinakailangan kapag nagtatrabaho sa mga binary file sa Windows.

    Pagbubukas at pagsasara ng mga file sa PHP

    PHP

    $fi = fopen("test.html", "w+") o die("Error"); //Mga Halimbawa $fi = fopen("http://www.you/test.html","r"); $fi = fopen("http://ftp.you/test.html", "r"); //Isara ang fclose($fi)

    Pagbabasa ng mga file sa PHP

    PHP

    //Basahin ang file fread(int fi, int length) $str = fread($fi, 5); // Basahin ang unang 5 character echo $str;

    // dahil inilipat ng cursor ang $str = fread($fi, 12); // Basahin ang susunod na 12 character echo $str; fgets(int fi[, int length]) // Magbasa ng linya mula sa file fgetss(int fi, int length [, string allowable]) // Magbasa ng linya mula sa file at itapon ang HTML tags // string allowable - mga tag na kailangang iwanang fgetc(int fi) //Nagbabasa ng character mula sa isang file Sa una, ang Pagsulat ay magaganap sa simula ng file, sa pamamagitan ng pag-overwrite ng umiiral na data, kung mayroon man. Samakatuwid, kung kailangan mong magsulat ng isang bagay sa dulo ng file, kailangan mong itakda ang naaangkop mode ng pagbasa

    , halimbawa, a+ .

    PHP

    Pagmamanipula ng cursor sa mga file ng PHP

    int fseek(int fi, int offset [, int wherece]) //Pagtatakda ng cursor // int fi - pointer sa file //offset - bilang ng mga character na lilipat. //kung saan: //SEEK_SET - nagsisimula ang paggalaw mula sa simula ng file; //SEEK_CUR - nagsisimula ang paggalaw mula sa kasalukuyang posisyon; //SEEK_END - nagsisimula ang paggalaw mula sa dulo ng file. fseek($fi, -10, SEEK_END); //Basahin ang huling 10 character $s = fread($fi, 10); $pos = ftell($fi); //Alamin ang kasalukuyang posisyon rewind($f)//i-reset ang cursor bool feof($f) //end of file

    PHP

    array file(string filename) // Kunin ang mga nilalaman ng file sa anyo ng array // Isa pang opsyon para sa direktang pagtatrabaho sa data file_get_contents(string filename) // Pagbabasa (pagkuha ng buong file sa isang linya) // Pagsusulat sa ang file (sa una ay na-overwritten) file_put_contents(string filename, mixed data [,int flag]); //FILE_APPEND // Sumulat sa dulo ng file: file_put_contents("test.txt", "data", FILE_APPEND); //Kung magsulat ka ng array, $array = array("I", "live"); file_put_contents("test.txt",$array); //pagkatapos ay nakuha namin ang "Ilive"

    Pamamahala ng mga file sa php

    PHP

    kopya (pinagmulan ng string, patutunguhan ng string); // Kinokopya ang file rename(str oldname, str newname); // Palitan ang pangalan ng file unlink (string filename); // Pagtanggal ng file

    Pag-upload ng mga file sa PHP server

    //PHP.ini settings file_uploads (on|off) // payagan o hindi payagan ang pag-upload ng file upload_tmp_dir // pansamantalang folder para sa mga na-upload na file. bilang default pansamantalang folder upload_max_filesize (default = 2 Mb) // max. upload file size post_max_size // kabuuang laki ng isinumiteng form (dapat mas malaki kaysa upload_max_filesize) // Simple upload

    HTML

    Paggawa gamit ang mga file sa server

    PHP

    //Tanggapin ang data $tmp = $_FILES["userfile"]["tmp_name"]; $name = $_FILES["userfile"]["name"]; //Ilipat ang file move_uploaded_file($tmp, pangalan); move_uploaded_file($tmp, "upload/".name); // i-redirect ang file sa upload folder // kaugnay sa kasalukuyang file // Ano ang nasa $_FILES array $_FILES["userfile"]["name"] // file name, halimbawa, test.html $_FILES[ "userfile"][" tmp_name"] // pansamantalang pangalan ng file (path) $_FILES["userfile"]["size"] // laki ng file $_FILES["userfile"]["type"] // file type $ _FILES["userfile"] ["error"] // 0 - walang mga error, numero - oo

    Paggawa gamit ang mga file - mahalagang punto. Dahil maaari silang mag-imbak ng data, mga tala, atbp. Alam na namin kung paano mag-upload ng mga file sa server. Ngayon ay kailangan mong matutunan kung paano makipag-ugnayan sa kanilang nilalaman.
    Ang proseso ng pagtatrabaho sa isang file ay nahahati sa tatlong yugto:
    1. Magbukas ng file.
    2. Magtrabaho sa mga nilalaman ng bukas na file.
    3. Pagsasara ng file.

    Function fopen() Mayroong ilang mga mode kung saan binubuksan ang mga file, narito ang kanilang talahanayan:

    Listahan ng mga posibleng mode para sa fopen()
    mode Paglalarawan
    'r' Binubuksan ang file na read-only; inilalagay ang pointer sa simula ng file.
    'r+' Nagbubukas ng file para sa pagbabasa at pagsusulat; inilalagay ang pointer sa simula ng file.
    'w' Binubuksan ang file para sa pagsusulat lamang; naglalagay ng pointer sa simula ng file at pinuputol ang file sa zero na haba. Kung wala ang file, susubukan nitong likhain ito.
    'w+' Nagbubukas ng file para sa pagbabasa at pagsusulat; naglalagay ng pointer sa simula ng file at pinuputol ang file sa zero na haba. Kung wala ang file, susubukan nitong likhain ito.
    'a' Binubuksan ang file para sa pagsusulat lamang; inilalagay ang pointer sa dulo ng file. Kung wala ang file, susubukan nitong likhain ito. Sa mode na ito ang function fseek() hindi naaangkop, palaging idinadagdag ang mga entry.
    'a+' Nagbubukas ng file para sa pagbabasa at pagsusulat; inilalagay ang pointer sa dulo ng file. Kung wala ang file, susubukan nitong likhain ito. Sa mode na ito ang function fseek() nakakaapekto lamang sa lokasyon ng pagbabasa, ang mga tala ay palaging idinaragdag.
    'x' Lumilikha at nagbubukas para sa pagsusulat lamang; inilalagay ang pointer sa simula ng file. Kung mayroon nang file, tumawag fopen() nagtatapos sa kabiguan, babalik MALI at magbibigay ng antas ng error E_BABALA. Kung wala ang file, susubukan nitong likhain ito. Ito ay katumbas ng pagtukoy ng mga flag O_EXCL|O_CREAT para sa panloob na sistema ng tawag bukas(2).
    'x+' Lumilikha at nagbubukas para sa pagbabasa at pagsusulat; kung hindi ay may parehong pag-uugali bilang 'x'.
    'c' Binubuksan ang file para sa pagsusulat lamang. Kung ang file ay hindi umiiral, ito ay nilikha. Kung umiiral ang file, hindi ito pinutol (hindi katulad 'w'), at ang pagtawag sa function na ito ay hindi nagiging sanhi ng isang error (tulad ng kaso sa 'x'). Ang file pointer ay itatakda sa simula ng file. Maaari itong maging kapaki-pakinabang kung gusto mong i-lock ang isang file (tingnan ang kawan()) bago magpalit, simula nang gamitin 'w' maaaring putulin ang file bago makuha ang lock (kung nais mong putulin ang file, maaari mong gamitin ang function ftruncate() pagkatapos ng kahilingan sa pagharang).
    'c+' Nagbubukas ng file para sa pagbabasa at pagsusulat; kung hindi ay may parehong pag-uugali bilang 'c'.

    Maaari kang magdagdag ng dalawa pang halaga sa mode:
    b- bubukas ang file sa binary mode
    t- bubukas ang file bilang text

    Mula sa salita hanggang sa gawa. Ngayon isang maliit na pagsasanay upang pagsamahin. Gumawa tayo ng file sa ating folder ng mga file na tinatawag na test.txt, ngunit gawin ito gamit ang gamit ang PHP. At isusulat namin ang linyang "Kumusta sa lahat!", pagkatapos ay babasahin namin ang linyang ito mula sa file at ipapakita ito sa screen. Nagpasya akong gawin ang lahat sa anyo ng mga pag-andar, para sa magagamit muli, ito ang lumabas dito:

    "; else echo "Nabigong magsulat ng data!
    "; //isara ang file fclose($file); ) function fileread($filename)( //path sa file $path = "files/".$filename.".txt"; //buksan ang file para sa pagbabasa $file = fopen($path,"r"); // kung matagumpay na nabuksan ang file kung($file)( // pagkatapos ay hanggang sa maabot ng file ang dulo habang (!feof($file)) ( // basahin ang data mula sa file na $read = fgets ($file); // at ipakita ang teksto sa screen echo $read."
    "; ) ) // kung ang file ay hindi nabuksan, pagkatapos ay iulat ito ng iba pang echo "Error sa pagbubukas ng file
    "; // Isara ang file fclose($file); ) // Lumikha ng file fcreate("test","Kumusta sa lahat!"); // Basahin ang data mula sa file fileread("test"); ?>

    Maaari ka na ngayong gumawa at mag-edit ng mga file.
    ————————
    Ano ang alam mo tungkol sa pinakamakapangyarihang mga supercomputer? wala? Tapos basahin mo dito