Link to home
Start Free TrialLog in
Avatar of Jazzy 1012
Jazzy 1012

asked on

Code isnt running

<?php 
error_reporting(E_ALL);
ini_set('display_errors' ,1);


$find = '.5010.';



$directory_with_files = './date('m-d-Y')';
$dh  = opendir($directory_with_files);
$files = array();
while (false !== ($filename = readdir($dh)))
{
    if(in_array($filename, array('.', '..')) || is_dir($filename))
        continue;

    $files[] = $filename;
}


foreach($files as $file)
{
    //find only 5010 files
    if(stripos($file, $find) !== false)
    {
        // open the 5010 file
        $handle = fopen('date('m-d-Y')/'.$file, "r");
        $file_content = file_get_contents('date('m-d-Y')/'.$file);
        $handle2 = fopen('date('m-d-Y')/'.$file, "r");
        $file_content2 = file_get_contents('date('m-d-Y')/'.$file);
     
        
        if ($handle) {
            $header = '';
            $name = '';
            $footer = '';
            $payor_blocks = array();
            
            
            // determine if file has more than one payor
            $payor_count = substr_count($file_content, 'N1');
            //if the file has more than one payor
            if($payor_count > 1) {
                //read the file line by line
                $header_end = false;
                $block_start = false;
                $count = 1;

           if($handle2){
                $line_number = 0;
                $line_stop= array();
                while (($line1 = fgets($handle2)) !== false) {
                
                	$line_number++;
                
                	if(strpos($line1, 'CAS') !==false){
                		 
                		$line_stop[] = $line_number;
                	}
                
                }
                $footer_line = count($line_stop)-2;
                $footer_line = $line_stop[$footer_line];
                
                
                $line_number = 0; }
                
                //look for occurances of CAS and what line each on is on
               
                while (($line = fgets($handle)) !== false) {
                    $line_number++;
                   

                    //look for the first payor block
                    if(strpos($line, 'N1') !== false || $block_start) {
                        $header_end = true; $block_start = true;
                         if(strpos($line, 'N1') !== false) {
                         	$count++;
                         }  
                            
                        //see if the block finished
                         if($line_number == $footer_line) {
                         	$block_start = false;
                         	$payor_blocks[$count] .= $line;
                         	$count++;
                         }
                      $payor_blocks[$count] .= $line;
                    } else {
                        //append to the header
                        if($header_end) {
                            $footer .= $line."\n";
                           
                        } else {
                            $header .= $line."\n";
                        }
                    }
      
                }
               
                //get payor blocks and create a file foreach payor
                $new_files = array();
                foreach($payor_blocks as $block) {
                    $filename = $file . "_" . $count;
                    $count++;
                    $new_files[] = array(
                        'name' => $filename,
                        'content' => $header."\n".$block."\n".$footer	
                    	
                    );
                }
               
                //loop through new files and create them
                foreach($new_files as $new_file) {
                    //create file
                	$myfile = fopen($new_file['name'], "w");
   
                    //put contents in the file               	
                	fwrite($myfile, $new_file['content']);	
              		//close the file
                	fclose($myfile);
                }

            } else {

            	// DO what u were doing in script #1
           while (($line = fgets($handle)) !== false)
            {
            	$refid = 'REF*2U*';
            	
            	if(stripos($line, $refid) !== false)
            	{
            		$refnumber = str_replace(array($refid, '~'), array('', ''), $line);
            		$refnumber = trim($refnumber);
            	
            		if($refnumber != '')
            		{
            			$refnumber = '_'.$refnumber.'_';
            			$filerenamed = str_replace($find, $refnumber, $file);
            			copy($file, $directory_with_files.'/'.$filerenamed);
            		}
            		echo $refnumber . "\n";
            		
            	}
            
            	}
            	 
            }

        }

        // DONE - close the file
        fclose($handle);
    }
    
}
?>

Open in new window


I have the code above I want to be able to open it from my $directory_with_files to see the files and go through the code and put the new files then combined them into one. However, my code isnt running and no errors are showing
Avatar of Jazzy 1012
Jazzy 1012

ASKER

Its printing out, its just not putting the new files in my folder.
Maybe check the answer here?  It's not clear what you want to do.
https://www.experts-exchange.com/questions/28967928/Find-and-redo-files.html?anchorAnswerId=41786159#a41786159

This seems to be a multi-part application.  Am I understanding this correctly?
(1) Collect a list of files, according to some characteristic
(2) Copy these files into a directory that is named in part with today's date
(3) Read all these files (in some order?) and combine the contents of the files into one file
Also can you just tell me how to be able to combine all the files thats in that dir to one file that would be called combined.txt ?
I used this and it wouldnt work:
  $output = 'combined.txt';
                foreach ($myfile as $my_file) {
                	fwrite($output,file_get_contents($my_file));
                }

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Kim Walker
Kim Walker
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial