uy - Kompyuterlar
Php fayldan birinchi qatorni o'qiydi. PHP: PHP faylini o'qish
18,4 ming

Aslida php faylni qanday ochish katta muammo emas. O'rmon o'rtasida bo'lganingizda bir shisha pivo ochish qiyinroq bo'lishi mumkin. Ammo faqat ishtiyoqli dasturchilar shunday deb o'ylashadi. Yangi boshlanuvchilar uchun biz sizga PHP ning fayllar bilan ishlash uchun barcha imkoniyatlari haqida gapirib beramiz:

php fayllari

php kengaytmali fayllar bir xil nomdagi dasturlash tilida yozilgan kodni o'z ichiga oladi. Boshqa tillardan farqli o'laroq, php server tomonidagi dasturlash tilidir. Ya'ni, u server tomonida ishlaydi. Shuning uchun, uning kodini disk raskadrovka qilish uchun mijoz mashinasida mahalliy server o'rnatilishi kerak.

PHP fayllari bilan ishlash uchun foydalaning maxsus ilovalar- dasturiy ta'minot muharrirlari. Eng keng tarqalganlari:

  • Dreamweaver.
  • PHPEdit.
  • Eclipse PHP ishlab chiqish.
PHP asosidagi saytlarni yaratishda bir nechta foydalanish talab qilinishi mumkin dastur kodi. Bunday vaziyatlarda allaqachon ulanish qulay tayyor echimlar boshqa faylda joylashgan. Buning uchun include konstruktsiyasi ishlatiladi. Uning sintaksisi:

fayl nomini o'z ichiga oladi

Ulanish misoli:

Kiritilgan fayl:


Faylni kiritish talab konstruktsiyasi yordamida ham mumkin. Include dan farqli o'laroq, u dastur kodi bajarilishidan oldin faylni o'z ichiga oladi. Koddagi talabdan foydalanib, ushbu faylga faqat bitta qo'ng'iroq qilish mumkin. Qayta kirishda tizim global xato xabarini ko'rsatadi va dasturning bajarilishini to'xtatadi.

Include konstruktsiyasi faqat dasturni bajarish paytida manbani o'z ichiga oladi. PHP faylini bir necha marta o'qishni qo'llab-quvvatlaydi. Agar xatolik yuzaga kelsa, faqat ogohlantirish xabari ko'rsatiladi va kodni bajarish keyingi qatordan davom etadi.

Fayllarni ochish va yopish

php da fayllar bilan barcha operatsiyalar bir necha bosqichda amalga oshiriladi:

  • Faylni ochish;
  • Kontentni tahrirlash;
  • Faylni yopish.

Fopen() funksiyasi faylni ochish uchun ishlatiladi. Uning sintaksisi:

int fopen(string fayl nomi, string rejimi [, int use_include_path])

Qabul qilingan dalillar:

  • string fayl nomi - fayl nomi yoki unga mutlaq yo'l. Agar faylga yo'l ko'rsatilmagan bo'lsa, u joriy katalogda qidiriladi. Agar siz izlayotgan fayl yo'q bo'lsa, tizim xato xabarini ko'rsatadi. Misol:

  • string rejimi - faylni ochish rejimini bildiradi. Argument tomonidan qabul qilingan qiymatlar:
  • r – fayl faqat o‘qish uchun ochiladi, fayl ko‘rsatkichi boshida o‘rnatiladi;
  • r+ – fayl o‘qish va yozish uchun ochiq;
  • w - faqat yozish uchun yangi fayl yaratadi. Agar bir xil nomdagi fayl allaqachon mavjud bo'lsa, undagi barcha ma'lumotlar avtomatik ravishda o'chiriladi;
  • w+ - yozish va o'qish uchun yangi fayl yaratadi. Bunday fayl mavjud bo'lganda, uning ma'lumotlari butunlay yangilari bilan yoziladi;
  • a - fayl yozish uchun ochiq. Ko'rsatkich oxirida o'rnatiladi. Ya'ni, php faylga yozish boshidan emas, balki oxiridan boshlanadi;
  • a+ – faylni o‘qish-yozish rejimida ochish. Yozish oxiridan boshlanadi;
  • b - ikkilik ma'lumotlarni o'z ichiga olgan fayl bilan ishlash rejimi (in ikkilik tizim hisob). Ushbu rejim faqat ushbu rejimda mavjud operatsion tizim Windows.

Faylga kirishni yopish uchun fclose() funksiyasidan foydalaning. Sintaksis:

int fclose (int fayli), bu erda int fayli saytni yopish uchun tutqichdir.

