#22177 [Bgs->Csd]: Warning: fopen() expects parameter 1 to be string
ID: 22177 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Bogus +Status: Closed Bug Type: Filesystem function related Operating System: RedHat PHP Version: 4.3.0 New Comment: Thanks. Previous Comments: [2003-02-11 18:22:02] [EMAIL PROTECTED] For support: http://www.php.net/support.php [2003-02-11 18:19:33] [EMAIL PROTECTED] Quote: "The fact that this "worked" for you in 4.2.3 indicates a bug in 4.2.3 that has been fixed in 4.3." Now that is an idea that didn't occur to me. And since php 4.2.3 may have been buggy then obviously the fix is to upgrade to 4.3 and rewrite it the way you folks suggest. Thanks for that answer, a much more mature one than RTFM. Hence this isn't bogus but an actual bug that was in 4.2.3. And the patch is to make sure the code is written correctly. Thus one last question, looking at the code I initially posted, what would be your suggestion if I may ask specifically tailored to my problem? [2003-02-11 18:15:22] [EMAIL PROTECTED] "Warning: fopen() expects parameter 1 to be string" Now read the manual for fopen -> parameter 1 needs to be a string. You are passing a resource. The fact that this "worked" for you in 4.2.3 indicates a bug in 4.2.3 that has been fixed in 4.3. Your supposed temporary file name would be a string "Resource id #4", which isn't a very good temporary file name. You describe the expected behaviour of PHP, your script is broken, therefore this is a user error, and thus a bogus report. Now, please leave us in peace to fix real bugs. [2003-02-11 18:08:39] [EMAIL PROTECTED] Assure you no user error. [2003-02-11 18:01:44] [EMAIL PROTECTED] User error. Please leave this as bogus. The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22177 -- Edit this bug report at http://bugs.php.net/?id=22177&edit=1
#22177 [Bgs->Csd]: Warning: fopen() expects parameter 1 to be string
ID: 22177 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Bogus +Status: Closed Bug Type: Filesystem function related Operating System: RedHat PHP Version: 4.3.0 New Comment: Assure you no user error. Previous Comments: [2003-02-11 18:01:44] [EMAIL PROTECTED] User error. Please leave this as bogus. [2003-02-11 16:05:05] [EMAIL PROTECTED] I don't consider this bogus and your thoughts are your own. I wouldn't be the type to just submit a bug report that I didn't think was founded. The code worked under 4.2.3 and if you care to check I can send the whole package to you to disprove your "thoughts". Upgrading to php 4.3 has broken the subroutine. Instead of "thinking" that it doesn't work I would suspect more from php developers for a more quantitative analysis of the situation. Ergo I prefer to close this bug report myself because I'm apparently not getting any constructive feedback here, instead of having it labeled as "bogus". Once again, the code, unchanged prior 4.3 worked. The same exact code that worked no longer does. Absolutely nothing has been changed. Anyhow, thanks for replying at least. It is much better to know where one stands rather than not getting any reply whatsoever. [2003-02-11 15:59:23] [EMAIL PROTECTED] As Jani said, tmpfile returns a resource, no need to try to fopen it. He said also that nothing was changed in 4.3.0 about it, which is right. Your code is bogus and I don't think it ever worked. See: http://www.php.net/manual/en/function.tmpfile.php resource tmpfile ( void) Creates a temporary file with an unique name in write mode, returning a file handle similar to the one returned by fopen(). The file is automatically removed when closed (using fclose()), or when the script ends. You should use: $temp = tmpfile(); fwrite($temp, "writing to tempfile"); fclose($temp); // this removes the file Not a bug->Bogus again. [2003-02-11 15:52:09] [EMAIL PROTECTED] Per me previous comment addition, the code was not changed whatsoever. I'm "re-opening" this bug report in the hopes it will gather a response. [2003-02-11 15:50:52] [EMAIL PROTECTED] I don't appreciate the RTFM remark, but I am glad you replied back. I use the php manual extensively but have not seen that particular link. I can tell you honestly that your doubt is just that, because that same exact code block worked 100% under php 4.2.3. After the upgrade to 4.3 that code no longer works and it has *not* been changed. The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22177 -- Edit this bug report at http://bugs.php.net/?id=22177&edit=1
#22177 [Bgs->Csd]: Warning: fopen() expects parameter 1 to be string
ID: 22177 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Bogus +Status: Closed Bug Type: Filesystem function related Operating System: RedHat PHP Version: 4.3.0 New Comment: I don't consider this bogus and your thoughts are your own. I wouldn't be the type to just submit a bug report that I didn't think was founded. The code worked under 4.2.3 and if you care to check I can send the whole package to you to disprove your "thoughts". Upgrading to php 4.3 has broken the subroutine. Instead of "thinking" that it doesn't work I would suspect more from php developers for a more quantitative analysis of the situation. Ergo I prefer to close this bug report myself because I'm apparently not getting any constructive feedback here, instead of having it labeled as "bogus". Once again, the code, unchanged prior 4.3 worked. The same exact code that worked no longer does. Absolutely nothing has been changed. Anyhow, thanks for replying at least. It is much better to know where one stands rather than not getting any reply whatsoever. Previous Comments: [2003-02-11 15:59:23] [EMAIL PROTECTED] As Jani said, tmpfile returns a resource, no need to try to fopen it. He said also that nothing was changed in 4.3.0 about it, which is right. Your code is bogus and I don't think it ever worked. See: http://www.php.net/manual/en/function.tmpfile.php resource tmpfile ( void) Creates a temporary file with an unique name in write mode, returning a file handle similar to the one returned by fopen(). The file is automatically removed when closed (using fclose()), or when the script ends. You should use: $temp = tmpfile(); fwrite($temp, "writing to tempfile"); fclose($temp); // this removes the file Not a bug->Bogus again. [2003-02-11 15:52:09] [EMAIL PROTECTED] Per me previous comment addition, the code was not changed whatsoever. I'm "re-opening" this bug report in the hopes it will gather a response. [2003-02-11 15:50:52] [EMAIL PROTECTED] I don't appreciate the RTFM remark, but I am glad you replied back. I use the php manual extensively but have not seen that particular link. I can tell you honestly that your doubt is just that, because that same exact code block worked 100% under php 4.2.3. After the upgrade to 4.3 that code no longer works and it has *not* been changed. [2003-02-11 15:48:18] [EMAIL PROTECTED] RTFM: http://www.php.net/manual/en/function.tmpfile.php tmpfile() returns a file handle already..NOT filename. I doubt this ever worked for you as this was not changed in 4.3.0...(you propably used tempnam() instead before) [2003-02-11 15:39:40] [EMAIL PROTECTED] A php script I have worked fine under PHP 4.2.3, but after the upgrade to PHP 4.3 whenever I try running it I get these errors: Warning: fopen() expects parameter 1 to be string, resource in ... on line 353 Warning: fwrite(): supplied argument is not a valid stream resource in ... on line 354 Warning: fclose(): supplied argument is not a valid stream resource in ... on line 355 Warning: getimagesize(Resource id #4) [function.getimagesize]: failed to create stream: No such file or directory in ... on line 361 The following blocks of code surround the problematic lines from above: if ($input = fopen($image, "rb")) { $image_data = fread ($input, 2048576); fclose($input); if (!$tmp_image = @tmpfile()) { exit("Cannot create tempfile using tmpfile()."); } 353:$output = fopen($tmp_image, "wb"); 354:fwrite($output, $image_data); 355:fclose($output); 356:} else { 357:exit("Cannot access ".$image." for reading. (Does not exist or has wrong permissions)"); 358:} 359: 360:// Create Image from file by type, get and set size 361:list($width,$height,$type) = getimagesize($tmp_image); 362: I'm having difficulty determining what the problem is since the code worked with PHP 4.2.3. Thanks for your help. -- Edit this bug report at http://bugs.php.net/?id=22177&edit=1