Php teksta fails. Darbs ar failiem php: atvēršana, rakstīšana, lasīšana

PHP parādījās daudz vēlāk, nekā programmēšanas valodas nostiprināja savas pozīcijas un formulēja vispārīgas idejas par sintaksi, loģiku, mainīgajiem un citiem programmas objektiem. Faili un funkcijas darbam ar tiem neattīstījās, un pat failu kodēšanas problēma, kas radās dabisku iemeslu dēļ, neradīja radikāli jaunus risinājumus.

Vispārīgas piezīmes

Galvenais darbs ar failiem, lai kādi tie būtu, sastāv no atvēršanas, lasīšanas/rakstīšanas un aizvēršanas. Var izmantot piekļuves bloķēšanas/atbloķēšanas funkcijas failam, kamēr tas tiek apstrādāts, var iestatīt lasīšanas/rakstīšanas pozīciju failā – viss ir tāpat kā iepriekš, tālā pagātnē.

Svarīgs PHP punkts ir funkciju pārpilnība darbam ar failiem un to izmantošanas iespējas. Praksē pietiek izmantot vienkāršas, bet darba iespējas. Fails, pirmkārt, ir programmas atmiņa. Tajā varat saglabāt informāciju. Jebkuras programmas mērķis, jebkuras tīmekļa vietnes mērķis ir prezentēt, apstrādāt un nodrošināt informācijas drošību.

Būtisks apstāklis

Iepriekš prasība pēc saderības vismaz no apakšas uz augšu bija nesatricināma. Tas ir, programma, kas reiz rakstīta vienā programmēšanas valodas versijā, ideālā gadījumā tiek kompilēta/interpretēta nākamajā versijā. Mūsdienu programmēšanas gadījumā tas tā nav. Prasība pēc valodas sintaktisko struktūru savietojamības ir kļuvusi par vēstures lietu, un cīņa starp stiliem un programmēšanas rīkiem un atsevišķu rīku versijām ir kļuvusi par viņu dzīves normu.

Darbs ar failiem, kā arī ar datu bāzēm ir tikpat svarīgs kā vietnes saskarne. Pirmajam jābūt veidotam tā, lai, mainot platformu, hostingu vai valodas versiju, nebūtu jāmaina vietnes kods. Interfeiss darbam ar failiem ir jāiekļauj atsevišķā skriptā un jānodrošina pilnīga savietojamība, tāpat kā vietnes dizainam ir adekvāti jāpielāgojas jebkurai ierīcei, pārlūkprogrammai un jānodrošina pārējā vietnes funkcionalitāte ar tādām pašām iespējām.

Lasiet un mainiet sevi

Vai programma var mainīties pati, tas ir, vai skripts var uzlaboties? Līdz šai dienai šis jautājums interesē daudzus. Bet uzdevums izklausās daudz praktiskāks: PHP lasa PHP failu. Izstrādātājs ne vienmēr var atrisināt konkrētu problēmu, rakstot konkrētu kodu. Dažreiz tas ir jāmaina, kad apmeklētājs ierodas vietnē un formulē jautājumu, kas nebija paredzēts izstrādes stadijā.

Tāpat kā visos citos gadījumos, vispirms ir jāatver fails. Nav nozīmes tam, vai šis fails pastāv vai ne. Ja ir zināms, ka fails eksistē (funkcija file_exists() sniedz pozitīvu atbildi), funkcija fopen() tiek izmantota ar piekļuvi 'r', 'r+', 'a', 'a+'. Ja fails vēl neeksistē, tad ar piekļuvi ‘a’, ‘a+’, ‘w’, ‘w+’. Faila atvēršanas rezultāts būs tā deskriptors. Fails tiek aizvērts ar funkciju fclose().

Ir ērti izmantot PHP, lai nolasītu failu masīvā, ja lasīšanas laikā tas nav jāapstrādā.

