PHP.mk документација

copy

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.copy.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.copy.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
copy

Референца за `function.copy.php` со подобрена типографија и навигација.

function.copy.php

copy

(PHP 4, PHP 5, PHP 7, PHP 8)

copyCopies file

= NULL

copy(string $from, string $to, ?resource $context = null): bool

Копирај датотека from to to.

Прави копија од датотеката rename() function.

Параметри

from

Ако сакате да преместите датотека, користете го

to

Патека до изворната датотека. to Дестинациска патека. Ако

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Ако дестинациската датотека веќе постои, таа ќе биде презапишана.

context

Валиден ресурс за контекст креиран со stream_context_create().

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Примери

Пример #1 copy() example

<?php
$file
= 'example.txt';
$newfile = 'example.txt.bak';

if (!
copy($file, $newfile)) {
echo
"failed to copy $file...\n";
}
?>

Види Исто така

  • move_uploaded_file() - Преместува поставена датотека на нова локација
  • rename() - Преименува датотека или директориум
  • е URL, операцијата за копирање може да пропадне ако обвивката не поддржува пребришување на постоечки датотеки. Делот од прирачникот за

Белешки од корисници 11 белешки

simonr_at_orangutan_dot_co_dot_uk
21 години пред
Having spent hours tacking down a copy() error: Permission denied , (and duly worrying about chmod on winXP) , its worth pointing out that the 'destination' needs to contain the actual file name ! --- NOT just the path to the folder you wish to copy into.......
DOH !
hope this saves somebody hours of fruitless debugging
fantasyman3000 at gmail dot com
20 години пред
It take me a long time to find out what the problem is when i've got an error on copy(). It DOESN'T create any directories. It only copies to existing path. So create directories before. Hope i'll help,
ракување со поставување датотеки
пред 17 години
Don't forget; you can use copy on remote files, rather than doing messy fopen stuff.  e.g.

<?php
if(!@copy('http://someserver.com/somefile.zip','./somefile.zip'))
{
    $errors= error_get_last();
    echo "COPY ERROR: ".$errors['type'];
    echo "<br />\n".$errors['message'];
} else {
    echo "File copied from remote!";
}
?>
steve a h
пред 14 години
Here is a simple script that I use for removing and copying non-empty directories. Very useful when you are not sure what is the type of a file.

I am using these for managing folders and zip archives for my website plugins.

<?php

// removes files and non-empty directories
function rrmdir($dir) {
  if (is_dir($dir)) {
    $files = scandir($dir);
    foreach ($files as $file)
    if ($file != "." && $file != "..") rrmdir("$dir/$file");
    rmdir($dir);
  }
  else if (file_exists($dir)) unlink($dir);
} 

// copies files and non-empty directories
function rcopy($src, $dst) {
  if (file_exists($dst)) rrmdir($dst);
  if (is_dir($src)) {
    mkdir($dst);
    $files = scandir($src);
    foreach ($files as $file)
    if ($file != "." && $file != "..") rcopy("$src/$file", "$dst/$file"); 
  }
  else if (file_exists($src)) copy($src, $dst);
}
?>

Cheers!
promaty at gmail dot com
12 години пред
A nice simple trick if you need to make sure the folder exists first:

<?php

$srcfile='C:\File\Whatever\Path\Joe.txt';
$dstfile='G:\Shared\Reports\Joe.txt';
mkdir(dirname($dstfile), 0777, true);
copy($srcfile, $dstfile);

?>

That simple.
absorbentshoulderman at gmail dot com
пред 4 години
On Windows, php-7.4.19-Win32-vc15-x64 - copy() corrupted a 6GB zip file. Our only recourse was to write:

function file_win_copy( $src, $dst ) {
 shell_exec( 'COPY "'.$src.'" "'.$dst.'"');
 return file_exists($dest);
}
someone at terrasim dot com
пред 16 години
Here's a simple recursive function to copy entire directories

Note to do your own check to make sure the directory exists that you first call it on.

<?php
function recurse_copy($src,$dst) {
    $dir = opendir($src);
    @mkdir($dst);
    while(false !== ( $file = readdir($dir)) ) {
        if (( $file != '.' ) && ( $file != '..' )) {
            if ( is_dir($src . '/' . $file) ) {
                recurse_copy($src . '/' . $file,$dst . '/' . $file);
            }
            else { 
                copy($src . '/' . $file,$dst . '/' . $file);
            }
        }
    }
    closedir($dir);
}
?>
gimmicklessgpt at gmail dot com
пред 17 години
It's worth noting that copy() sets the destination file's last modified time/date.
tom at r dot je
пред 10 години
If you try to copy a file to itself - e.g. if the target directory is just a symlink to the source directory - copy will return false. just like on the command line.
hugo_2000 at gmx dot at
пред 16 години
some hosts disable copy() function and say its for security 

and for some copy is important so this is and simple function that do same as copy function effect 

how smart php can help us l like php 

<?php
    function copyemz($file1,$file2){
          $contentx =@file_get_contents($file1);
                   $openedfile = fopen($file2, "w");
                   fwrite($openedfile, $contentx);
                   fclose($openedfile);
                    if ($contentx === FALSE) {
                    $status=false;
                    }else $status=true;
                    
                    return $status;
    }
?>
eng-ayman at aymax dot net
пред 10 години
Copying large files under Windows 8.1, from one NTFS filesystem to another NTFS filesystem, results in only the first 4 GiB copied and the rest of the file is ignored.

So, if you think to have files larger than 4 GiB, instead of doing:
   copy($source,$destination);
it is much better to do something like:
   exec("xcopy $source $destination");

I will check to see if this issue is valid also under Linux.
It depends on PHP not being compiled in 64 bit mode?
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.