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);
}
}
?>
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
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
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
ASKER
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:
I used this and it wouldnt work:
$output = 'combined.txt';
foreach ($myfile as $my_file) {
fwrite($output,file_get_contents($my_file));
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
To combine all the files, please see the answer here:
https://www.experts-exchange.com/questions/28967933/Combine-all-files-in-one-txt.html?anchorAnswerId=41786135#a41786135
https://www.experts-exchange.com/questions/28967933/Combine-all-files-in-one-txt.html?anchorAnswerId=41786135#a41786135
ASKER