if (file_exists($fName)) (

$aLines = fails($fName)

Izmantojot šo opciju, katra faila rinda secīgi nonāk masīva elementā. Jāņem vērā, ka fails() vai file_get_contents() funkcijām fails nav jāatver un jāaizver.

Ja ievades fails ir pārāk liels un jums ir jāatrod tikai nedaudz informācijas vai citu iemeslu dēļ, varat izmantot PHP, lai lasītu failu rindiņu pa rindiņai. PHP nodrošina iespēju to izdarīt ar fgets() un fgetc() funkcijām.

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

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

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

Abas iespējas darbojas nevainojami. Tomēr, veicot PHP faila lasīšanu vēlākai modificēšanai, ir jāievēro piesardzības pasākumi. Vietnes izstrādes stadijā ne vienmēr ir iespējams paredzēt, kā apmeklētājs to izmantos. Labāk, ja skripti tiek mainīti vietnes funkcijās, un apmeklētājs, tostarp resursa administrators, nevar kontrolēt šīs izmaiņas.

Rezultātu saglabāšana

Saņemto un atjaunināto informāciju failā ieraksta funkcija fputs() rindiņu pa rindiņai vai funkcija file_put_contents() kopumā.

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

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

ganāmpulks ($fvs, LOCK_EX)

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

fputs ($fvs, $cLine)

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

fputs ($fvs, $cLine)

ganāmpulks ($fvs, LOCK_UN)

Ierakstīšanas opcijā rindas pa rindiņai var manipulēt ar datiem ierakstīšanas procesā, otrajā gadījumā ierakstītā virkne vai masīvs tiek ievietots visā failā.

$file = " scData.php "

$cContents = file_get_contents($file)

// ieraksta pievienošana

$cContents .= "jauns ieraksts\n"

// ierakstiet failu atpakaļ

file_put_contents($file, $cContents)

PHP failu lasīšana un rakstīšana ir vienkārša un dabiska. Tomēr ir svarīgi paturēt prātā: katram failam ir nosaukums, paplašinājums un ceļš (mape). Lai PHP skripts varētu lasīt un rakstīt failus, šim skriptam ir jābūt atbilstošām tiesībām. Tie tiek automātiski parādīti mitināšanā, taču dažos gadījumos tie ir jāpaplašina.

Dažos gadījumos var būt vēlams pārbaudīt rezultātus, veicot testa nolasīšanu. Lai rakstītu PHP failus, tas ir nepieciešams izstrādes laikā, taču dažos gadījumos vietnes drošības vai uzticamības interesēs ir svarīgi pārbaudīt datu ierakstu.

Raksturīga PHP, MySQL, JavaScript un jo īpaši pārlūkprogrammu iezīme: klusi ļaujot notikt dažām kļūdām. “Nav atpazīts, nav izdarīts...” nav ļoti laba prakse informācijas tehnoloģiju progresīvākos, taču tas iemāca izstrādātājiem nekļūdīties un rakstīt tīru, kvalitatīvu kodu, kas arī nav slikti.

PHP un darbs ar reāliem dokumentiem

PHP lasīšana PHP failā noteikti ir praktiska interese, taču tā ir programmēšanas joma. Lietotāju un vietnes apmeklētāju interesē lietišķa rakstura informācija, kuru viņš ir pieradis redzēt tabulu un dokumentu veidā, jo īpaši *.xlsx un *.docx failu formātos. Tie ir faili MS Excel un MS Word formātā.

Preču saraksti, cenas, raksturlielumi parasti tiek veidoti tabulu veidā, tāpēc PHP lasīšana Excel failā ir būtiska.

PHPExcel un PHPWord bibliotēkas ir izstrādātas darbam ar šādiem failiem. Tomēr *.xlsx un *.docx failu saturs tiek parādīts OOXML standartā, tas ir, īstais, saprotamais dokuments tiek parādīts zip arhīvā. Zip arhīvs ir failu kopums, tostarp attēli, objekti, formulas un ieliktņi no citām programmām. Teksta faili šeit ir attēloti ar aprakstiem tagu veidā. Nepietiek ar šāda faila lasīšanu, lai iegūtu saturu un struktūru lietošanai un modificēšanai.

Tas nozīmē, ka lasīšanas darbība pārvēršas par arhīva atvēršanas procedūru. Šīs bibliotēkas neatkarīgi atver dokumentu arhīvu un nodrošina izstrādātājam plašas funkcijas šādu dokumentu lasīšanai, apstrādei un rakstīšanai.

Excel tabulas

include_once 'PhpOffice/PhpExcel/IOFactory.php'

funkcija scGetExcelFile($xls)(

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

//šajā masīvā ir virkņu masīvi

$aSheet = $objPHPExcel->getActiveSheet()

$masīvs = masīvs()

//ārstēšana

foreach($aSheet->getRowIterator() kā $row)(

$cellIterator = $rinda->getCellIterator()

foreach($cellIterator kā $cell)(

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

masīvs_push($masīvs, $vienums)

Excel failu lasīšana un apstrāde ir daudz grūtāka nekā Word dokumentu apstrāde. Labākais variants, ja nepieciešams īstenot nopietnu projektu lietišķās informācijas lasīšanai un apstrādei, ir vispirms apgūt PHPWord bibliotēku. Tas sniegs jums labu pieredzi un ātru izpratni par problēmas specifiku.

Word dokumenti

Tikai divas rindas:

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

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

Dokuments $cFileName tagad ir pieejams apstrādei. Tālāk tiek atvērts arhīvs, atlasīts un analizēts tā saturs, ko var attēlot vietnē, mainīt un atrakstīt atpakaļ.

$zipClass = jauns ZipArhīvs()

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

// lasīt visu dokumenta saturu

priekš ($i=0; $i<$zipClass->numFiles; $i++) (

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

$cNameInExt = substr($cNameIn, -4)

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

// faili ar paplašinājumiem ".xml" un ".xml.rels" tiek saglabāti dokumentu tabulā

// katra xml rinda ir rakstīta ar unikālu numuru secībā

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

$cBodyInLen = strlen($cBodyIn)

// visi pārējie faili tiek ierakstīti dokumentu mapē, kā tas ir

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

$zipClass->getFromName($cNameIn, $cWorkPath); // saturs kā fails

PHP Excel un PHP Word piedāvātās iespējas ļauj manipulēt ar reāliem dokumentiem un padarīt to saturu atbilstošu jebkurā brīdī. Mūsdienu dinamiskajā pasaulē tas kļūst ļoti svarīgi. Smaguma centrs jau sen ir pārcēlies no lokālas datortehnoloģiju izmantošanas uz virtuālo interneta telpu. Tāpēc tabulu un dokumentu veidošana lokālajos Microsoft produktos ir mazāk efektīva nekā darbs ar šādiem dokumentiem automātiskā un pusautomātiskā režīmā vietnē, kas ir pieejama ne tikai tabulas vai dokumenta veidotājam, bet arī tās patērētājiem.

Teksta faili, cita dzīve

Sākotnēji teksta faili ir vienkāršāki nekā PHP faili vai lietojumprogrammu dokumenti. Tomēr šeit ir par ko padomāt. Šādu failu lasīšanas/rakstīšanas darbības jau ir norādītas iepriekš, taču šādu failu nozīme ir daudz svarīgāka.

Tā kā ir tāda dota kā klients un serveris (pirmajā dominē JavaScript, otrajā PHP), tad pat sīkfailu un sesiju mehānismi nevar tikt galā ar nepieciešamību pārsūtīt informāciju starp skriptiem, lapām vai noteiktiem procesiem.

Ir iespējams atspoguļot vēlamās izmaiņas datu bāzē, taču, neskatoties uz visām priekšrocībām un ātrumu, mazie pagaidu vai pastāvīgie teksta faili var būt daudz interesantāks informācijas pārsūtīšanas variants. Ja neveidojat daudz mazu failu un nekontrolējat to lielumu, tie var būt specifiska un elastīgāka datu bāzes versija.

PHP teksta faila lasīšana ir ātra, to var nekavējoties parsēt struktūrā, masīvā vai objektā. Pēdējais ir ļoti svarīgs, jo ļauj izveidot objektus, kas dzīvo ārpus PHP skriptam atvēlētā laika, kas, kā zināms, var pastāvēt tikai serverī un tikai lapas ielādes brīdī tiek saņemta AJAX atbilde. ģenerēts vai cita iemesla dēļ, kas izraisa PHP tulka palaišanu.

Ja domājat par to, ka teksta fails ir izstrādātāja saturs un struktūra, PHP fails ir tulka sintakse plus izstrādātāja loģika, un “atzīmētie” apraksti html, css, xml ir vairāk semantiski elementi, bet regulēti. pēc statiskajiem standartiem. Var secināt, ka, iespējams, ir pienācis laiks failiem iegūt jaunu saturu, un tam pašam vajadzētu noteikt to kvalitāti un lietošanas loģiku. Tieši tāpēc, ka programmēšana vēl nav gatava nākamajam attīstības posmam, faili mūsdienās paliek vienkārši faili, kurus veido izstrādātājs un nosaka to izmantošanu.

Pats interesantākais un daudzsološākais ir tad, kad PHP patstāvīgi nolasa PHP failu, kad rodas tāda nepieciešamība. Un vienkārši PHP nolasot rindiņu no faila, tiek izveidots objekts, vismaz tādā stāvoklī, kādā tas tika saglabāts. Tās nav gluži pazīstamas idejas, taču mūsdienu pasaulē viss mainās tik ātri.

Katram programmētājam jāspēj pareizi strādāt ar failiem. Šis raksts ir paredzēts iesācējiem PHP programmētājiem, taču “recepšu kolekcija” noderēs arī pieredzējušiem lietotājiem.

Darbs ar failiem ir sadalīts 3 posmos:

  1. Faila atvēršana.
  2. Datu manipulācijas.
  3. Faila aizvēršana.

es. Faila atvēršana

Lai atvērtu failu PHP vidē, izmantojiet funkciju fopen (). Šai funkcijai nepieciešamie parametri ir faila nosaukums un faila režīms.

$fp = fopen("skaitītājs.txt", "r");

Saskaņā ar PHP dokumentāciju tiek izdalīti šādi failu režīmu veidi:

  1. r – atveriet failu tikai lasīšanai.
  2. r+ - atver failu lasīšanai un rakstīšanai vienlaikus.
  3. w – izveido jaunu tukšu failu. Ja šāds fails zvana brīdī jau pastāv, tas tiek iznīcināts.
  4. w+ - līdzīgi kā r+, tikai tad, ja šāds fails eksistē izsaukšanas brīdī, tā saturs tiek dzēsts.
  5. a – atver esošu failu rakstīšanas režīmā, kursoru nobīdot uz faila pēdējo baitu (līdz faila beigām).
  6. a+ - atver failu lasīšanas-rakstīšanas režīmā, kursors tiek pārvietots uz pēdējo faila baitu (līdz faila beigām). Faila saturs netiek dzēsts.

Piezīme. Jebkuras rindas beigās var būt vēl viens izvēles parametrs: b vai t . Ja ir norādīts b, fails tiek atvērts binārā lasīšanas/rakstīšanas režīmā. Ja t , tad failam ir iestatīts rindas plūsmas tulkošanas režīms, t.i. tas tiek uztverts kā tekstuāls.

Lai parādītu, apsveriet šādu scenāriju:

//Atver failu dažādos režīmos
$fp = fopen("skaitītājs.txt", "r"); // Binārais režīms
$fp = fopen("skaitītājs.txt", "rt"); // Teksta režīms
$fp = fopen("http://www.yandex.ru", "r");// Atver HTTP savienojumu lasīšanai
$fp = fopen("ftp://lietotājs: [aizsargāts ar e-pastu]", "w"); //Atveriet FTP savienojumu, norādot pieteikumvārdu un paroli
?>

II. Failu datu manipulācijas

Varat ierakstīt datus failā, izmantojot PHP, izmantojot funkciju fwrite(). Šai funkcijai ir nepieciešami 2 obligātie parametri un 1 neobligāts. Nepieciešamie parametri ir faila deskriptors un faila režīms:

$fp = fopen("skaitītājs.txt", "a"); // Atveriet failu rakstīšanas režīmā
$mytext = "Mums ir jāuzraksta šī rindiņa\r\n"; // Avota virkne
$test = fwrite($fp, $mytext); // Rakstīt failā
if ($test) echo "Dati tika veiksmīgi ievadīti failā.";
else echo "Kļūda, rakstot failā.";
fclose($fp); //Aizveriet failu
?>

Lai lasītu failu pa rindiņai, izmantojiet funkciju fgets(). Funkcijai ir nepieciešami 2 nepieciešamie parametri:


ja ($fp)
{
kamēr (!feof($fp))
{
$mans teksts = fgets($fp, 999);
atbalss $mytext."
";
}
}

fclose($fp);
?>

Piezīme.: Šajā piemērā vērtība 999 norāda rakstzīmju skaitu, kas tiks nolasītas, līdz rādītājs sasniegs faila (EOF) beigas.

Lai lasītu failu kā vienotu veselumu, ir jāizmanto funkcija lasīt failu (), kas aizņem 1 nepieciešamo parametru. Funkcija atver failu, parāda tā saturu pārlūkprogrammas logā un pēc tam aizver failu:

echoreadfile("skaitītājs.txt");
?>

Varat arī izmantot funkciju fpassthru(), kas aizņem 1 nepieciešamo parametru. Pirms šīs funkcijas izmantošanas fails ir jāatver lasīšanas režīmā. Kad fails ir beidzis lasīt, funkcija automātiski aizver failu (un faila deskriptors kļūst nederīgs).

$fp = fopen("skaitītājs.txt", "r"); // Atveriet failu lasīšanas režīmā
if ($fp) echo fpassthru($fp);
elseecho "Kļūda atverot failu";
?>

Ļoti bieži ir situācijas, kad ir nepieciešams nolasīt vietnes saturu masīvā. Šī funkcija ietver funkcijas izmantošanu fails (). Izsaucot šo funkciju, katra faila rinda tiks saglabāta atsevišķā norādītā masīva elementā.

Piezīme: šo funkciju nevajadzētu izmantot fails () uz binārajiem failiem (bināri droši), jo Tas nav drošs attiecībā uz bināro failu lasīšanu, un, ja tas kaut kur sastopas ar faila beigu (EOF) rakstzīmi, tas negarantē, ka jūs izlasīsit visu bināro failu.

$fails_masīvs = fails("skaitītājs.txt"); // Lasiet failu $file_masīvā
// Darbs ar masīva datiem
?>

Piezīme: Darbs ar masīviem ir detalizēti aprakstīts, autori: Mukhametshin D.F., Simdjanovs I.V.

Raksta beigās jūs atradīsiet labu “recepšu grāmatu” par masīviem, kas sniedz risinājumus daudzām problēmām, ar kurām tīmekļa programmētājs saskaras katru dienu.

Iedomāsimies situāciju, kad fails ir jālasa pēc rakstzīmes. Lai to izdarītu, mēs varam izmantot funkciju fgetc(). Funkcija aizņem vienu parametru. Funkcija ir noderīga, ja mums jāatrod kāda rakstzīme vai identisku rakstzīmju skaits.

$fp = fopen("skaitītājs.txt", "r"); // Atveriet failu lasīšanas režīmā
ja ($fp)
{
while(!feof($fp))
{
$char = fgetc($fp);
if ($char == "c") $i = $i + 1;// Atrodiet rakstzīmi "c"
}
echo "C burtu skaits failā: ". $i;
}
else echo "Kļūda atverot failu";
?>

III. Faila aizvēršana

Fails tiek aizvērts, izmantojot funkciju fclose(), kas aizņem 1 nepieciešamo parametru.

$fp = fopen("skaitītājs.txt", "r");
ja ($fp)
{
echo "Fails ir atvērts";
fclose($fp); // Faila aizvēršana
}
?>

Recepšu kolekcija

1) Mums ir jāpārbauda, ​​​​vai šis vai cits fails pastāv. Lai to izdarītu, mēs izmantosim funkciju file_exists().

mans fails("skaitītājs.txt"); // Izmantojiet funkciju myfile, nododot faila nosaukumu kā argumentu

function myfile($name) //Izveidojiet funkciju, lai pārbaudītu faila esamību
{
if (file_exists($name)) echo "Fails eksistē";

}
?>

Piezīme: funkcija fails_eksistē nepārbauda failus attālajā tīmekļa serverī. Lai funkcija darbotos pareizi, failam ar skriptu ir jāatrodas tajā pašā serverī, kur tiek pārbaudīts fails.

2) Izmantojot funkciju, nosakiet faila lielumu faila lielums()

mans fails("skaitītājs.txt");

function myfile($name) //Izveidojiet funkciju, lai pārbaudītu faila esamību un noteiktu faila lielumu
{
if (file_exists($name)) echo "Faila lielums: ".faila lielums($nosaukums)." baiti";
else echo "Fails neeksistē";
}
?>

3) Izmantojot funkciju, izveidojiet pagaidu failu tmpfile()

$mans fails = tmpfile();
fwrite($myfile, "Šī rinda ir ierakstīta pagaidu failā."); // Rakstiet pagaidu failā
fseek ($ mans fails, 0); // Iestatiet faila rādītāju
echo fread ($ mans fails, 1024); // izvada faila saturu
?>

4) Jums ir jānosaka faila rindu skaits. Lai to izdarītu, mēs izmantojam funkciju skaitīt()

$fp = fails("skaitītājs.txt");
echo "Rindu skaits failā: ".count($fp);
?>

5) Mums ir jāizmanto failu bloķēšanas mehānisms

