如何根据php文件中的名称替换.txt文件中的字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据php文件中的名称替换.txt文件中的字符串?相关的知识,希望对你有一定的参考价值。

我有一个包含几个名为.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开头,请用“ JB”替换“ TB”

  • 如果文件名以A900开头,请用“ LD”替换“ TB”

你怎么做?

<?php

$oldMessage = 'TB';
$NewMessage = 'MD';

//read the entire string
$str=file_get_contents('./test/A500_1.txt');

//replace something in the file string
$str=str_replace($oldMessage, $NewMessage,$str);

//write the entire string
file_put_contents('./test/A500_1.txt', $str);
echo "good !";

?>
答案

首先,将文件路径设置为$path = './test/A500_1.txt';之类的变量,然后使用basename提取文件名。现在,您将有一个变量有条件地进行测试。然后考虑一下,由于您将多次执行此操作,因此它应该是易于重用的功能。这应该看起来像这样:

function processFile( $path ) 
    $filename = basename( $path );

    //read the entire string
    $str = file_get_contents( $path );

    //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( $path, $str );

    //return true after a file is written successfully, or false on failure
    return $writeResult >= 0;


if(processFile( './test/A500_1.txt' )) echo "good!";

以上是关于如何根据php文件中的名称替换.txt文件中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

php怎样将一个字符串写入txt文件 ,注意:前提是不能冲掉txt文件中的值

php怎样将一个字符串写入txt文件 ,注意:前提是不能冲掉txt文件中的值

如何将新字符串名称与 txt 文件中的现有字符串名称进行比较?

根据标志替换 .txt 文件中的行

在 .txt 文件中查找并替换 pdftotext 生成的图像字符

如何使用 bash 脚本替换文件名中的空格