haardys Posted January 5, 2010 Report Share Posted January 5, 2010 Vai ir kkaadaa veidaa iespeejams izkatot no faila? piemeeram teksta failaa glabaajas veertiibas : 1 2 3 4 5 6 7 8 9 un man vajadzetu izkatot pirmaas 3 veertiibas.. pectam atkal nakamas 3 utt.. is it real?! Quote Link to comment Share on other sites More sharing options...
briedis Posted January 5, 2010 Report Share Posted January 5, 2010 (edited) Nē, tas nav iespējams. Nu labi, ir :) Ja gribi izmest kādu konkrēti rindiņu... Ielasi failu masīvā ar file() funkciju. Izmet nevajadzīgos masīva elementus ar unset() funkciju. Sakabini visus masīva elementus vienā garā stringā ar implode() funkciju. Ieraksti atpakaļ failā ar file_put_contents() funkciju... Kad būsi kaut ko uzrakstījis, vari atgriezties un pajautāt kaut ko vairāk... Edited January 5, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
2easy Posted January 5, 2010 Report Share Posted January 5, 2010 // file fetch - fetch first lines from file // $sP - file path // $iLnCnt - line count // return - string with first lines or null if file is empty function fileFetch($sP, $iLnCnt) { if (!filesize($sP)) return; // nolasa pirmās $iLnCnt rindiņas $s = ''; $h = fopen($sP, 'r+'); for ($i = 0; $i < $iLnCnt; $i++) $s .= fgets($h); $iLen = ftell($h); // pārceļ atlikušo faila saturu uz sākumu un atmet beigas $sF = fread($h, filesize($sP)); fseek($h, 0); fwrite($h, $sF); ftruncate($h, filesize($sP) - $iLen); fclose($h); return $s; } echo fileFetch('data.txt', 3); lieliem failiem for performance labāk būtu ņemt pēdējās n rindiņas, jo tad katru reizi nevajadzētu pārcelt atlikušo faila saturu uz sākumu. tad pa blokam lasa no faila beigām, kamēr dabū vajadzīgo skaitu rindu, un faila beigas vnk atmet ar ftruncate() tāpat kā šajā gadījumā Nē, tas nav iespējams. ... Kad būsi kaut ko uzrakstījis, vari atgriezties un pajautāt kaut ko vairāk... ble, jau nojautu, ka kāds kko tādu pateiks :D:D:D briedi, kad būsi iemācījies strādāt ar failiem, tad varēsi atbildēt kaut ko vairāk... Quote Link to comment Share on other sites More sharing options...
briedis Posted January 5, 2010 Report Share Posted January 5, 2010 (edited) Nedomāju, ka viņš tur apstrādās megabaitīgus failus... Un pārlasījos, savā variantā domāju ka viņam kkur pa vidu izmest vajag.. Pie maziem failiem neiespringtu un rakstītu kaut ko šādu... <? $file = "file.txt"; $arr = file($file); unset($arr[2]); //izmetam 3. rindiņu unset($arr[3]); //izmetam 4. rindiņu unset($arr[4]); //izmetam 5. rindiņu file_put_contents($file,implode("",$arr)); ?> Edited January 5, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
2easy Posted January 5, 2010 Report Share Posted January 5, 2010 cut nozīmē copy & delete, lai pēc tam kkur varētu taisīt paste. tobish nevar vnk unset() un aizmirst. pirms tam vajag arī saglabāt šis rindiņas, lai kko ar tām varētu darīt tālāk bet ja cut ir vnk tikai delete, tad jau gan... Quote Link to comment Share on other sites More sharing options...
rausis Posted January 5, 2010 Report Share Posted January 5, 2010 pirms taisi unset, saglabā to mainīgajā... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.