ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-Dev
php-Dev
#26060 [Opn->Fbk]: Not closing download handles
by other posts by this author
Nov 6 2003 8:28PM messages near this date
#26060 [Fbk]: Not closing download handles | #26059 [NEW]: Call to __set() crashes Apache when setting array element!
ID:               26060
 Updated by:       sniper@[...].net
 Reported By:      datacompboy at mail dot ru
-Status:           Open
+Status:           Feedback
 Bug Type:         cURL related
 Operating System: Win2003 adv server
 PHP Version:      4.3.3
 New Comment:

Simplify your script..drop the ob_* stuff totally and 
don't use any external apps on the files.

Does it work then? (add the new script here too)




Previous Comments:
------------------------------------------------------------------------

[2003-10-31 12:42:18] datacompboy at mail dot ru

Description:
------------
I tried to download file with curl, parse it with external app, show
output and kill temp file. But:
1. if php as isapi module - when several requests at one time some
inputs are locked! Filemon says that it frees by some cmd.exe after all
runned sub-processes already finished. Very strange!
2. if php as fastcgi - it often crashes with error in php_curl (all
latest dlls in system32 upgraded; php4ts only in c:\php, php4isapi also
in c:\php and no in c:\windows\system)
3. if php as cgi - all OK, except of when user cancelled download the
script terminated, but shotdown_procedure not called, so temp files
left.

Reproduce code:
---------------
<?ob_start(); $url="http://some.site.com";
  $oinfile = tempnam ("./", "URLIN");
  $infile = preg_replace("#.*[/\\\\](.*?)#","\$1",$oinfile);
  $ooutfile = tempnam ("./", "URLOU");
  $outfile = preg_replace("#.*[/\\\\](.*?)#","\$1",$ooutfile);
  register_shutdown_function(create_function('',
    "@unlink(\"$infile\"); @unlink(\"$outfile\");
@unlink(\"$oinfile\"); @unlink(\"$ooutfile\"); return 1;"));
  $inf = fopen($infile, "w");
  fwrite($inf, "<meta http-equiv=\"Content-Type\"
content=\"text/html\"> \n");

  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_FILE, $inf);
  $st=curl_exec ($ch);
  curl_close ($ch);
  fclose($inf);
  echo `filter.exe $lang $infile $outfile 2> &1`;

  ob_end_flush();
?> 

Expected result:
----------------
No .tmp files not in windows\temp\ folder, not in script folder.

Actual result:
--------------
Some .tmp files left and in windows\temp, and in script folder.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=26060&edit=1
Thread:
datacompboy at mail dot ru


datacompboy at mail dot ru



Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved