Edit report at https://bugs.php.net/bug.php?id=65701&edit=1
ID: 65701 User updated by: flack at contentcontrol-berlin dot de Reported by: flack at contentcontrol-berlin dot de Summary: copy() doesn't work when destination filename is created by tempnam() Status: Open Type: Bug Package: *General Issues Operating System: Ubuntu Linux PHP Version: 5.5.3 Block user comment: N Private report: N New Comment: Typo: Should read file_put_contents($src, file_get_contents($dst)) for the version that works Previous Comments: ------------------------------------------------------------------------ [2013-09-18 17:51:33] flack at contentcontrol-berlin dot de Description: ------------ See the script below. The expected output is int(4) instead, I get int(0) I tested on the Ubuntu packages for php 5.3.10, 5.4.4 and 5.5.3. When I use file_put_contents($src, $dst) instead of copy(), it works as expected. Also, when I use fopen() and stream_copy_to_stream(). Only the plain copy() function doesn't behave as expected. Everything is on the same hard disk and was tested on three different machines (Ubuntu 12.04, 13.04 and Debian 7). Test script: --------------- $src = '/tmp/file.txt'; touch ($src); file_put_contents($src, 'test'); $dst = tempnam('/tmp', 'dst'); copy($src, $dst); var_dump(filesize($dst)); Expected result: ---------------- int(4) Actual result: -------------- int(0) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65701&edit=1