Har bir o'qish yoki yozishdan keyin fayl ushbu funktsiya bilan yopilishi kerak. Aks holda, fayl uchun yaratilgan oqim ochiq qoladi. Va bu server sig'imining keraksiz sarflanishiga olib keladi.

Misol:

Fayllarni o'qish va yozish

Faylning butun mazmunini oddiygina ko'rsatish uchun readfile() funksiyasi idealdir. Uning sintaksisi:

readfile (string fayl nomi), bu erda string fayl nomi qator fayl nomidir (tutqich emas).


Xuddi shu faylni fpassthru() funksiyasi yordamida o'qish mumkin. U oxirgi ko'rsatkich holatidan faylning oxirigacha ma'lumotlarni o'qiydi. Uning sintaksisi:

int fpassthru (int fayli)

Funktsiya faylni ochish va yopishni talab qiladi. Misol:

Natija avvalgisiga o'xshaydi.

PHP da fayllar bilan ishlash funksiyalari kontentni satr boʻyicha va belgilar boʻyicha oʻqish imkonini beradi:

  • string fgets (int fayli, int uzunligi)– funksiya uzunlikdagi qatorni o‘qiydi. Misol:

  • string fread (int fayli, int uzunligi)- harakat avvalgisiga o'xshash.

Faylga matnli ma'lumotlarni yozish uchun ikkita bir xil funktsiya mavjud:

  • int fputs (int fayl, string string [, int length ])
  • int fwrite(int fayl, string string [, int length])

Funktsiyalar int faylga belgilangan uzunlikdagi int uzunlikdagi satrni yozadi ( ixtiyoriy argument). Misol:

Fayllarni yaratish va o'chirish

PHP faylini yaratish uchun siz "w" yoki "w+" kirish rejimida fopen() funksiyasidan foydalanishingiz mumkin. Yoki touch() funksiyasi. U faylni o'zgartirish vaqtini belgilaydi. Agar qidirilayotgan nomga ega element bo'lmasa, u yaratiladi. Uning sintaksisi.

PHPda ko'pincha fayl yaratish bilan shug'ullanishga to'g'ri keladi... bu juda oddiy: diskda fayl yo'q, kod ishga tushirildi va fayl paydo bo'ldi, keyin siz ushbu faylni boshqa o'zgaruvchiga yoki hatto istalgan sahifaga o'qishingiz mumkin. Internet va keyin u erda biror narsa yozing ... lekin buning uchun siz maxsus funktsiyalarni bilishingiz kerak ... bu haqda ushbu maqolada batafsilroq ...

PHP da bajariladigan skriptda fayl yaratish uchun bir nechta funksiyalarni belgilash kifoya:

Keling, bir misolni ko'rib chiqaylik:

$text = "Faylga yozish uchun qandaydir matn";
$fp = fopen("file.txt", "w");
fwrite($fp, $matn);
fclose($fp);
?>

Bu erda siz bilishingiz kerak:

fopen()- funksiya faylni o'qish yoki yozish va tushuntirishlar uchun ochadi;

