Soru PHP'de bir dosyaya nasıl yazılır?


Tek bir PHP destekleyen sunucuda bu betik var:

<html>
<body>

<?php
$file = fopen("lidn.txt","a");


fclose($file);
?>

</body>
</html>

Dosyayı oluşturur lidn.txtama boş.

Bir dosyayı nasıl oluşturabilirim ve bir şeye nasıl yazabilirim? örneğin "Kediler kovalamak fareler" satırı?


44
2017-11-20 07:28


Menşei




Cevaplar:


Daha üst düzey bir işlevi kullanabilirsiniz. file_put_contents($filename, $content) hangi aramakla aynı fopen(), fwrite(), ve fclose() bir dosyaya veri yazmak için art arda.

Dokümanlar: file_put_contents


57
2017-11-20 07:46



Sadece bir sidenote, file_put_contents() sadece PHP5'te çalışır. Bu durumda bir sorun gibi görünmüyor (sizin cevabınız, sonuçta accepter), ama hala orada PHP4.x çalışan birkaç ana olabilir. - Duroth
Çok önemli bir sidenote: file_put_contents (), fopen () ile karşılaştırıldığında bir bellek kabusu. Kullanmayı seviyorum ama büyük dosyaları ele alırken, verileri "akışa" aktarabilmek istiyorsunuz. PHP, dahili bellek olarak son dosyaların büyük bir çoğunu gerektirecektir, bu yüzden bu işlevi kullanırken aklınızda bulundurun. Daha küçük miktarlarda veri için kolay kullanımı tavsiye ederim. - John
Daha sonra file_put_contents ($ dosyaadı, $ other_stream) kullanın. Çok bellek verimli olan stream_copy_to_stream-) ile aynıdır. - Savageman


Düşünmek fwrite ():

<?php
$fp = fopen('lidn.txt', 'w');
fwrite($fp, 'Cats chase mice');
fclose($fp);
?>

38
2017-11-20 07:33



Çok teşekkür ederim!!! - brilliant
Yukarıdaki kodu kullanabilirsiniz, ayrıca başvuruda bulunabileceğiniz dosya okuma ve yazma hakkında ayrıntılı bilgi için file_put_contents'ı kullanabilirsiniz. techflirt.com/file-handling-in-php - Ankur Kumar Singh
Yukarıdaki gibi dosyaya yazdıktan sonra @sathish dosyayı kapatmadan dosyayı nasıl okuyoruz ( fclose($fp) ) İle denedim $fp = fopen('lidn.txt', 'w+');, $fp = fopen('lidn.txt', 'a+'); ama ikisi de işe yaramadı - Kasun Siyambalapitiya


$fp = fopen('lidn.txt', 'w');
fwrite($fp, 'Cats chase');
fwrite($fp, 'mice');
fclose($fp);

http://php.net/manual/en/function.fwrite.php


14
2017-11-20 07:32





$text = "Cats chase mice";
$filename = "somefile.txt";
$fh = fopen($filename, "a");
fwrite($fh, $text);
fclose($fh);

Kullan fwrite()


6
2017-11-20 07:33



Yukarıdaki gibi dosyaya yazdıktan sonra, dosyayı kapatmadan dosyayı nasıl okuyacağız? fclose($fh) ) İle denedim $fh = fopen('lidn.txt', 'w+'); , `fh = fopen ('lidn.txt', 'a +'); 'ama ikisi de işe yaramadı - Kasun Siyambalapitiya


Dosya yazmak çok kolay:

$fp = fopen('lidn.txt', 'w');
fwrite($fp, 'Cats chase mice');
fclose($fp);

6
2017-11-20 07:34





Web dizinimde dosya yazmak için aşağıdaki kodu kullanıyorum.

write_file.html

<form action="file.php"method="post">
<textarea name="code">Code goes here</textarea>
<input type="submit"value="submit">
</form>

write_file.php

<?php
// strip slashes before putting the form data into target file
$cd = stripslashes($_POST['code']);

// Show the msg, if the code string is empty
if (empty($cd))
    echo "Nothing to write";

// if the code string is not empty then open the target file and put form data in it
else
{
    $file = fopen("demo.php", "w");
    echo fwrite($file, $cd);

    // show a success msg 
    echo "data successfully entered";
    fclose($file);
}
?>

Bu çalışan bir komut dosyasıdır. içindeki URL’yi değiştirdiğinizden emin olun. form eylemi ve hedef dosya Fopen () Sitenizde kullanmak istiyorsanız işlevini kullanın.

İyi şanslar.


3
2018-05-14 18:49



Sadece php yazmaya başladım, ancak bu sadece bir metin dosyası yazmak değil, sunucunuza bir php kod dosyası yazıyorsunuz, daha sonra "demo.php" URL'si referans alınarak hemen çalıştırılabiliyor. Birisi sunucunuza kötü amaçlı PHP kodu yazabilir ve hemen çalıştırabilir, değil mi? Bunun kendi kodlarınızı test edebildiğinizi, ancak insanların bu özel uygulamanın riskleri konusunda uyarılmaları gerektiğini varsayalım. (Bu söylendiği gibi, onu sevdim ve kendim yapacağız) - RufusVS


fwrite() bir smidgen daha hızlı ve file_put_contents() Yine de bu üç yöntem etrafında bir sarıcı, bu yüzden yükü kaybedersiniz. makale

file_put_contents (dosya, veri modu, bağlam):

file_put_contents bir dosyaya bir dize yazar.

Bu işlev, bir dosyaya erişirken bu kuralları takip eder.FILE_USE_INCLUDE_PATH ayarlanmışsa, bir kopyasının içerme yolunu kontrol edin. dosya adı Eğer mevcut değilse dosyayı oluşturun, sonra dosyayı açın ve LOCK_EX ayarlanmışsa ve FILE_APPEND ayarlanmışsa dosyayı kilitleyin, dosyanın sonuna taşıyın. Aksi halde, dosya içeriğini temizleyin Verileri dosyaya yazınız ve dosyayı kapatınız ve kilitleri serbest bırakınız. Bu işlev, başarı ile dosyaya yazılan karakterin sayısını veya hata durumunda FALSE değerini döndürür.

fwrite (dosya, dize, uzunluk):

fwrite açık bir dosyaya yazar. Bu işlev dosyanın sonunda durur veya belirtilen uzunluğa ulaştığında, hangisi önce gelirse, bu işlev başarısız olduğunda yazılmış olan bayt sayısını veya FALSE değerini döndürür.


1
2017-12-12 07:04