$fp = fopen("skaitītājs.txt", "a");
ganāmpulks($fp, LOCK_EX); // Bloķējiet failu rakstīšanai
fwrite($fp, "Linda rakstīšanai");
ganāmpulks($fp, LOCK_UN); // Atbloķēt
fclose($fp);
?>

6) Mums ir jānoņem noteikta rinda no faila

$num_stroka = 5; //Dzēst no faila 5. rindiņu
$fails = fails("skaitītājs.txt"); // Lasiet visu failu masīvā

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

$fp = fopen("skaitītājs.txt", "w");
fputs($fp, implode("", $fails));
fclose($fp);
?>

7) Faila tipa noteikšana. Izmantojot funkciju

Faktiski php faila atvēršana nav liela problēma. Var būt grūtāk atvērt alus pudeli, atrodoties meža vidū. Taču šādi domā tikai dedzīgi programmētāji. Un iesācējiem mēs jums pastāstīsim par visām PHP iespējām darbam ar failiem:

php faili

Faili ar php paplašinājumu satur kodu, kas rakstīts tāda paša nosaukuma programmēšanas valodā. Atšķirībā no citām valodām, php ir servera puses programmēšanas valoda. Tas ir, tas darbojas servera pusē. Tāpēc, lai atkļūdotu tā kodu, klienta datorā ir jāinstalē vietējais serveris.

