PHP: PHP dosyasını okuyun. PHP'de dosyalarla çalışma: okuma, yazma önerileri. Php'de dosyalarla çalışma: yazma, yazma, okuma Php nasıl taşınır

Golovna / 2 Harika Okuyucu

güncellemeyi durdur: 1.11.2015

Daha fazla mov programlama gibi, PHP de bilgi kaydetme yollarından biri gibi dosyalarla çalışmayı destekler.

Dosyaları okuma ve yazma

Dosyaları açma ve kapatma

Dosyaları açmak için PHP, fopen() işlevine sahiptir. Bunun gibi bir şey yapabilirsiniz: resource fopen(string $dosyaadı, string $mode). İlk parametre $filename dosyanın yoludur, diğeri ise görüntüleme modudur. Dosya tipinin değerini belirtmek gerekir.Bu parametre aşağıdaki değerleri alabilir:

    "r": dosya artık okumak için görüntülenmiyor. Dosya mevcut değilse, yanlış çevirin

    "r+" : dosya artık okuma-yazma değildir. Dosya mevcut değilse, yanlış çevirin

    "w": dosya yazmak için görüntülenir. Böyle bir dosya zaten varsa, üzerine yazılacak, yoksa oluşturulacaktır.

    "w+": Dosya okuma imkanı ile yazıya açılır. Böyle bir dosya zaten varsa, üzerine yazılacak, yoksa oluşturulacaktır.

    "a": dosya yazmak için görüntülenir. Böyle bir dosya zaten varsa, veriler dosyanın sonuna yazılır ve eski veriler silinir. Dosya mevcut değilse, oluşturulacaktır.

    "a+" : dosya okuma ve yazma için açılıyor. Dosya zaten kullanılıyorsa, veriler dosyanın sonuna eklenecektir. Dosya bulunamazsa, oluşturulacaktır.

fopen işlevinin sonucu bir dosya tanıtıcısıdır. Bu tanımlayıcı dosya işlemleri ve kapatma için yazılmıştır.

İş bittikten sonra, dosya tanımlayıcısını parametre olarak alan ek fclose() işlevi kullanılarak dosya kapatılmalıdır. Örneğin, dosyayı kapatmak istiyorsanız:

$fd = fopen("form.php", "r") or die("dosya açılamadı"); fclose($fd);

veya die("pardon metni") yapısı, fopen işlevi dosyayı açamadığı için komut dosyası robotuna af hakkında bir hatırlatma gönderilmesine izin verir.

Dosya okuma

Dosyayı okumak için bir dizi işlevi hızlandırabilirsiniz. Satır okuma için, bir dosya tanıtıcısı aldığı ve bir satır satırını döndürdüğü için fgets() işlevi kullanılır. Tüm dosyayı sırayla inceleyelim:

Bir cilt fitili ile fgets() PHP, göstergeyi işlenen satırın sonuna yerleştirir. Dosyayı tamamlamak için feof() işlevi kontrol edilir, dosya tamamlandıktan sonra doğru olur. Dosyanın sonuna ulaşılana kadar fgets() fonksiyonunu durdurabiliriz.

Dosyayı tekrar okumak

Bu durumda dosyayı açmamıza, tanımlayıcıyı kaldırmamıza ve ardından dosyayı kapatmamıza gerek yoktur.

Blok okuma ile engelle

Ek fread() işlevi için dosyadan bayt sayısını okumak için daha ayrıntılı bir okuma yapmak da mümkündür:

fread() işlevi iki parametre alır: okunmakta olan dosyanın tanıtıcısı ve okunacak bayt sayısı. Bir bloğu okurken, dosyanın göstergesi son blokta durur. Ayrıca feof() fonksiyonu yardımıyla tamamlanmış dosyayı kontrol edebilirsiniz.

dosyaya yaz

Bir dosyaya yazmak için fwrite() işlevi yazılır, böylece dosyaya bir satır yazılır:

Benzer şekilde, diğer fputs () işlevi de çalışır:

Dosya göstergesiyle çalışın

"w" modunda okumak veya yazmak için bir dosyayı açtığınızda, dosyadaki klasör koçanın üzerine yerleştirilir. okurken danih PHP dosyanın göstergesini veri bloğunun sonuna taşıyın. Bununla birlikte, dosyayı gösterge ile manuel olarak da kontrol edebilir ve doğru yere kurabiliriz. Kimin için bir işlev seçmeniz gerekiyor? fseek, resmi tanım olabileceği gibi:

int fseek (kaynak $handle , int $offset [, int $ne zaman = SEEK_SET ])

$handle parametresi, dosyanın tanıtıcısını temsil eder. $offset parametresi, okuma/yazma işleminin başlatılacağı dosyanın boyutunun bayt cinsinden boyutudur. Üçüncü bağlayıcı olmayan parametre, ofsetin nasıl ayarlanacağını belirler. Vin üç değer alabilir:

    SEEK_SET : kilit için değer, dosyayı başlatmak için tohumu ofset bayt olarak ayarlayın

    SEEK_CUR : ofseti, dosyanın akış konumunun en üstünde ofset bayt olarak ayarlayın

    SEEK_END : zsv'yi dosyanın sonunda ofset bayt olarak ayarla

Gösterge bir kez uzağa ayarlandığında, fseek() işlevi 0'a döner ve yakın bir ayar için -1'e döner.

Buttstock vikoristannya işlevleri:

$fd = fopen("merhaba.txt", "w+") or die("dosya açılamadı"); $str = "Merhaba dünya!"; // fwrite($fd, $str) satırını yaz; // koçana bir satır yaz fseek($fd, 0); // Dosya göstergesini koçanın üzerine koy fwrite($fd, "Oink"); // koçana bir satır yaz fseek($fd, 0, SEEK_END); // Bitiş göstergesini kaydedin fwrite($fd, $str); // bir satır daha yaz, örneğin fclose($fd);

