用特定条件替换文件中的内容

时间:2016-07-29 12:55:12

标签: php regex preg-replace

我想用特定条件替换文件中的内容。 示例:

if we have to replace LA to SF .     
if we have lable (after LA characters ) - No replace
if we have LA (after that one space ) - replace
if we have LA. (after that one dot) -  replace 

PHP代码:

<?php

    if(isset($_POST['search']) && isset($_POST['replace']))
    {

            $search = trim($_POST['search']);
            $replace = trim($_POST['replace']);
            $filename = 'lorem.txt';
            $text_content = file_get_contents($filename);
            $contents = str_replace($search,$replace,$text_content,$count);

            $modified_content = file_put_contents($filename,$contents);

    }
?>

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<form method="post" action="">
<input type="text" name="search" />
<input type="text" name="replace" />
<button type="submit"> Replace </button>

</body>
</html>

?>

我尝试使用preg_replace,但我有两个词是搜索,第二个是替换,所以如何使用preg_replace或任何其他功能来实现这种功能。

1 个答案:

答案 0 :(得分:1)

您可以使用word boundaries\b)来确保短语不是另一个词的子部分。例如

\bla\b

会找到lai修饰符会搜索不区分大小写的内容。

正则表达式演示:https://regex101.com/r/bX9rD4/2

PHP用法:

$strings='if we have lable 
if we have LA 
if we have LA.';
echo preg_replace('/\bla\b/i', 'SF', $strings);

PHP演示:https://eval.in/613972