Lai strādātu ar php failiem, tiek izmantotas īpašas lietojumprogrammas - programmatūras redaktori. Visizplatītākie ir:

  • Dreamweaver.
  • PHPEdit.
  • Eclipse PHP izstrāde.


Veidojot tīmekļa vietnes, kuru pamatā ir PHP, iespējams, būs atkārtoti jāizmanto programmas kods. Šādās situācijās ir ērti savienot gatavus risinājumus, kas atrodas citā failā. Šim nolūkam tiek izmantota iekļautā konstrukcija. Tās sintakse ir:

iekļaut faila nosaukumu

Savienojuma piemērs:

Iekļauts fails:


Faila iekļaušana ir iespējama arī, izmantojot prasību konstrukciju. Atšķirībā no include, tas ietver failu pirms programmas koda izpildes. Kodā izmantojot prasību, ir iespējams tikai viens šī faila izsaukums. Atkārtoti piekļūstot, sistēma parādīs globālu kļūdas ziņojumu un apturēs programmas izpildi.

Iekļautā konstrukcija ietver tikai avotu programmas izpildes laikā. Tā atbalsta vairākas php failu lasīšanas. Ja rodas kļūda, tiks parādīts tikai brīdinājuma ziņojums, un koda izpilde tiks turpināta no nākamās rindas.