16.5K

Aslında bir php dosyasını açmak büyük bir sorun değil. Tilkinin ortasındaysanız, bira dansı içmek daha önemlidir. Ale programları çok daha az zatyatі düşünüyorum. Ve yeni başlayanlar için, dosyalarla çalışmak için php'nin tüm olasılıklarından bahsedelim:

php dosyaları

dosya z php uzantıları aynı isimdeki programlamamla yazım kodunu kendimden almak için. Diğer dillere göre php benim sunucu programlamamdır. Sunucu için Tobto vykonuetsya. Bu nedenle, istemci makinedeki kodu özelleştirmek için yerel sunucuyu kurabilirsiniz.

Php dosyalarıyla çalışmak için saldırıya uğradılar özel programlar- Yazılım editörleri. En büyük uzantılar şunlardır:

  • rüya dokumacısı.
  • Düzenlemek.
  • Eclipse PHP Geliştirme
Php tabanlı siteler oluştururken, program kodunun farklı bir versiyonuna ihtiyacınız olabilir. Bu gibi durumlarda diğer dosyada bulunan hazır çözümü manuel olarak ekleyin. include yapısı kimin için kazanılacak. ї Sözdizimi:

dosya adını dahil et

Bağlantı örneği:

Dosya:


Ayrıca ek bir gereklilik yapısına sahip bir dosya da ekleyebilirsiniz. Dahil etme görünümünde, program kodu yazılmadan önce dosyayı içerecektir. Require in code yardımı için o dosyaya yalnızca bir adım gidebilirsiniz. Yeniden başvurduğunuzda, sistem genel af ile ilgili bildirimleri görecek ve programı başlatacaktır.

Tasarım, bir saatten biraz fazla programlama için bir eklenti içerir. php dosyasına çok okuma var. Affın doğrulanması sırasında, önceden verilmesi daha olası olacak ve kod bir sonraki satırdan devam edecek.

Dosyaları açma ve kapatma

Php'de dosyalarla yapılan tüm işlemler aşağıdaki adımlarda belirtilir:

  • Açık dosya;
  • Birlikte düzenleme;
  • Dosyayı kapatın.

Bir dosyayı açmak için fopen() işlevi kullanılır. ї Sözdizimi:

int fopen(dize dosya adı, dize modu [, int use_include_path])

Kabul edilen argümanlar:

  • string filename - yenisine mutlak yolu olan dosyanın adı. Dosyanın yolu belirtilmezse, akış kataloğuna gönderilir. Dosyanın kullanılabilirliği için sistem, af hakkında bildirimler sağlayacaktır. popo:

  • string mode - Dosyanın okunacağı modu belirtin. Argüman tarafından kabul edilen değerler:
  • r - dosya artık okunamıyor, dosya göstergesi koçanın üzerine kurulu;
  • r+ – okuma ve yazma dosyası;
  • w - oluştur yeni dosya Sadece kayıt için. Böyle bir ada sahip bir dosya zaten kullanılıyorsa, yenisi tüm verileri otomatik olarak görecektir;
  • w+ - yazmak ve okumak için yeni bir dosya oluşturun. Böyle bir dosya kullanıldığında, verilerin üzerine yeni bir dosya yazılır;
  • a - yazmak için yazılabilir dosya. Gösterge bir hatırlatıcı olarak yüklenir. Böylece PHP dosyasındaki giriş koçanından değil, baştan silinecek;
  • a+ – okuma modunda dosyaya yaz ve kaydet. rozpochnetsya z kіntsya kaydedin;
  • b - kendi çift verilerinizden intikam almak için bir dosyayla çalışma modu (içinde çift ​​sistem hesaplama). Tsey modu yalnızca şurada kullanılabilir: işletim sistemi Pencereler.

Bir dosyaya erişimi kapatmak için fclose() işlevini kullanın. Sözdizimi:

int fclose (int dosyası) de int dosyası - kapatılması gereken site tanıtıcısı.

Dış görünüm okuma veya yazma işleminden sonra bu işlev için dosyanın kapatılması gerekir. Aksi takdirde, dosya için kreasyonlar, kritik bir akışla kalacaksınız. Ve sunucu suşlarının dünya üstü vitratilerine dikkat edin.

popo:

Dosyaları okuma ve yazma

İçin basit ifade Tüm dosya ideal olarak readfile() işlevi için uygundur. ї Sözdizimi:

readfile (dize dosya adı), de dize dosya adı - dize dosya adı (tanımlayıcı değil).


Aynı dosya fpassthru() fonksiyonu yardımıyla da okunabilir. Göstergenin son konumundan dosyanın sonuna kadar verileri okuyacaksınız. ї Sözdizimi:

int fpassthru (int dosyası)

İşlevle çalışmak için dosyayı açıp kapatmak gerekir. popo:

Sonuç ön tarafa benzer.

Php'deki dosyalarla çalışma işlevleri, birden çok satırda ve karakter karakter okumanıza izin verir:

  • string fgets (int dosyası, int uzunluğu)- İşlev, uzun bir satırı okur. popo:

  • string fread (int dosyası, int uzunluğu)- Fonksiyona göre ön cephe ile aynıdır.

Metinsel veri yazmak için dosyanın iki özdeş işlevi vardır:

  • int fputs (int dosyası, dize dizesi [, int uzunluk ])
  • int fwrite (int dosyası, dize dizesi [, int uzunluk ])

