У меня есть папка, содержащая несколько файлов .txt, которая называется:
A500_1.txt
A500_2.txt
A700_1.txt
A700_2.txt
A900_1.txt
...
В каждом из файлов .txt есть:
PRXC1_|TB|CCAAO9-RC|9353970324463|24.99
PRXC1_|TB|CFEXK4-RC|9353970294766|84.99
PRXC1_|TB|CFEXK4-RC|9353970294773|84.99
...
Я бы хотел, чтобы вы:
, если имя файла начинается с A500_, заменить "TB" на "MD"
, если имя файла начинается с A700_, заменить "TB" на " JB "
, если здесь указано, что имя исходного кода файла начинается с A900_, заменить" TB "на" LD "
Я написал эту функцию, но она просто создает мне пустой файл A500_2.TXT в root проекта и отображает:
Warning: file_get_contents(A500_2.TXT): failed to open stream:
Где моя ошибка?
<?php
function processFile( $path ) {
$dir = './test/';
$allFiles = scandir($dir);
foreach($allFiles as $file) {
$filename = basename( $file );
if ( ! in_array($file,array(".","..")))
{
//read the entire string
$str = file_get_contents( $file );
// var_dump($str);
// replace something in the file string
if ( strpos( $filename, 'A500_' ) === 0 ) {
$str = str_replace( 'TB', 'MD', $str );
} else if ( strpos( $filename, 'A700_' ) === 0 ) {
$str = str_replace( 'TB', 'JB', $str );
} else if ( strpos( $filename, 'A900_' ) === 0 ) {
$str = str_replace( 'TB', 'LD', $str );
} else {
// Return false if we don't know what to do with this file
return false;
}
//write the entire string
$writeResult = file_put_contents( $file, $str );
//return true after a file is written successfully, or false on failure
return $writeResult >= 0;
}
}
}
if(processFile( './test/' )) echo "good!";
?>