Failu atvēršana un aizvēršana

php visas darbības ar failiem tiek veiktas vairākos posmos:

  • Faila atvēršana;
  • Satura rediģēšana;
  • Faila aizvēršana.

Funkcija fopen () tiek izmantota, lai atvērtu failu. Tās sintakse ir:

int fopen (virknes faila nosaukums, virknes režīms [, int use_include_path])

Pieņemtie argumenti:

  • virknes faila nosaukums – faila nosaukums vai absolūtais ceļš uz to. Ja faila ceļš nav norādīts, tas tiks meklēts pašreizējā direktorijā. Ja meklētā faila trūkst, sistēma parādīs kļūdas ziņojumu. Piemērs:


  • virknes režīms – norāda faila atvēršanas režīmu. Argumentā pieņemtās vērtības:
  • r – fails tiek atvērts tikai lasīšanai, faila rādītājs ir iestatīts sākumā;
  • r+ – fails ir atvērts lasīšanai un rakstīšanai;
  • w – izveido jaunu failu tikai rakstīšanai. Ja fails ar tādu pašu nosaukumu jau pastāv, visi tajā esošie dati tiek automātiski dzēsti;
  • w+ - izveido jaunu failu rakstīšanai un lasīšanai. Kad šāds fails pastāv, tā dati tiek pilnībā pārrakstīti ar jauniem;
  • a – fails ir atvērts rakstīšanai. Rādītājs ir iestatīts beigās. Tas ir, rakstīšana php failā sāksies nevis no sākuma, bet no beigām;
  • a+ – atver failu lasīšanas-rakstīšanas režīmā. Ieraksts sāksies no beigām;
  • b – režīms darbam ar failu, kas satur bināros datus (bināro skaitļu sistēmā). Šis režīms ir pieejams tikai operētājsistēmā Windows.

