Problems addind a note to the fopen manual page.

From: Date: Sat, 18 Jun 2011 08:32:59 +0000
Subject: Problems addind a note to the fopen manual page.
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-11225@lists.php.net to get a copy of this message
I'm trying to add a note with this content to the fopen manual page. The note, solves some problems of the untar function that was added by other contributor to the notes section at a few months. My problem is that the note never appear to the fopen manual page and I understand that this note it's interest for the other users that try to use the untar function with files that contain empty files and files with long filenames. I post here the original note: Fixed 2 issues: - Support for long filenames $FileName="././@LonkLink" - Fixed the untar of files with $FileSize=0 <?php // PHP iUnTAR Version 3.0 // license: Revised BSD license function untar($tarfile,$outdir="./",$chmod=null) { $TarSize = filesize($tarfile); $TarSizeEnd = $TarSize - 1024; if($outdir!=""&&!file_exists($outdir)) {         mkdir($outdir,0777); } $thandle = fopen($tarfile, "r"); while (ftell($thandle)<$TarSizeEnd) {         $FileName = $outdir.trim(fread($thandle,100));         $FileMode = trim(fread($thandle,8));         if($chmod===null) {                 $FileCHMOD = octdec("0".substr($FileMode,-3)); }         if($chmod!==null) {                 $FileCHMOD = $chmod; }         $OwnerID = trim(fread($thandle,8));         $GroupID = trim(fread($thandle,8));         $FileSize = octdec(trim(fread($thandle,12)));         $LastEdit = trim(fread($thandle,12));         $Checksum = trim(fread($thandle,8));         $FileType = trim(fread($thandle,1));         $LinkedFile = trim(fread($thandle,100));         fseek($thandle,255,SEEK_CUR);         // LongLink support added by Josep Sanz         if($FileName=="././@LongLink" || $FileType=="L") {             $FileName = $outdir.trim(fread($thandle,$FileSize));             fseek($thandle,512-$FileSize,SEEK_CUR);             fseek($thandle,100,SEEK_CUR);             $FileMode = trim(fread($thandle,8));             if($chmod===null) {                     $FileCHMOD = octdec("0".substr($FileMode,-3)); }             if($chmod!==null) {                     $FileCHMOD = $chmod; }             $OwnerID = trim(fread($thandle,8));             $GroupID = trim(fread($thandle,8));             $FileSize = octdec(trim(fread($thandle,12)));             $LastEdit = trim(fread($thandle,12));             $Checksum = trim(fread($thandle,8));             $FileType = trim(fread($thandle,1));             $LinkedFile = trim(fread($thandle,100));             fseek($thandle,255,SEEK_CUR);         }         if($FileType=="0") {             // Empty files support added by Josep Sanz             if($FileSize==0)                 $FileContent = "";             else                 $FileContent = fread($thandle,$FileSize); }         if($FileType=="1") {                 $FileContent = null; }         if($FileType=="2") {                 $FileContent = null; }         if($FileType=="5") {                 $FileContent = null; }         if($FileType=="0") {                 $subhandle = fopen($FileName, "a+");                 fwrite($subhandle,$FileContent,$FileSize);                 fclose($subhandle);                 chmod($FileName,$FileCHMOD); }         if($FileType=="1") {                 link($FileName,$LinkedFile); }         if($FileType=="2") {                 symlink($LinkedFile,$FileName); }         if($FileType=="5") {                 mkdir($FileName,$FileCHMOD); }         //touch($FileName,$LastEdit);         if($FileType=="0") {             // Empty files support added by Josep Sanz             if($FileSize>0) {                 $CheckSize = 512;                 while ($CheckSize<$FileSize) {                         if($CheckSize<$FileSize) {                         $CheckSize = $CheckSize + 512; } }                 $SeekSize = $CheckSize - $FileSize;                 fseek($thandle,$SeekSize,SEEK_CUR); } } }         fclose($thandle);         return true; } ?> Thanks. Josep. -- Josep Sanz Campderrós The SaltOS & RhinOS projects http://www.saltos.net

« previous php.webmaster (#11225) next »