• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 74
  • Last Modified:

Alot of errors occurring with no warning issues, and echos out perfectly online.

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))

    $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;

                $line_number = 0;
                $line_stop= array();
                while (($line1 = fgets($handle2)) !== false) {
                	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) {

                    //look for the first payor block
                    if(strpos($line, 'N1') !== false || $block_start) {
                        $header_end = true; $block_start = true;
                         if(strpos($line, 'N1') !== false) {
                        //see if the block finished
                         if($line_number == $footer_line) {
                         	$block_start = false;
                         	$payor_blocks[$count] .= $line;
                  $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 = date('m-d-Y').'/'.$file . "_" . $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
                $output = 'combined.txt';
                foreach ($myfile as $my_file) {
                echo "<pre>" . print_r($new_files, true) . "</pre>";
            } else {

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

Open in new window

I have this code above, in the beginning it is suppose to find files in a folder with todays date that in the filename it contains "5010", then check if the file has more than one "N1" to split it and create new files each containing there own "N1", with just an _count++ to the file name, after all that is done, it goes through a series were it looks for the "REF" and replaces the 5010 with the characters after "REF" for example if REF is REF*SMI8~ the file name would replace ".5010." with "_SMI8_" And also copy all the files that dont contain "5010" in one .txt document called combined,
But my REF code doesnt work anymore since I made the folder and the place to replace them today's date and my combine does not work as well. Can anyone please help?
Jazzy 1012
Jazzy 1012
1 Solution
Ray PaseurCommented:
This expert suggested creating a Gigs project.
This would really be a good one for E-E Gigs, since from the look of this code snippet, you're not willing or able to follow the guidelines and code examples we have posted here.  There's nothing wrong with being new to PHP programming -- all of us were at one time.  But you're trying to do things that are beyond your programming skills, and you will be better served if you step back from the totality of these complex problems and work progressively through the steps you need to build an application.  With a Gigs engagement, you can get some detailed discussion of why we recommend ISO-8601 date formats, or why we do not use fopen() before file_get_contents(), or why we do not read the same file twice, etc.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now