Lai aizvērtu piekļuvi failam, izmantojiet funkciju fclose(). Sintakse:

int fclose (int fails) , kur int fails ir aizveramās vietnes rokturis.

Pēc katras lasīšanas vai rakstīšanas fails ir jāaizver ar šo funkciju. Pretējā gadījumā failam izveidotā straume paliek atvērta. Un tas noved pie nevajadzīga servera jaudas patēriņa.

Piemērs:

Failu lasīšana un rakstīšana

Lai vienkārši parādītu visu faila saturu, funkcija readfile () ir ideāla. Tās sintakse ir:

readfile (virknes faila nosaukums) , kur virknes faila nosaukums ir virknes faila nosaukums (nevis rokturis).


int fpassthru (int fails)

Funkcijai ir jāatver un jāaizver fails. Piemērs:

Rezultāts ir līdzīgs iepriekšējam.

Funkcijas darbam ar failiem programmā php ļauj lasīt saturu pa rindiņai un rakstzīmei pēc rakstzīmes:

  • virkne fgets (int fails, int garums)– funkcija nolasa virkni, kuras garums ir . Piemērs:


  • string fread (int fails, int garums)– darbība ir identiska iepriekšējai.

Lai failā ierakstītu teksta datus, ir divas identiskas funkcijas:

  • int fputs (int fails, virknes virkne [, int garums])
  • int fwrite(int fails, virknes virkne [, int garums ])

Funkcijas ieraksta failā int failā virknes virkni ar norādīto garumu int garumu ( izvēles arguments). Piemērs:


Failu izveide un dzēšana

Lai izveidotu php failu, varat izmantot funkciju fopen() piekļuves režīmā "w" vai "w+". Vai arī touch() funkcija. Tas nosaka faila modifikācijas laiku. Ja nav elementa ar meklēto nosaukumu, tas tiks izveidots. Tās sintakse ir:

int touch (virknes faila nosaukums [, int laiks [, int laiks]])

Lai izveidotu faila kopiju, izmantojiet funkciju copy(). Kā argumenti tiek ņemts oriģināla nosaukums un fails, kurā saturs ir jākopē. Ja tas neeksistē, tas tiks izveidots. Funkciju sintakse:

int kopija (virknes fails1, virknes fails2)


Failu var izdzēst, izmantojot unlink() funkciju. Tās sintakse.

Ja jūs mācāties strādāt ar PHP patstāvīgi, tad ir svarīgi iemācīties nolasīt datus no faila un veikt tajā izmaiņas. Ierakstīšana php failā tiek veikta tīmekļa lietojumprogrammu izstrādei, servera informācijas izmaiņām un ārējo programmu un ieslēgumu palaišanai.

Kā strādāt ar php failiem

Ja failam ir šāds paplašinājums, tas nozīmē, ka tajā ir programmas kods, kas rakstīts tāda paša nosaukuma programmēšanas valodā. Lai veiktu izmaiņas, datorā būs jāinstalē viens no programmatūras redaktoriem:

PHP ekspertu redaktors;
. Dreamweaver;
. Eclipse PHP izstrāde;
. PHPEdit.

Ja veidojat vietni, tad bieži vien ir jāizmanto identisks dizains, kas ērti tiek saglabāti kā veidnes citā failā. Šim nolūkam labāk ir izmantot iekļaut. Pēc šīs funkcijas ievadīšanas php failā jāieraksta savienojuma nosaukums un paplašinājums, piemēram, iekļaujiet 1.php. Šis dizains atbalsta vairākus iekļautā faila nolasījumus, un papildu funkcija ir koda izpildes nepārtrauktība kļūdas gadījumā. Ja kaut kas noiet greizi, kods tiks turpināts izpildīt no jaunas rindas.
Tādā veidā jūs iekļausiet failu savā kodā. Vēl viens veids ir ievadīt prasīt. Atšķirībā no iepriekš aprakstītā iekļaušanas fails tiek iekļauts pirms programmas koda izpildes sākuma, taču tam var piekļūt tikai vienu reizi.

Faila pārbaude

Pirms rakstāt php failā, jums ir jāpārliecinās, vai tas pastāv, un pēc tam atveriet to un veiciet nepieciešamo rediģēšanu. Lai to izdarītu, varat izmantot funkciju file_exists(), ja tā apstiprina klātbūtni, tad redaktora logā tiks atgriezta atbilde TRUE, pretējā gadījumā - FALSE.
Cita funkcija is_file() var informēt, ka ir iespējams rakstīt datus php failā. Tas ir uzticamāks nekā file_exits, un lielākā daļa programmētāju izmanto is_file, lai sāktu darbu. Kad esat pārliecinājies, ka fails eksistē, varat sākt ar to strādāt.

Izmaiņu veikšana failā

Pirmais rīks, ko varat izmantot, lai veiktu izmaiņas failā, ir fwrite(). Tas raksta rindas ar šādu sintaksi:

Int - manipulators;
. Virkne ir mainīgs lielums.

Ir vēl viena līdzīga funkcija - fputs(), kas ir aizstājvārds. Starp šiem rīkiem nav atšķirību, jūs varat izvēlēties vienu vai otru. Studentiem fwrite ir biežāk sastopams, savukārt praktizējošie programmētāji visbiežāk izmanto fput.

Lai veiktu PHP ierakstu teksta failā, ir jāievēro viens svarīgs nosacījums – tam jābūt atvērtam rediģēšanai. Šādam failam jāatrodas mapē ar rakstīšanas atļaujām.

Lai strādātu, vispirms programmā atveriet teksta dokumentu un pēc tam veiciet labojumus, izmantojot parastos rīkus.

// Atveriet teksta failu
$f = fopen("text.txt", "w");
// Uzrakstiet teksta virkni
fwrite($f, "Sveiks! Labdien!");
// Aizvērt teksta failu
fclose($f);

Šajā piemērā teksts.txt ir dokumenta nosaukums. Var nosaukt savādāk: “Sveiki! Laba diena! - teksta piemērs, tas var būt pilnīgi patvaļīgs. Visas izmaiņas tiek automātiski saglabātas atvērtajā failā.

Ņemiet vērā, ka PHP ir vispārējs mērķis. To intensīvi izmanto, lai izveidotu tīmekļa lietojumprogrammas. Šo risinājumu atbalsta lielākā daļa mitināšanas pakalpojumu sniedzēju. Mēs runājam par līderi starp rīkiem, kas tiek izmantoti vietņu izveidei. Tagad jūs zināt, kā rakstīt php failā.

PHP bieži nākas saskarties ar faila izveidi... tas ir ļoti vienkārši: diskā faila nav, kods tika palaists un fails parādījās, tad jūs varat nolasīt šo failu citā mainīgajā vai pat jebkurā lapā Internets un tad tur kaut ko uzraksti... bet šim vajag zināt speciālas funkcijas... par to vairāk šajā rakstā...

Lai izveidotu failu PHP izpildāmā skriptā, jums vienkārši jānorāda dažas funkcijas:

Apskatīsim piemēru:

$text = "Daži teksta ierakstīšanai failā";
$fp = fopen("fails.txt", "w");
fwrite($fp, $teksts);
fclose($fp);
?>