İşlevler, int dosyasına, bir int uzunluğuna kadar belirtilen bir dize dizesi satırını yazar ( neob'dil argümanı). popo:

Dosyaların oluşturulması ve kaldırılması

Bir php dosyası oluşturmak için fopen() işlevini "w" veya "w+" erişim moduyla çevirebilirsiniz. Veya touch() işlevi. Dosyayı değiştirmek için saati kuracak. Elementin varlığı için shukanim im'yam yogo yaratılacaktır. ї Sözdizimi.

fopen, fclose, feof, fgets, fgetss ve fscanf işlevlerinin seçimi hakkında

Tüm olasılıkları geçersiz kılalım

En başarılı robotlardan biri modern dil PHP gibi programlama, mevcut olasılıkların sayısıdır. PHP, özellikle dosya işleme söz konusu olduğunda, Perl'in filminin "Her şeyi nasıl büyüteceğimi biliyorum" sloganını takip etmek kolaydır. Ale, bol miktarda uygun fiyatlı kedi, vinikaє beslenmesi, yak їх vikonannya roboti için daha iyi. Açıkçası, gerçekten, dosyayı işleme koyma şeklinize bağlı olarak zincire uzanmak gerekiyor, bu yüzden lekeli saati hareket ettirmenin tüm olasılıklarını öğrendiniz.

Geleneksel fopen yöntemleri

fopen yöntemi belki de geçmiş saatlerin C ve C++ programcılarını, daha büyük ve daha küçük dünyanın parçalarını ve aynı araçları bilen diğer insanlar için daha iyidir, sanki eski kaderleri uzatıyormuş gibi, her zaman elinizin altındaydınız, Bu programlarla pratik yaptığınız gibi. Bu yöntemlerden herhangi biri için, Liste 1'de gösterildiği gibi, bir dosyayı açmak için fopen, verileri okumak için bir işlev ve ardından bir dosyayı kapatmak için fclose çağırmanın standart prosedürünü geçersiz kılarsınız.

Liste 1. fget'lerle ilgili yardım için dosyayı okuma
$file_handle = fopen("dosyam", "r"); while (!feof($file_handle)) ( $satır = fgets($file_handle); echo $satır; ) fclose($file_handle);

Bu işlevler hakkında daha fazla bilgi edinmek istiyorsanız, çalışmalarını analiz etmeme izin verin. Aşağıdaki kısayolları gerçekten kazanırsınız:

  1. Dosyayı aç. $file_handle Bir mesajı bir dosyaya kaydeder.
  2. Dosyanın sonuna ulaşmadığınızı doğrulayın.
  3. Okuduğunuz dış görünüm satırının sonuna ulaşana kadar dosyayı okumaya devam edin.
  4. Dosyayı kapatın.

Bunu akılda tutarak, dosyalarla çalışmak için cilt hackleme işlevine bir göz atacağım.

fopen işlevi

fopen işlevi, bir dosyadan bir bağlantıyı geri yükler. "Bağlantı ekle" diyorum, parçalar, açık dosyayı kıvır, fopen url'yi açabilir:

$fh = fopen("http://127.0.0.1/", "r");

Bu program serisi, tahmin edilen tarafla bir bağlantı oluşturur ve yerel bir dosya gibi okumaya başlamanıza olanak tanır.

Not: fopen'ın kullandığı "r" parametresi dosyanın salt okunur olduğunu gösterir. Dosyadaki Oskіlki kayıtları, bu makalede ele alınan güç sayımından önce girmiyor, parametrenin tüm olası değerlerini geçersiz kılmıyorum. Tim'in umurunda değil, platformlar arası özet için dvd dosyalarından okuyabilmeniz için "r"yi "rb" olarak değiştirmeniz gerekiyor. Aşağıda bu tip popo var.

feof işlevi

Feof komutu, dosyanın sonuna kadar okuma ile True veya False arasında geçiş yapar. Fareyle üzerine gelme döngüsü devam eder, rıhtımlar "dosyam" dosyasının sonuna ulaşmayacaktır. URL'yi okuduğunuz ve bağlantının bağlantı zamanına taşındığı için feof'un da False'a dönüştüğüne lütfen dikkat edin, okunacak daha fazla veri yok.

fclose işlevi

Liste 1'in ortasını atlayın ve sonuna gidin; fclose, dosyaya veya URL'ye olan bağlantıyı kapatır. Bu fonksiyondan sonra artık bir dosyadan veya soketten okuyamazsınız.

fgets işlevi

Liste 1'de bir satır sırasını açarak, dosya işleme sürecinin merkezine gideceksiniz: dosyayı aracı olmadan okuyun. fgets işlevi - ilk popo için "kontrol et" seçeneğini seçin. O dosyadan bir satır veriyi zahoplyuє ve bir satır gibi çevirin. Zvіdti vy, dani veya obrabljat їхінший rütbesini vyvodite edebilir. Liste 1'de belirtilen uygulama, dosyanın tamamına sahiptir.

Bazı uygulamalarla bir veri satırının boyutunu kaydetmek istiyorsanız, tıkanacak maksimum veri satırı miktarını kaydetmek için fgets öğesine bir argüman ekleyebilirsiniz. Örneğin, 80 karakterlik bir satır oluşturmak için aşağıdaki program kodunu alıntılayın:

$dize = fgets($dosya_tanıtıcısı, 81);

C satırının sonunun göstergesi olan "\0" tahmin edin ve değeri bir karakter daha, gerçekten ihtiyacınız olan daha düşük olarak ayarlayın. Bir bachit gibi, sivri uçta 81 kazanırsınız, tıpkı 80 sembole ihtiyacınız olduğu gibi. Bu işlev için satırın sınırını ayarlamanız gerekiyorsa, başlangıca ek sembolü eklemek için bir yıldız ekleyin.

fonksiyon hatası

fgets işlevi, bir dosyayı okumak için kullanılan birçok işlevden yalnızca biridir. Bu, çoğu zaman en başarılı olan işlevlerden biridir, çoğu durumda dosyanın satır işlemesinin parçaları en makul görünmektedir. Gerçekten, diğer işlevlerin serpiştirilmesi mümkündür. Nasıl orada olmaz, satır analizi - ihtiyacınız olanlara başlamayın.

Ve burada fread'e dönüyoruz. fread işlevi başka amaçlar için de çalışır, ancak fgets: iki dosyayı okumak için kullanılır (metinle yığılmayan ve insanlar için okunması kolay dosyalar için). "Satırı" anlama parçaları çift dosyalar için geçerli değildir (bunların mantıksal yapıları satırlara benzemez), okunması gerektiği için bayt sayısını belirtmekten siz sorumlusunuz.

$fh = fopen("dosyam", "rb"); $veri = fread($dosya_handle, 4096);

Üzerine gelinen stok, 4096 bayt (4 KB) veri okur. Lütfen girdiğiniz değerden bağımsız olarak fread'in 8192 bayttan (8 KB) fazla okumadığına dikkat edin.

Dosyanın 8 KB'den büyük olduğunu varsayarsak, programın aşağıda gezinen parçası, tüm dosyayı bir satırda okumaktan sorumludur.

$fh = fopen("dosyam", "rb"); $veri = fread($fh, dosya boyutu("dosyam")); fclose($fh);

Dosyayı daha büyük bir boyuta genişletirseniz, dışarıda kalan kısmı okumak için döngüyü yeniden yazmanız gerekecektir.

fscanf işlevi

Satır işlemeye dönersek, fscanf'ın geleneksel C dosya kitaplığı işlevinin ardılı olması önemlidir.Bunu bilmiyorsanız, fscanf dosyadan değiştirilen veri alanlarını okur.

liste ($alan1, $alan2, $alan3) = fscanf($fh, "%s%s%s");

PHP.net gibi zengin dzherel'lerde açıklanan bu işlevin satırlarını biçimlendirme, yazma, bu yüzden bu bilgiyi burada tekrar etmiyorum. Satırın biçimlendirmesinin daha da hantal olduğunu söylemek için dosit. Ayrıca, işlev tarafından döndürülen değişikliğe hangi alanların yerleştirildiğini de tahmin etmeniz gerekir. (Film C, kokuları argüman olarak geçti.)

fgets işlevi

fgetss işlevi, geleneksel dosya işleme işlevlerinden esinlenmiştir ve size PHP'nin yetenekleri hakkında daha iyi bir fikir verir. Vaughn pratsyuє srazok fgets üzerinde, ale v_dkidaє be-yak_ onun tarafından tezahür etti HTML etiketleri abo PHP, zalishayuchi lisha "çıplak" metin. Aşağıdaki HTML dosyasına bir göz atın.

Liste 2. Örnek HTML dosyası
benim başlığım

Band America'ya katılmaya teşvik edilirseniz, "bunun doğru olmadığına" ikna olmadıysanız, kendinizi kaptırmamak için tek şey bu değildir.

Yogayı fgetss fonksiyonundan geçirelim.

Liste 3. fgetss wiki
$file_handle = fopen("dosyam", "r"); while (!feof($file_handle)) ( echo = fgetss($file_handle); ) fclose($file_handle);

Çıktı verisi olarak ne aldığınızı eksen:

Benim başlığım ne olduğunu anlıyorsan

fpassthru işlevi

Bir dosyadan veriyi nasıl okuduğunuza bakılmaksızın, ek fpassthru işlevini kullanarak bilgileri görüntülemek için standart kanalı kullanarak verileri başka bir dosyaya girebilirsiniz.

fpassthru($fh);

Bu işlev, başkaları için verileri görüntülemek içindir, böylece onları değişiklikle birlikte yerleştirmeniz gerekmez.

Bir dosyanın doğrusal olmayan işlenmesi: bir dosya tarafından yer değiştirme

Açıkçası, yukarıda açıklanan işlevler dosyayı daha sıralı okumanıza izin verir. Daha fazla katlama dosyası, koçanın üzerinde veya sonunda dosyanın farklı bölümlerine taşınabilir. Bunun için fseek işlevine ihtiyacınız var.

fseek($fh, 0);

Poponun işaret edildiği noktada koçan dosyasına geri dönmek gerekir. Dosyanın en üstüne gitmek istemiyorsanız - örneğin bir kilobayt yeterlidir - şunu yazmanız yeterlidir:

fseek($fh, 1024);

PHP V4.0 ile başlayarak, birkaç başka seçenek de mevcuttur. Örneğin, akış konumunuzdan 100 bayt ileri atlamak istiyorsanız, sonraki kodu çıkarabilirsiniz:

fseek($fh, 100, SEEK_CUR);

Benzer şekilde, yardım için 100 bayt geri gitmek gerekir:

fseek($fh, -100, SEEK_CUR);

Dosyanın bitiminden 100 bayt önceki konuma geri dönmek istiyorsanız, SEEK_END yazın.

fseek($fh, -100, SEEK_END);

Yeni konuma ulaştığınızda, verileri okumak için fgets , fscanf veya başka bir işlevi kullanabilirsiniz.

Not: Bir URL istemek için dosya tanımlayıcıları arayamazsınız.

Tüm dosya

Şimdi deac'lere bakmaya devam edelim benzersiz fırsatlar Dosya ayrıştırma için PHP: bir veya iki satırdaki büyük veri bloklarını ayrıştırma. Örneğin, bir dosyayı nasıl alıp hepsini Web sitenize koyabilirsiniz? Pekala, fgets döngüsünün sonunu denediniz. Ale, bunu mümkün olduğunca basit hale nasıl getirebilirim? Tüm dosyayı arka arkaya koyduğu için fgetcontents kullanılırken süreç gülünç derecede basit olabilir.

$my_file = file_get_contents("dosyaadım"); echo $benim_dosyam;

En iyi seçenek değilse, bu komutu daha da kısa yazabilirsiniz:

echo file_get_contents("dosyaadim");

Bu makale öncelikle yerel dosyaların analizine ayrılmıştır, ancak ek işlev açıklamaları için diğer Web sitelerini de isteyebileceğinizi, hayal edebileceğinizi ve analiz edebileceğinizi unutmayın.

echo file_get_contents("http://127.0.0.1/");

Bu komut aslında şununla aynıdır:

$fh = fopen("http://127.0.0.1/", "r"); fpassthru($fh);

Mabut, uyguladığın şeye hayret ediyorsun ve "Hala zahmetli bir yol" diye düşünüyorsun. PHP perakendecileri sizin için mutlu olacak. Böylece komutu hızlı bir şekilde şu şekilde çalıştırabilirsiniz:

readfile("http://127.0.0.1/");

Readfile işlevi, tanıtım için tüm dosyayı veya Web tarafı görünüm arabelleğini gönderir. Zamovchuvannyam tsya ekibinin bir saatlik bela için bir af hakkında bir hatırlatma göstermesi için. Bu davranıştan kurtulmak için (ne istersen), şunu dene:

@readfile("http://127.0.0.1/");

Açıkçası, çok sayıda dosyayı işlemeniz gerekiyorsa, file_get_contents'in döndüğü bir satır - belki de çok fazla. Belki koçanın üzerindeki її'yi split() yardımıyla parçalara ayırmak istersiniz.

$dizi = split("\n", file_get_contents("dosyam"));

Ama neden bu kıvrımlara ihtiyacınız var, işlevi nedir, nasıl mükemmel uyum sağlar, işi sizin için nasıl yaparsınız? PHP işlevi file() görevi tek seferde bitirir: öğeleri dosyanın satırları olan satır dizisini döndürür.

$dizi = dosya("dosyam");

İki nişan izmaritleri arasında çok az şey olduğuna dikkat edilmelidir. Split komutu, dosya satırı dizisine verilen komutların yeni bir satıra geçişin işaretleri ile bitmesi gibi (aynı fget'lerle aynı) yeni bir satıra geçişin işaretlerini görür.

PHP'nin olanakları, prote, yukarıda açıklananların çok ötesindedir. PHP stili .ini dosyalarının tamamını tek bir parse_ini_file komutuyla ayrıştırabilirsiniz. parse_ini_file komutu, Liste 4'tekine benzer dosyalarda duracaktır.

Liste 4. Örnek .ini dosyası
; Yorum adı = "Kral Arthur" görevi = Meyan Kâsesi için favori renk = Mavi Samuel Clemens = Mark Twain Caryn Johnson = Whoopi Goldberg

Sonraki komutlar, dosyayı görünür bir dizide sunmak ve ardından bu diziyi başka bir dizide görüntülemektir:

$file_array = parse_ini_file("holy_grail.ini"); print_r $dosya_dizisi;

Sonuç olarak, aşağıdaki çıktı verileri kaldırılacaktır:

Liste 5. Harici veriler
Dizi ( => Kral Arthur => Kutsal Kase'yi aramak için => Mavi => Mark Twain => Whoopi Goldberg)

Tabii ki, ekibin bölümü paylaştığını hatırlayabilirsiniz. Ancak terfi amacıyla, Boole türünden başka bir parse_ini_file argümanı: process_sections kullanarak gerekli ince ayarları kolayca yapabilirsiniz. process_sections öğesini True olarak ayarlayın.

$file_array = parse_ini_file("holy_grail.ini", true); print_r $dosya_dizisi;

І sizin vihіdnі danі matimut vglyad:

Liste 6. Harici veriler
Dizi ( => Dizi ( => Kral Arthur => Kutsal Kase'yi aramak için => Mavi) => Dizi ( => Mark Twain => Whoopi Goldberg))

PHP, verileri analiz için ayrılması kolay zengin bir diziye yerleştirir.

Ancak bu, PHP'de dosya işleme hakkında konuştuğumuz için buzdağının sadece görünen kısmı. tidy_parse_file ve xml_parse gibi daha fazla ortak çalışma işlevi, HTML ve XML belgelerini düzgün bir şekilde ayrıştırmanıza yardımcı olabilir. Dağıtıma geri dönün, böylece bu işlevlerin çalışmasına ilişkin raporu gözden geçirebilirsiniz. Saygınızın kokusundan rahatsız olmanın yanı sıra, belirtilen türlerdeki dosyalarla pratik yapmak ve olası tüm dosya türlerine bakmak yerine, bu makaledeki farkı saygıyla anlayabilirsiniz, de є kіlka ile hain çalışma kuralları şu an için tarif ettiğim işlevler.

iyi programlama stili

Programınızdaki her şeyin amaçlandığı gibi çalıştığını boşverin. Örneğin: ne, dosya nedir, neden bahsediyorsunuz, taşındı mı? Erişim haklarının değişmesi sonucunda dosyayı okuyamazsanız ne olur? Daha sonra file_exists ve is_readable yöntemlerini kullanarak dosyanın okuma iznini değiştirebilirsiniz.

Liste 7. File_exists ve is_readable
$dosyaadı = "dosyam"; if (file_exists($filename) && is_readable ($filename)) ( $fh = fopen($filename, "r"); # Processing fclose($fh); )

Tim daha az değil, pratikte, programın bu parçası, belki de göreviniz için en üstte olacak. fopen tarafından döndürülen değerlerin dönüştürülmesi daha basit ve daha hassastır.

if ($fh = fopen($dosyaadı, "r")) ( # İşleme fclose($fh); )

fopen bayrakları, yanlışlıkla yapılan hata sırasında False değerini döndürür; bu, dosyanın yalnızca bu durumda dosya açılırken işlenmesini garanti eder. Açıkçası, dosya okunamıyor veya okunamıyorsa, değerin ne olduğunu, ne kadar negatif olduğunu göreceksiniz. Ayrıca, böyle bir yankı bir macundur, yak içinde, olası tüm olası arızalar tüketilir. Alternatif olarak, tamamlanan robotik programı kazanmak veya dosyayı açmamak için bir af bildirimi görmek mümkündür.

fopen gibi, file_get_contents, file ve readfile işlevleri False'a döner, böylece dosyayı açamazsınız, ancak dosyayı işleyebilirsiniz. fgets, fgetss, fread, fscanf ve fclose işlevleri de bir af durumunda False'a dönüşür. Zvichayno, bir göz kırpmak için, siz, ymovіrno, rotasyonlarının sonuçlarını zaten tamamladınız. fclose ne yapmaya değer, onu açmak yeterli değil, dosya tanıtıcı düzgün kapatılmamışsa, kural olarak fclose işlevinin döndürülen değerinin tekrar kontrol edilmesi bir sorundur.

senin için seç

PHP aşina değil etkili yollar dosyaları okuma ve analiz etme. fread gibi klasik işlevler size bir saatten fazla hizmet edebilir veya bir görevi yürütmek için gerekli olan readfile basitliğinden daha fazlasını elde edebilirsiniz. Vikonati'yi aradığınız gerçeği göz önüne alındığında, seçim doğru.

Büyük veri taahhütleri üzerinde çalışırken fscanf daha verimli ve daha verimli görünüyor, diyelim ki split ve sprintf komutlarıyla bir sonraki adımda dosya için daha az yaygın. Ayrıca, örneğin file , file_get_contents veya readfile işlevlerinin değiştirilmesi, belki daha fazla dotsilnym gibi küçük değişikliklerle büyük sözün metnini görüntüleyebilirsiniz. Bu nedenle, önbelleğe alma için PHP kullanıyorsanız, haklı olacağınızı veya bir proxy zaman sunucusu oluşturmanız gerekeceğini varsaymak güvenlidir.

PHP, dosyalarla çalışmak için birçok araca sahiptir. Onları dış görünüşüyle ​​​​daha yakından tanıyın ve üzerinde çalıştığınız proje için en uygun kişi olup olmadığınızı öğrenin. sana Geniş seçim program katkıları, mümkün olduğunca verimli hale getirin ve dosyalarınızı PHP teknikleriyle işlemenin memnuniyetini elde edin.

Önemli ölçüde daha sonra ortaya çıkan PHP, düşük hareket ve programlama konumlarını değiştirdi, formüle etti bariz tezahürler programın sözdizimi, mantığı, değişiklikleri ve diğer nesneleri hakkında. Dosyalar ve onlarla çalışmanın işlevleri ilerlemeyi yavaşlatmadı ve doğal nedenlerden kaynaklanan dosya kodlama sorunu kökten yeni çözümlere yol açmadı.

Zagalni saygı

Robotun asıl işi dosyalarla yani kokuşmasınlar, vodcrit kullansınlar, oku/yazsınlar ve kapatsınlar. Bir saatlik işlem için dosyaya erişimi engelleme/engellemeyi kaldırma işlevini devre dışı bırakabilirsiniz, dosyanın okuma/yazma konumunu ayarlayabilirsiniz - her şey, geçmişte olduğu gibi.

PHP'de önemli bir nokta, dosyalarla çalışmak için çok fazla işlev ve bunları kullanmak için seçenekler olmasıdır. Muzaffer, ateşli seçenekleri bitirmek gerçekten çok kolay. Dosya - tse, her şey için persh, program belleği. Ondan bilgi alabilirsiniz. Meta benzeri programlar, tanınan bir site gibi - bilgileri temsil eder, işler ve korur.

Іtotna mobilya

Daha önce, en azından aşağıdan yukarıya doğru, kırılmaz bir bilinç gücü vardı. Böylece program filmin bir versiyonuna yazıldığında, programlama ideal olarak bir sonraki versiyonda derlenir / yorumlanır. AT mevcut programlamaöyle değil. Filmin sözdizimsel yapılarının sözdizimsel yapılarının çoğu tarihe geçti ve stiller, programlama yöntemleri ve sessiz ve diğer enstrümanların versiyonları arasındaki mücadele hayatlarının normu haline geldi.

Veri tabanları, önemli döşeme, önemli web sitesi arayüzü gibi dosyalarla çalışma. Öncelikle filmin platformu, hostingi, versiyonu değiştirilirken site kodunun değiştirilmesine gerek kalmayacak şekilde duyurulmuştu. Robotun dosyalarla arayüzü, okremy betiğinin suçluluğundan ve sitenin bütünlüğünü sağlamaktan sorumludur, bu nedenle sitenin tasarımı, herhangi bir eklentiye, tarayıcıya ve tarayıcıya yeterince uyum sağlamaktan sorumludur. siteye daha fazla işlevsellik kazandırmak için.

Okuyun ve kendinizi değiştirin

Program kendini nasıl değiştirebilir, peki script nasıl yükseltilebilir? Bu güne kadar chikavit bagatioh gıda zinciri. Ale, bir görev gibi görünmesi daha pratik: PHP Okuma PHP dosyası. Satıcıyı başlatmayın, belirli bir kod yazarak bu chi'leri kontrol edebilirsiniz. Bazen, ziyaretçinin web sitesi yemek dağıtımı aşamasında formülü formüle etmemişse, yogayı değiştirmek gerekir.

Diğer şekillerde olduğu gibi, öncelikle tüm dosyanın açılması gerekiyor. Bu dosyayı kullanıp kullanmamanız önemli değil. Dosyanın var olduğunu varsayarsak (file_exists() işlevi olumlu bir sonuç verir), fopen() işlevi 'r', 'r+', 'a', 'a+' erişimleriyle kazanır. Dosyanın henüz 'a', 'a+', 'w', 'w+' erişimi yok. Dosyaya yazmanın sonucu bir dosya tanımlayıcı olacaktır. Dosya fclose() işlevi tarafından kapatılır.

Okuma sırasında düzenlemeye gerek yoksa, dosyayı bir diziye okumak için PHP'yi manuel olarak değiştirin.

if (file_exists($fName)) (

$aLines = dosya($fName)

Böyle bir varyantta, dosyanın dış görünüm satırı sırayla dizi öğesine alınır. file() veya file_get_contents() işlevlerinin dosyanın kapatılmasını gerektirmediğini belirtin.

Girdi dosyası çok büyükse, ancak biraz bilgi sahibi olmanız gerekiyorsa, aksi takdirde dosyayı arka arkaya okumak için PHP kullanabilirsiniz. PHP, fgets() ve fgetc() işlevleriyle çalışabilmelidir.

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

while ((yanlış !== ($cLine = fgets($fvs, 2000)))) (

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

Seçeneklerden rahatsız, bilmeden pratik yapıyorlar. Ancak, PHP daha fazla değişiklik için PHP dosyasını okurken, bir sonraki adım diğer girdilere erişmektir. Geliştirme aşamasında, yoga seçiminin varyantının sitesine transfer etmekten çekinmeyin. Çoğu zaman, komut dosyalarının değiştirilmesi site işlevlerinin sınırları içinde gerçekleştirilir ve değişiklik, kaynağın yöneticisi de dahil olmak üzere yönetici tarafından kullanılamaz.

Sonuçları kaydetme

Bu güncellenen bilgi, arka arkaya fputs() işlevi veya yeniden file_put_contents() işlevi tarafından dosyaya yazılır.

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

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

sürü($fvs, LOCK_EX)

$cLine = "1 satır". chr(10)

fputs($fvs, $cline)

$cLine = "2 satır" . chr(10)

fputs($fvs, $cline)

sürü($fvs, LOCK_UN)

Kaydın string versiyonunda, kayıt işlemi sırasında, kaydedilen farklı bir satırdaki verileri değiştirebilir veya dizi yeniden dosyaya yerleştirilebilir.

$dosya = "scData.php"

$cContents = file_get_contents($dosya)

// giriş ekle

$cContents .= "yeni giriş\n"

// dosyayı geri yaz

file_put_contents($dosya, $cContents)

PHP'de dosya okuma ve yazma, basitçe doğal olarak yazılır. Ancak annelerin ayrılması önemlidir: Deri törpü isme, genişlemeye ve yola (klasöre) göre giyilmelidir. Bir PHP betiğinin dosyaları okuyabilmesi ve yazabilmesi için bu betiğin izne sahip olması gerekir. Koku, barındırmaya otomatik olarak eklenir, ancak bazı durumlarda onu genişletmeniz gerekir.

Bazı durumlarda, test okumasını tamamladıktan sonra sonuçları gözden geçirmek gerekir. Dosyaları PHP'de kaydetmek, genişleme aşamasında önemlidir, ancak bazı durumlarda sitenin güvenliği veya güvenilirliği temelinde.

Rice PHP, MySQl, JavaScript ve özellikle tarayıcılar tipiktir: sessizce bazı afların kendi kendine yakıt almasına izin verin. “Tanımadım, olmadı ...” - gerekli değil garna alıştırmasıöncü Bilişim Teknolojileri Ale tse vchit rozrobnikiv merhamet göstermez ve temiz, yakіsny kodu yazar, bu da kötüdür.

Gerçek belgelere sahip robot PHP

PHP bir PHP dosyasını okumak delicesine pratik bir ilgi alanı haline geliyor, aynı zamanda programlamanın kapsamı. Koristuvacha ve vіdvіduvacha siteleri, tsіkavitіnformatsіya uygulanan karakter, vik vik bachiti vіglyadі vіdvіduvacha vіdvіduvacha vіdvіduvacha vіdvіduvacha *.xlsx ve *. docx dosyaları. Tüm dosyalar MS Excel ve MS Word formatlarındadır.

Ürün listeleri, fiyatlar, özellikler genellikle görsel bir tabloda biçimlendirilir, bu nedenle PHP okuma excel dosyası daha önemli olabilir.

Bu tür dosyalarla çalışmak için PHPExcel ve PHPWord kitaplıkları genişletildi. Ancak, OOXML standardındaki *.xlsx ve *.docx temsil dosyaları yerine, zip arşivinde gerçek erişilebilir bir temsil belgesi. Zip arşivleri- resimler, nesneler, formüller, diğer programların ekleri dahil tüm anonim dosyalar. Metin dosyaları görsel etiketlerdeki açıklamalarla temsil edilir. Böyle bir dosyayı okumak yeterli değildir, seçim ve değişiklik için o yapıyı dikkate almak için onu sıralamak gerekir.

Tse, okuma işleminin arşivi açma prosedürüne dönüştürüldüğü anlamına gelir. Kütüphaneler, belge arşivlerini bağımsız olarak açmak ve perakendeciye bu tür belgeleri okumak, işlemek ve kaydetmek için büyük işlevler vermek üzere görevlendirilmiştir.

Excel tabloları

include_once 'PhpOffice/PhpExcel/IOFactory.php'

function scGetExcelFile($xls)(

$objPHPExcel = PHPExcel_IOFactory::load($xls)

$objPHPExcel->setActiveSheetIndex(0)

// satır dizilerini süpürmek için tsey dizisi

$aSheet = $objPHPExcel->getActiveSheet()

$dizi = dizi()

// işleme

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

$cellIterator = $row->getCellIterator()

foreach($cellIterator as $cell)(

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

array_push($dizi, $öğe)

Excel dosyalarının işlenmesinin, işlenmesinden önemli ölçüde daha fazla katlanmış olduğunu okumak Word belgeleri. Daha kısa versiyon Uygulamalı bilgileri okumak ve işlemek için ciddi bir proje uygulamak gerekir, - başlangıçta PHPWord kitaplığına hakim olmak. İsveçlinin beslenmenin özelliklerine erişimi olduğuna dair iyi bir onay vermek gerekir.

Word Belgeleri

Usyogo iki satır:

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

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

$cFileName belgesi artık işlenmeye hazır. Ardından, arşivleri açın, sitede gördüğünüz gibi aynı şekilde seçin ve analiz edin, değiştirin ve geri yazın.

$zipClass = yeni ZipArchive()

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

// tüm belgeyi oku

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

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

$cNameInExt = substr($cNameIn, -4)

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

// ".xml" ve ".xml.rels" uzantılı dosyalar belge tablolarına kaydedilir

// skin xml-satırı ile yazılır benzersiz numara sırayla

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

$cBodyInLen = strlen($cBodyIn)

// Diğer dosyalar bir bakışta belge klasörüne yazılır, örneğin

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

$zipClass->getFromName($cNameIn, $cWorkPath); // Vmіst y vglyadі dosyası

olasılık, yak PHP'ye yardım et Excel ve PHP Word, gerçek belgeleri manipüle etmenize izin verir, o anda ilgili oldukları anda çalışırlar. Günümüzün dinamik dünyasında daha önemli hale geliyoruz. Ağırlık merkezi, yerel bilgisayar teknolojisinden sanal İnternet alanına geçeli çok oldu. Bu nedenle, yerel Microsoft ürünlerinde tablo ve belgelerin oluşturulması daha az verimlidir, sitede yalnızca tabloların veya belgelerin yaratıcısı için değil, aynı zamanda yardımcılar için de erişilebilen otomatik ve otomatik modda bu tür belgelerle daha az çalışır.

Metin dosyaları, aksi takdirde

İlki basit metin dosyalarına, daha düşük PHP dosyalarına veya uygulama belgelerine sahiptir. Ancak, burada düşünülmesi gereken bir şey var. Bu tür dosyaları okuma/yazma işlemleri zaten daha fazla biliniyor, ancak daha da önemlisi, bu tür dosyaların değeri daha büyük olabilir.

Bir istemci ve bir sunucu olarak (birinci bölmede JavaScript, diğer bölmede PHP), o zaman çerezler ve oturum mekanizmaları komut dosyaları, taraflar, bunlar ve diğer işlemler arasında gerekli bilgi aktarımı ile baş edemez.

beni yenebilir misin değişim gerekli veri tabanında, ancak tüm değişiklikler ve hızlar için, küçük zaman ve yazı dosyaları zengin bir aktarım seçeneği ile zenginleştirilebilir. Kişisel olmayan diğer dosyalar oluşturmaz ve bunların genişlemesini kontrol etmezseniz, koku, veri tabanının belirli ve daha esnek bir versiyonu olabilir.

PHP bir metin dosyasını okumak hızlıdır, bir yapıya, bir diziye veya bir nesneye ayrıştırılabilir. Bir saat boyunca yaşayan nesneler oluşturmanıza izin veren, PHP betiğine girilen, göründüğü gibi yalnızca sunucuda ve yalnızca yan yakalama sırasında AJAX oluşumu sırasında kullanılabilen nesneler oluşturmanıza izin veren önemli kalır. yapılabilir veya başka nedenlerle, Başlat'a tıklayın PHP yorumlayıcısı.

Sadece bir düşün, ne Metin dosyası- perakendeci ile aynı yapı, PHP dosyası - yorumlayıcının sözdizimi artı perakendecinin mantığı ve html, css, xml açıklamasının "etiketleri" - öğelerin anlamı ne kadar büyükse, statik standartlar. Dosyaların yeni bir zmist zamanıyla ortaya çıkmasının mümkün olduğu ve zastosuvannya'nın kalitesini ve mantığını belirtmek için kendi hatası olduğu düşüncesine gelebilirsiniz. Programlamanın geliştirilmesinin bir sonraki aşaması için henüz hazır olmaması gerçeği, dosyalar sanki bir rozrobnik yaratıp onu işaretliyormuş gibi sadece dosyalarla doldurulur.

En iyi ve en umut verici, eğer PHP gerekirse PHP dosyasını bağımsız olarak okursa. Ve eğer orada olmak istiyorsanız, kaydetmeyeceğiniz bir şekilde, nesne oluşturulana kadar PHP'nin bir dosyadan bir satırı okuması daha kolaydır. Zovsim zvichnі değil, ama şimdiki dünyaya her şey çok çabuk değişiyor.

© 2022 androidas.ru - Android hakkında her şey