Ushbu tushuntirish (fopen funktsiyasining rejim parametri) juda muhim:

  • "r" - php da faylni oching Faqat o'qish uchun. Kursor boshida joylashgan.
  • "r+" - php da faylni oching o'qish va yozish uchun. Kursor boshida joylashgan. !!! - ushbu ikki rejimda r va r+ bilan fayllar allaqachon yaratilgan bo'lishi kerak (aks holda xato paydo bo'ladi Ogohlantirish: fopen(file.txt): oqimni ochib bo'lmadi: Bunday fayl yoki katalog yo'q ...), va biz faqat o'qiymiz yoki qo'shish imkoniyati mavjud.
  • "w" - fayl FAQAT yozish uchun ochiladi. Fayl uzunligi nolga qisqartiriladi - ya'ni uning ustiga yoziladi. Kerakli narsa yoziladi va Kursor boshida joylashtiriladi.
  • "w+" - yozish va o'qish uchun faylni ochadi! Qolganlari "w" rejimida bo'lgani kabi. !!! - bu ikki rejimda - agar fayl yaratilmagan bo'lsa - UNING YARATISHGA URILADI!
  • "a" - faylni FAQAT yozish uchun oching. "w" dan farqli o'laroq, bu parametr fayl mazmunini qayta yozmaydi, balki kursorni satr oxiriga qo'yadi va biz qo'shmoqchi bo'lgan tarkibni oxiriga qo'shib qo'yadi.
  • "a+" - yozish va o'qish uchun faylni oching.

yozing($fp, $text) - PHP da faylga yozish funksiyasi - ya'ni $text o'zgaruvchisida bo'lgan narsa $fp o'zgaruvchisidagi faylga yoziladi;

fyopish($fp) - biz $fp o'zgaruvchisiga yozgan faylni yopish funksiyasi;

Endi siz php-da osongina fayllarni to'g'ri yaratishingiz, ularni o'qish va tahrirlash uchun ochishingiz mumkin.

Ochiq fayl bilan ishlash uchun foydali PHP qo'shimchalari va funktsiyalari:

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

bu erda shart bajariladi - "fayl oxirigacha buni bajaring" while(!feof($fp))

1. Funktsiya fgets($fp, 99) - barcha tarkibni 99 bayt va undan ortiq bo'limlarga bo'lish imkonini beradi, buni aniqroq ko'rish uchun biz teg joylashtiramiz.

Bu string funktsiyasi fgets(resurs tutqichi [, int length]) sukut bo'yicha uzunlik parametri sifatida 1024 baytni (1 kilobayt) qabul qiladi, agar ko'rsatilmagan bo'lsa, shunday bo'ladi. Ushbu parametr PHP 4.2.0 dan boshlab ixtiyoriy (xato bo'lsa, FALSE qaytaradi)

Faylni ochish, yozish va yaratish uchun qo'shimcha funktsiyalar

Funktsiya - int o'qish fayli(string fayl nomi [, bool use_include_path [, resurs konteksti]]) - faylni butun sifatida o'qing.

Faylni o'qiydi va tarkibini chiqish buferiga yozadi. Va chiqish bayt sonini qaytaradi. Xato bo'lsa, it ishlatilmasa, u qaytadi - @readfile.

Shunga o'xshash narsa bo'ladi:

So'z oxirida teg mavjud
.

b. Funktsiya - massiv fayl(fayl nomi [, int use_include_path [, resurs konteksti]]), oʻqish fayli funksiyasi bilan bir xil ishlaydi, bitta istisnodan tashqari, u fayl mazmunini massivga qoʻshadi:

Shu tarzda siz Internetdagi istalgan sahifalarni o'qishingiz mumkin: $lines = file("http://site/"); va foreach funksiyasidan foydalanib massiv bo'ylab takrorlash;

3a. string funktsiyasi file_get_contents(string fayl nomi [, bool use_include_path [, resurs konteksti [, int ofset [, int maxlen]]]] - tarkibni bitta satr sifatida olish imkonini beradi.

Bu faylni oʻqish uchun universalroq PHP funksiyasi boʻlib, fayl funksiyasiga oʻxshaydi, faqat tarkibi massiv emas, satr sifatida qaytariladi va siz shartlarni belgilashingiz mumkin - qaysi baytdan boshlash - ofset va qaerda tugatish - maxlen. Muvaffaqiyatsiz bo'lsa, u FALSE qiymatini qaytaradi.

Muhim!!!- bu holda funksiya birdaniga 3 ni almashtiradi: fopen(), fread() va fclose() va shu tariqa belgidan xalos bo'ladi.

3b. int funktsiyasi file_put_contents(string fayl nomi, aralash ma'lumotlar [, int bayroqlari [, resurs konteksti]]) - fopen(), fwrite() va fclose() funksiyalariga ketma-ket qo'ng'iroqlar bilan bir xil - yozilgan baytlar sonini qaytaradi.

ip fgets(resurs tutqichi [, uzunlik uzunligi])

Tutqich bilan ko'rsatilgan fayl identifikatoridan o'qilgan 1 bayt uzunlikdagi qatorni qaytaradi. O'qilgan baytlar soni uzunlikka yetganda - 1 ga, satr oxiriga (qaytish qiymatiga kiritilgan) yoki fayl oxiriga yetganda (qaysi biri birinchi bo'lsa) o'qish tugaydi. Agar uzunlik ko'rsatilmagan bo'lsa, u sukut bo'yicha 1 kilobayt yoki 1024 baytga teng.

Agar xatolik yuzaga kelsa, funktsiya qaytadi FALSE .

Eng keng tarqalgan xatolar:

Dasturchilar "C" funksiyalarining semantikasiga o'rganib qolgan fgets(), fayl oxiri (EOF) bayrog'i qanday qaytarilishidagi farqni hisobga olishi kerak.

Fayl ko'rsatkichi to'g'ri bo'lishi va funksiyalar tomonidan muvaffaqiyatli ochilgan faylga ishora qilishi kerak fopen() yoki fsockopen() .

Quyida oddiy misol keltirilgan:


Misol 1. Faylni satr bo'yicha o'qish

$handle = fopen("/tmp/inputfile.txt" , "r" );
esa (! feof ($handle )) (
$bufer = fgets($handle, 4096);
echo $bufer ;
}
fclose($dastasi);
?>

Izoh: Uzunlik parametri PHP 4.2.0 versiyasidan boshlab ixtiyoriy bo'ldi. Agar bu parametr o'tkazib yuborilsa, satr uzunligi 1024 deb qabul qilinadi. PHP 4.3 dan boshlab uzunlik parametrini o'tkazib yuborish oqimning satr oxirigacha o'qilishiga olib keladi. Agar fayldagi satrlarning ko'pchiligi 8 kilobaytdan uzun bo'lsa, skript tomonidan ishlatiladigan resurslar bo'yicha eng samarali qaror maksimal satr uzunligini belgilashdir.

Izoh: Bu funksiya PHP 4.3 dan boshlab ikkilik ma'lumotlarni to'g'ri qayta ishlay oladi. Ko'proq dastlabki versiyalari bu funksiyaga ega emas edi.

PHP dasturlash tillari o'z pozitsiyalarini mustahkamlagandan va sintaksis, mantiq, o'zgaruvchilar va boshqa dastur ob'ektlari haqida umumiy g'oyalarni shakllantirishdan ancha keyin paydo bo'ldi. Fayllar va ular bilan ishlash funktsiyalari muvaffaqiyatga erishmadi va hatto tabiiy sabablarga ko'ra paydo bo'lgan fayllarni kodlash muammosi ham tubdan yangi echimlarga olib kelmadi.

Umumiy izohlar

Fayllar bilan asosiy ish, ular nima bo'lishidan qat'iy nazar, ochish, o'qish/yozish va yopishdan iborat. Siz faylga ishlov berilayotgan vaqtda unga kirishni bloklash/blokdan chiqarish funksiyalaridan foydalanishingiz mumkin, faylda o‘qish/yozish holatini o‘rnatishingiz mumkin – hammasi avvalgidek, uzoq o‘tmishdagidek.

PHPda muhim jihat bu fayllar bilan ishlash funksiyalarining ko'pligi va ulardan foydalanish imkoniyatlari. Amalda oddiy, ammo ishlaydigan variantlardan foydalanish kifoya. Fayl, eng avvalo, dastur xotirasidir. Unda ma'lumotlarni saqlashingiz mumkin. Har qanday dasturning maqsadi, har qanday veb-saytning maqsadi ma'lumotlarni taqdim etish, qayta ishlash va xavfsizligini ta'minlashdir.

Muhim holat

Ilgari, hech bo'lmaganda pastdan yuqoriga qarab, muvofiqlik talabi qat'iy edi. Ya'ni, dasturlash tilining bir versiyasida bir marta yozilgan dastur keyingi versiyada ideal tarzda kompilyatsiya qilinadi/tarjima qilinadi. Zamonaviy dasturlashda bunday emas. Tilning sintaktik tuzilmalarining muvofiqligi talabi tarixga aylanib, uslublar va dasturlash vositalari va ayrim vositalarning versiyalari oʻrtasidagi kurash ularning hayot normasiga aylandi.

Fayllar bilan ishlash, shuningdek, ma'lumotlar bazalari bilan ishlash sayt interfeysi kabi muhimdir. Birinchisi platformani, xostingni yoki til versiyasini o'zgartirganda sayt kodini o'zgartirishga hojat qolmaydigan tarzda tuzilishi kerak. Fayllar bilan ishlash interfeysi alohida skriptga kiritilishi va to'liq muvofiqlikni ta'minlashi kerak, xuddi sayt dizayni har qanday qurilmaga, brauzerga mos ravishda moslashishi va saytning qolgan funktsiyalarini bir xil imkoniyatlar bilan ta'minlashi kerak.

O'qing va o'zingizni o'zgartiring

Dastur o'zini o'zgartira oladimi, ya'ni skript yaxshilanishi mumkinmi? Bugungi kunga qadar bu savol ko'pchilikni qiziqtirmoqda. Ammo vazifa ancha amaliy ko'rinadi: PHP o'qish PHP fayli. Ishlab chiquvchi har doim ham ma'lum bir kodni yozish orqali muayyan muammoni hal qila olmaydi. Ba'zan saytga tashrif buyuruvchi kelganda va rivojlanish bosqichida ko'zda tutilmagan savolni shakllantirganda uni o'zgartirish kerak bo'ladi.

Boshqa barcha holatlarda bo'lgani kabi, birinchi navbatda faylni ochishingiz kerak. Bu fayl mavjudligi yoki yo'qligi muhim emas. Agar fayl mavjudligi ma'lum bo'lsa (file_exists() funksiyasi ijobiy javob beradi), fopen() funksiyasi 'r', 'r+', 'a', 'a+' kirish bilan ishlatiladi. Agar fayl hali mavjud bo'lmasa, u holda 'a', 'a+', 'w', 'w+' kirish bilan. Faylni ochish natijasi uning deskriptori bo'ladi. Fayl fclose() funksiyasi bilan yopilgan.

Faylni massivga o'qish uchun PHP dan foydalanish qulay, agar o'qish vaqtida uni qayta ishlash kerak bo'lmasa.

agar (fayl_mavjud($fName)) (

$aLines = fayl($fName)

Ushbu parametrda faylning har bir satri massiv elementiga ketma-ket kiradi. Shuni ta'kidlash kerakki, file() yoki file_get_contents() funksiyalari faylni ochish va yopish shart emas.

Kirish fayli juda katta bo'lsa va siz ozgina ma'lumot topishingiz kerak bo'lsa yoki boshqa sabablarga ko'ra faylni satr bo'yicha o'qish uchun PHP dan foydalanishingiz mumkin. PHP buni fgets() va fgetc() funksiyalari yordamida amalga oshirish imkoniyatini beradi.

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

while ((noto'g'ri !== ($cLine = fgets($fvs, 2000)))) (

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

Ikkala variant ham muammosiz ishlaydi. Biroq, keyinchalik o'zgartirish uchun PHP faylini PHP o'qishni amalga oshirayotganda ehtiyot choralarini ko'rish kerak. Saytni ishlab chiqish bosqichida tashrif buyuruvchi undan qanday foydalanishini oldindan bilish har doim ham mumkin emas. Agar skriptlar saytning funktsiyalari doirasida o'zgartirilsa va bu o'zgarishlarni nazorat qilish tashrif buyuruvchi, shu jumladan resurs ma'muri uchun mavjud bo'lmasa, yaxshiroqdir.

Natijalarni saqlash

Qabul qilingan va yangilangan ma'lumot faylga fputs() funksiyasi satr bo'yicha yoki butun fayl_put_contents() funksiyasi orqali yoziladi.

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

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

suruv($fvs, LOCK_EX)

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

fputs($fvs, $cLine)

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

fputs($fvs, $cLine)

suruv($fvs, LOCK_UN)

Satr bo'yicha yozish opsiyasida siz yozib olish jarayonida ma'lumotlarni o'zgartirishingiz mumkin, ikkinchi holda, yozma satr yoki massiv butun faylga joylashtiriladi.

$fayl = " scData.php "

$cContents = file_get_contents($file)

// yozuv qo'shish

$cContents .= "yangi yozuv\n"

// faylni qayta yozing

file_put_contents($file, $cContents)

PHP fayllarini o'qish va yozish oson va tabiiydir. Biroq, shuni yodda tutish kerak: har bir faylning nomi, kengaytmasi va yo'li (papkasi) mavjud. PHP skripti fayllarni o'qish va yozish imkoniyatiga ega bo'lishi uchun ushbu skript tegishli huquqlarga ega bo'lishi kerak. Ular avtomatik ravishda xostingda ochiladi, lekin ba'zi hollarda ularni kengaytirish kerak.

Ba'zi hollarda, testni o'qish orqali natijalarni tekshirish maqsadga muvofiq bo'lishi mumkin. PHP fayllarini yozish ishlab chiqish jarayonida buni talab qiladi, lekin ba'zi hollarda sayt xavfsizligi yoki ishonchliligi uchun ma'lumotlarni yozib olishni tekshirish juda muhimdir.

PHP, MySQl, JavaScript va ayniqsa brauzerlarning xarakterli xususiyati: ba'zi xatolarga jimgina ruxsat berish. "Tanilmadi, bajarilmadi ..." - bu juda yaxshi front amaliyoti emas axborot texnologiyalari, lekin bu ishlab chiquvchilarni xato qilmaslik va toza, yuqori sifatli kod yozishni o'rgatadi, bu ham yomon emas.

PHP va haqiqiy hujjatlar bilan ishlash

PHP faylini o'qish, albatta, amaliy qiziqish uyg'otadi, ammo bu dasturlash sohasi. Foydalanuvchi va saytga tashrif buyuruvchini u jadval va hujjatlar ko'rinishida, xususan *.xlsx va *.docx fayl formatlarida ko'rishga odatlangan amaliy xarakterdagi ma'lumotlar qiziqtiradi. Bular MS Excel va MS Word formatidagi fayllar.

Tovarlar ro'yxati, narxlari, xarakteristikalari odatda jadvallar ko'rinishida tuziladi, shuning uchun PHP o'qish Excel fayli muhim ahamiyatga ega.

Bunday fayllar bilan ishlash uchun PHPExcel va PHPWord kutubxonalari ishlab chiqilgan. Biroq, *.xlsx va *.docx fayllari mazmuni OOXML standartida taqdim etiladi, ya'ni haqiqiy, tushunarli hujjat zip arxivida taqdim etiladi. Zip arxivi- bu juda ko'p fayllar, shu jumladan rasmlar, ob'ektlar, formulalar, boshqa dasturlardan qo'shimchalar. Bu erda matnli fayllar teglar ko'rinishidagi tavsiflar bilan ifodalanadi. Bunday faylni o'qishning o'zi etarli emas; foydalanish va o'zgartirish uchun tarkib va ​​tuzilmani olish uchun uni tahlil qilish kerak.

Bu shuni anglatadiki, o'qish operatsiyasi arxivni ochish protsedurasiga aylanadi. Ushbu kutubxonalar hujjatlar arxivini mustaqil ravishda ochadi va ishlab chiquvchiga bunday hujjatlarni o'qish, qayta ishlash va yozish uchun keng funktsiyalarni beradi.

Excel jadvallari

include_once 'PhpOffice/PhpExcel/IOFactory.php'

scGetExcelFile funksiyasi($xls)(

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

//bu massiv qatorlar massivlarini o'z ichiga oladi

$aSheet = $objPHPExcel->getActiveSheet()

$massiv = massiv()

// davolash

foreach($aSheet->getRowIterator() $ qator sifatida)(

$cellIterator = $row->getCellIterator()

foreach($cellIterator $cell sifatida)(

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

array_push($massiv, $element)

Excel fayllarini o'qish va qayta ishlashni qayta ishlash ancha qiyin Word hujjatlari. Eng yaxshi variant Agar siz amaliy ma'lumotlarni o'qish va qayta ishlash uchun jiddiy loyihani amalga oshirishingiz kerak bo'lsa, avvalo PHPWord kutubxonasini o'zlashtiring. Bu beradi yaxshi tajriba va masalaning o'ziga xos jihatlari bilan tez tanishish.

Word hujjatlari

Faqat ikkita qator:

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

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

$cFileName hujjati endi qayta ishlash uchun mavjud. Keyinchalik, arxiv ochiladi, uning mazmuni tanlanadi va tahlil qilinadi, uni veb-saytda ko'rsatish, o'zgartirish va qayta yozish mumkin.

$zipClass = yangi ZipArchive()

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

// hujjatning butun mazmunini o'qing

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

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

$cNameInExt = substr($cNameIn, -4)

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

// ".xml" va ".xml.rels" kengaytmali fayllar hujjat jadvalida saqlanadi

// har bir xml qatori tartibda noyob raqam bilan yoziladi

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

$cBodyInLen = strlen($cBodyIn)

// qolgan barcha fayllar hujjat papkasiga xuddi shunday yoziladi

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

$zipClass->getFromName($cNameIn, $cWorkPath); // fayl sifatida tarkib

Qachon ochilgan imkoniyatlar PHP yordami Excel va PHP Word har qanday vaqtda haqiqiy hujjatlarni manipulyatsiya qilish va ularning mazmunini tegishli qilish imkonini beradi. Bugungi dinamik dunyoda bu juda muhim bo'lib qoladi. Og'irlik markazi uzoq vaqtdan beri ko'chib ketgan mahalliy foydalanish kompyuter uskunalari virtual Internet maydoniga. Shu sababli, mahalliy Microsoft mahsulotlarida jadvallar va hujjatlar yaratish veb-saytda avtomatik va yarim avtomatik rejimda bunday hujjatlar bilan ishlashga qaraganda unchalik samarali emas, bu nafaqat jadval yoki hujjat yaratuvchisi, balki uning iste'molchilari uchun ham ochiqdir.

Matn fayllari, boshqa hayot

Birinchi taxminga ko'ra, matnli fayllar PHP fayllari yoki dastur hujjatlariga qaraganda soddaroq. Biroq, bu erda o'ylash kerak bo'lgan narsa bor. Bunday fayllarni o'qish/yozish operatsiyalari allaqachon yuqorida ko'rsatilgan, ammo bunday fayllarning ma'nosi ancha muhimroqdir.

Mijoz va server (birinchisida JavaScript, ikkinchisida PHP) mavjud bo'lgani uchun, hatto cookie-fayllar va seanslar mexanizmlari ham skriptlar, sahifalar yoki ma'lum jarayonlar o'rtasida ma'lumot uzatish zaruratini bartaraf eta olmaydi.

Ma'lumotlar bazasida kerakli o'zgarishlarni aks ettirish mumkin, ammo ularning barcha afzalliklari va tezligi uchun kichik vaqtinchalik yoki doimiy matnli fayllar ma'lumotni uzatish uchun ancha qiziqarli variant bo'lishi mumkin. Agar siz juda ko'p kichik fayllar yaratmasangiz va ularning hajmini nazorat qilmasangiz, ular ma'lumotlar bazasining o'ziga xos va moslashuvchan versiyasi bo'lishi mumkin.

PHP matnli faylni tez o'qiydi, uni darhol strukturaga, massivga yoki ob'ektga ajratish mumkin. Ikkinchisi juda muhim, chunki u sizga ajratilgan vaqtdan tashqarida yashaydigan ob'ektlarni yaratishga imkon beradi PHP skripti, siz bilganingizdek, faqat serverda mavjud bo'lishi mumkin va faqat sahifa yuklanganda, AJAX javobi hosil bo'lganda yoki PHP tarjimonini ishga tushirishga olib keladigan boshqa sabablarga ko'ra.

Agar siz matnli fayl ishlab chiquvchining mazmuni va tuzilishi ekanligi haqida o'ylayotgan bo'lsangiz, PHP fayli tarjimonning sintaksisi va ishlab chiquvchi mantig'idir va "teglangan" tavsiflar html, css, xml ko'proq semantik elementlardir, lekin tartibga solinadi. statik standartlar bo'yicha. Fayllar uchun yangi tarkibga ega bo'lish vaqti keldi, degan xulosaga kelish mumkin va bu ularning sifati va foydalanish mantiqini aniqlashi kerak. Aynan dasturlash o'z rivojlanishining keyingi bosqichiga hali tayyor emasligi sababli, bugungi kunda fayllar faqat ishlab chiquvchi yaratadigan va ulardan foydalanishni belgilaydigan fayllar bo'lib qolmoqda.

Eng qiziqarli va istiqbolli narsa, zarurat tug'ilganda PHP PHP faylni mustaqil ravishda o'qiydi. Va oddiy PHP fayldan satrni o'qish natijasida hech bo'lmaganda u saqlangan holatda ob'ekt yaratiladi. Bular butunlay tanish g'oyalar emas, lekin ichida zamonaviy dunyo hamma narsa juda tez o'zgaradi.

PHP

file_exists("test.txt")//Fayl mavjudmi? filesize("test.txt");//Fayl hajmini bilib oling //Vaqt tamg'asi qaytarildi: fileatime("test.txt");//Faylga oxirgi marta kirish sanasi //date("d M Y" , $atime); filemtime("test.txt");//Faylni o'zgartirish sanasi //date("d M Y", $mtime); filectime("test.txt");//Fayl yaratilgan sana (Windows) //date("d M Y", $ctime);

Fayllar: ish rejimlari

PHP

resurs fopen (string fayl nomi, string rejimi) // resurs - muvaffaqiyatli bo'lsa faylga ko'rsatgichni qaytaradi yoki xato bo'lsa FALSE
Ish tartibi Tavsif
r faqat o'qish uchun ochiq fayl;
r+ o'qish va yozish uchun faylni ochish;
w faylni faqat yozish uchun oching. Agar u mavjud bo'lsa, faylning joriy tarkibi yo'q qilinadi. Joriy pozitsiya boshiga o'rnatiladi;
w+ o'qish va yozish uchun faylni oching. Agar u mavjud bo'lsa, faylning joriy tarkibi yo'q qilinadi. Joriy pozitsiya boshiga o'rnatiladi;
A faylni yozish uchun oching. Joriy pozitsiya faylning oxiriga o'rnatiladi;
a+ o'qish va yozish uchun faylni oching. Joriy pozitsiya faylning oxiriga o'rnatiladi;
b ikkilik faylni qayta ishlash. Bu bayroq Windowsda ikkilik fayllar bilan ishlashda talab qilinadi.

PHP da fayllarni ochish va yopish

PHP

$fi = fopen("test.html", "w+") yoki die("Xato"); //Misollar $fi = fopen("http://www.you/test.html", "r"); $fi = fopen("http://ftp.you/test.html", "r"); //fclose($fi) ni yopish

PHP da fayllarni o'qish

PHP

//Faylni o'qing fread(int fi, int length) $str = fread($fi, 5); // Birinchi 5 ta belgini o'qing echo $str; // kursor ko'chirilganligi sababli $str = fread($fi, 12); // Keyingi 12 ta belgini o'qing echo $str; fgets(int fi[, int uzunligi]) // Fayldan satrni o'qish fgetss(int fi, int uzunligi [, string ruxsat etilgan]) // Fayldan satrni o'qish va HTML teglarini o'chirish // string ruxsat etilgan - teglar qoldirish kerak fgetc(int fi) //Fayldan belgini o'qiydi

Dastlab, Write faylning boshida mavjud ma'lumotlarni, agar mavjud bo'lsa, ustiga yozish orqali sodir bo'ladi. Shuning uchun, agar siz faylning oxiriga biror narsa yozishingiz kerak bo'lsa, mos keladiganini belgilashingiz kerak o'qish rejimi, masalan, a+.

PHP fayllarida kursorni manipulyatsiya qilish

PHP

int fseek(int fi, int ofset [, int qaerdan]) //Kursorni o'rnatish // int fi - faylga ko'rsatgich //offset - ko'chirish uchun belgilar soni. //qaerdan: //SEEK_SET - harakat fayl boshidan boshlanadi; //SEEK_CUR - harakat joriy holatdan boshlanadi; //SEEK_END - harakat fayl oxiridan boshlanadi. fseek($fi, -10, SEEK_END); //Oxirgi 10 ta belgini o'qing $s = fread($fi, 10); $pos = ftell($fi); //Joriy joylashuvni aniqlang orqaga o'tkazish($f)//kursorni tiklash bool feof($f) //fayl oxiri

PHP da fayllar (ma'lumotlar) bilan bevosita ishlash

PHP

massiv fayli(string fayl nomi) // fayl mazmunini massiv koʻrinishida olish // maʼlumotlar bilan toʻgʻridan-toʻgʻri ishlashning yana bir varianti file_get_contents(string filename) // Oʻqish (butun faylni bir qatorga olish) // fayl (dastlab qayta yozilgan) file_put_contents(string fayl nomi, aralash ma'lumotlar[,int bayrog'i]); //FILE_APPEND // Fayl oxirigacha yozing: file_put_contents("test.txt", "data", FILE_APPEND); //Agar siz massiv yozsangiz, $array = array("Men", "jonli"); file_put_contents("test.txt",$massiv); // keyin biz "Ilive" ni olamiz

php da fayllarni boshqarish

PHP

nusxa ko'chirish (satr manbai, satrning maqsadi); // Fayl nomini o'zgartirish (str oldname, str newname); // fayl nomini o'zgartirish (string fayl nomi); // Faylni o'chirish

Fayllarni PHP serveriga yuklash

//PHP.ini sozlamalari file_uploads (yon|off) // faylni yuklash upload_tmp_dirga ruxsat berish yoki taqiqlash // Yuklangan fayllar uchun vaqtinchalik papka. sukut bo'yicha vaqtinchalik papka upload_max_filesize (standart = 2 Mb) // maks. yuklash fayl hajmi post_max_size // yuborilgan shaklning umumiy hajmi (load_max_filesize dan kattaroq boʻlishi kerak) // oddiy yuklash

HTML

Serverda fayllar bilan ishlash

PHP

//Ma'lumotlarni qabul qilish $tmp = $_FILES["userfile"]["tmp_name"]; $name = $_FILES["userfile"]["name"]; //Faylni ko'chiring move_uploaded_file($tmp, nomi); move_uploaded_file($tmp, "yuklash/".name); // faylni yuklash papkasiga yo'naltirish // joriy faylga nisbatan // $_FILES massivida nima bor $_FILES["userfile"]["name"] // fayl nomi, masalan, test.html $_FILES[ "userfile"][" tmp_name"] // vaqtinchalik fayl nomi (yo'l) $_FILES["userfile"]["size"] // fayl hajmi $_FILES["userfile"]["type"] // fayl turi $ _FILES["userfile"] ["xato"] // 0 - xatolik yo'q, raqam - ha

 


O'qing:



Mantiq algebra funksiyalarining superpozitsiyasi Monotonik mantiqiy funksiyalar

Mantiq algebra funksiyalarining superpozitsiyasi Monotonik mantiqiy funksiyalar

A va B to'plamlar orasidagi G moslik kichik to'plam deyiladi. Agar bo'lsa, b a ga mos keladi, deyiladi. Ko'p tegishli barcha ...

Axborot tizimi nima?

Axborot tizimi nima?

Davlat portallari, ESIA veb-saytlari. Yagona identifikatsiya va autentifikatsiya tizimi - esia.gosuslugi.ru EPGU. Yagona davlat xizmatlari portali...

Mantiqiy ifodadan mantiqiy sxemaga o'tish va aksincha

Mantiqiy ifodadan mantiqiy sxemaga o'tish va aksincha

Laboratoriya ishi No 4. Mantiqiy elementlarning sxema bo'yicha amalga oshirilishi. Mantiqiy sxemalarni qurish. Nazariy qism. Qayta ishlash asosida...

Nijniy Novgorod rus pochtasining sharmandaligi

Nijniy Novgorod rus pochtasining sharmandaligi

Qiymati 890 million rubl boʻlgan yangi EAS OPS operatsion tizimi joriy etilgandan soʻng, mintaqadagi pochta boʻlimlarida mijozlarga xizmat koʻrsatish vaqti...

tasma tasviri RSS