Šeit jums vajadzētu zināt:

fopen ()- funkcija atver failu lasīšanai vai rakstīšanai un precizējumiem;

Šis precizējums (fopen funkcijas režīma parametrs) ir ļoti svarīgs:

  • "r" - atveriet failu programmā php Tikai lasīšanai. Kursors tiek novietots sākumā.
  • "r+" - atveriet failu programmā php lasīšanai un rakstīšanai. Kursors tiek novietots sākumā. !!! - ar šiem diviem režīmiem r un r+ failiem jau jābūt izveidotiem (pretējā gadījumā parādīsies kļūda Brīdinājums: fopen(fails.txt): neizdevās atvērt straumi: nav šāda faila vai direktorija...), un mēs tikai lasām vai mums ir iespēja pievienot.
  • "w" - fails tiek atvērts TIKAI rakstīšanai. Fails tiek saīsināts līdz nulles garumam - tas ir, tiek pārrakstīts. Nepieciešamais tiek ierakstīts un Kursors tiek novietots sākumā.
  • "w+" - atver failu rakstīšanai UN LASĪŠANAI! Pārējais ir tāds pats kā "w" režīmā. !!! - šajos divos režīmos - ja fails nav izveidots - TIKS MĒĢINĀJUMS TO IZVEIDOT!
  • "a" - atveriet failu TIKAI rakstīšanai. Atšķirībā no "w" šī opcija nepārraksta faila saturu, bet novieto kursoru rindas beigās un pievieno saturu, kuru vēlējāmies pievienot beigās.
  • "a+" - atveriet failu rakstīšanai un lasīšanai.

fwrite($fp, $text) - funkcija rakstīšanai failā PHP - tas ir, tas, kas atrodas mainīgajā $text, tiek ierakstīts failā, kas atrodas mainīgajā $fp;

fclose($fp) - funkcija faila aizvēršanai, kuru ierakstījām mainīgajam $fp;

Tagad jūs varat viegli pareizi izveidot failus php, atvērt tos lasīšanai un rediģēšanai.

Noderīgi PHP papildinājumi un funkcijas darbam ar atvērtu failu:

while(!feof($fp))(
$mans teksts = fgets($fp, 99);
atbalss $mytext."
";
}

šeit ir izpildīts nosacījums - "kamēr faila beigas ir sasniegtas, dariet to" while(!feof($fp))

1. Funkcija fgets($fp, 99) - ļauj sadalīt visu saturu 99 baitu un tālāk sadaļās, lai to skaidrāk redzētu, ievietojam tagu

Šī virknes funkcija fgets(resursa rokturis [, int garums]) pēc noklusējuma pieņem 1024 baitus (1 kilobaitu) kā garuma parametru, ja tas nebūs norādīts. Šis parametrs nav obligāts no PHP 4.2.0 (kļūdas gadījumā atgriež FALSE)

Papildu funkcijas faila atvēršanai, rakstīšanai un izveidei

Funkcija - int lasīt failu(virknes faila nosaukums [, bool use_include_path [, resursa konteksts]]) — lasiet failu kopumā.

Nolasa failu un ieraksta tā saturu izvades buferī. Un atgriež izvadīto baitu skaitu. Kļūdas gadījumā atgriezīsies, ja suns netiks lietots - @readfile.

Kaut kas līdzīgs notiks:

Vārda beigās ir atzīme
.

b. Funkcija – masīvs failu(virknes faila nosaukums [, int use_include_path [, resursa konteksts]]), veic to pašu, ko funkcija readfile, ar vienu izņēmumu tā pievieno faila saturu masīvam:

Tādā veidā jūs varat lasīt jebkuras lapas internetā: $lines = file("http://site/"); un atkārtojiet masīvu, izmantojot funkciju foreach;

3a. virknes funkcija file_get_contents(virknes faila nosaukums [, bool use_include_path [, resursa konteksts [, int offset [, int maxlen]]]] — ļauj iegūt saturu kā vienu virkni.

Šī ir universālāka PHP funkcija faila lasīšanai, līdzīga faila funkcijai, tikai saturs tiek atgriezts kā virkne, nevis masīvs, un jūs varat iestatīt nosacījumus - ar kuru baitu sākt - kompensēt un ar ko beigties - makslens. Neveiksmes gadījumā tas atgriezīsies FALSE.

Svarīgs!!!- šajā gadījumā funkcija aizvieto 3 uzreiz: fopen(), fread() un fclose() un tādējādi atbrīvojas no atzīmes.

3b. int funkcija file_put_contents(virknes faila nosaukums, jaukti dati [, int karodziņi [, resursa konteksts]]) — identisks funkciju fopen(), fwrite() un fclose() izsaukumiem — atgriež ierakstīto baitu skaitu.




Tops