HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Mevcut bir dosyayı yeni bir dosyaya üç farklı şekilde kopyalayabilirsiniz:
- Bir satırdan diğerine döngü halinde bir satır okuyup yazmak
- Tüm içerikleri bir dizeye okuma ve dizeyi başka bir dosyaya yazma
- PHP'nin dahili fonksiyon kütüphanesi copy() fonksiyonunu içerir.
Yöntem 1
İlk yaklaşımda, var olan bir dosyadan her satırı okuyabilir ve var olan dosya dosya sonuna ulaşana kadar yeni bir dosyaya yazabilirsiniz.Aşağıdaki PHP betiğinde, önceden var olan bir dosya (hello.txt) bir döngü içinde satır satır okunur ve her satır başka bir dosyaya (new.txt) yazılır
"hello.txt" dosyasının aşağıdaki metni içerdiği varsayılmaktadır:
Hello World
TutorialsPoint
PHP Tutorials
Örnek
Mevcut bir dosyanın kopyasını oluşturmak için PHP kodu şu şekildedir:
PHP:
<?php
$file = fopen("hello.txt", "r");
$newfile = fopen("new.txt", "w");
while(! feof($file)) {
$str = fgets($file);
fputs($newfile, $str);
}
fclose($file);
fclose($newfile);
?>
Yeni oluşturulan "new.txt" dosyasının içeriğinin tamamen aynı olması gerekir.
Yöntem 2
Burada PHP kütüphanesinden iki yerleşik işlevi kullanıyoruz:Bu fonksiyon tüm dosyayı bir dizeye okur. $filename parametresi okunacak dosyanın adını içeren bir dizedir.file_get_contents(
string $filename,
bool $use_include_path = false,
?resource $context = null,
int $offset = 0,
?int $length = null
): string|false
Diğer fonksiyon ise:
file_put_contents(
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
): int|false
Fonksiyon $data'nın içeriğini $filename'e koyar. Yazılan bayt sayısını döndürür.
Örnek
Aşağıdaki örnekte "hello.txt" dosyasının içeriğini $data dizisinde okuyup, bunu "test.txt" dosyasına yazmak için parametre olarak kullanıyoruz.
PHP:
<?php
$source = "hello.txt";
$target = "test.txt";
$data = file_get_contents($source);
file_put_contents($target, $data);
?>
Yöntem 3
PHP, copy() fonksiyonunu yalnızca kopyalama işlemini gerçekleştirmek için sağlar.copy(string $from, string $to, ?resource $context = null): bool
$from parametresi mevcut dosyayı içeren bir dizedir. $to parametresi de oluşturulacak yeni dosyanın adını içeren bir dizedir. Hedef dosya zaten mevcutsa, üzerine yazılır.
Kopyalama işlemi, dosyanın başarıyla kopyalanıp kopyalanmamasına bağlı olarak true veya false döndürecektir.
Örnek
"text.txt" dosyasını "hello.txt" dosyasının bir kopyası yapmak için copy() fonksiyonunu kullanalım.
PHP:
<?php
$source = "a.php";
$target = "a1.php";
if (!copy($source, $target)) {
echo "failed to copy $source...\n";
}
?>
